Dimostrare che in un DAG è sempre presente un nodo senza archi entranti.
Supponiamo per assurdo che tutti i nodi abbiano almeno un arco entrante.
Prendendo i nodi man mano, l’ultimo nodo preso deve avere un arco entrante e gli unici archi entranti possibili vengono dai nodi scelti prima. Si arriva all’assurdo.
Contare quanti sono gli archi diretti che posso aggiungere a un DAG di nodi e archi senza aggiungere cicli.
posso aggiungere a patto che .
è parzialmente orientato, cioè , con (archi orientati) e (archi non orientati)
- dimostrare che se è un DAG è sempre possibile orientare gli archi in modo che il grafo rimanga un DAG.
def orienta(n, E0, En):
T = topologicalSort(n, E0)
O = ordine_su_lista(T)
forall (u, v) in En:
if O[u] < O[v]:
E = E \cup {u \to v}
else:
E = E \cup {v \to u}
def ordine_su_lista(T):
O = [None for n in T]
p = 0
while T:
u = T.pop()
O[u] = p
p = p+1
return 0