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