Dato un angolo x
di un grafico non orientato G
Vorrei chiedere il componente connesso di x
, ma il mio primo tentativo non funziona come desiderato. Eccolo:
edge( a,b ).
edge( b,a ).
edge( b,c ).
edge( c,b ).
edge( c,d ).
edge( d,c ).
connected( X,X ).
connected( X,Y ) :- edge(X,Y).
connected( X,Y ) :- \+ edge(X,Y), edge( X,Z ), connected( Z,Y ).
E qui ci sono le mie domande e i risultati:
| ?- connected(b,What).
What = b ? ;
What = a ? ;
What = c ? ;
no
| ?- connected(b,b).
true ? ;
true ? ;
true ? ;
no
Perché l'angolo b
non è connesso all'angolo d
? Perché l'angolo b
è connesso a se stesso tre volte? Ho paura di altri problemi che otterrò con grafici più complessi. Ce ne sono?