# 4.5 - AOV Network

AOV Network中， $$G=\<V,E>$$為有向圖:

* V(vertex): 代表工作(Activity)
* E(edge): 代表工作之間的執行順序

  e.g. $$i→j:$$ 代表 $$i$$ 必須先於 $$j$$ 執行

### Topological Sort

給定一個不具cycle的AOV Network，則至少可以找出≥1組頂點拜訪順序，此順序滿足:

若$$i$$有path到$$j$$，則在此順序中，$$i$$必定出現在$$j$$前。

若有cycles，則沒有topological sort。

* 求法:

1. 先找出in-degree = 0的頂點
2. 輸出此頂點，並將此頂點與其out-edge刪除
3. 重複以上步驟，直到沒有頂點，或找不到in-degree = 0的頂點
4. 若仍有剩餘的頂點代表此圖沒有topological sort

e.g.

<img src="https://2769815795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LGckN3OAfinKuVIrkMj%2F-LIy-KNNpEb-XvHd_uU7%2F-LIy-Mc1uett8FSs9sij%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202018-08-03%2012.17.30.jpg?alt=media&#x26;token=153a9969-4d3b-44d5-890d-f082cf8479c3" alt="" data-size="original">&#x20;

Topological Sort: 1 (2, 3, 4) (5, 6) 括號中可交換順序。
