Gå til innhold

Anbefalte innlegg

Noen som har greie på programmeringspråket prolog her? Hvis det er, så er problemstillingen følgende:

 

programmet skal ta i mot 4 edges, som f.eks

[(a,B),(b,c),(c,d),(d,e)]. programmet igjen skal finne ut om dette er et spanning tree. Har foreløpig klart å generere alle mulige trær, men klarer ikke finne ut om alle nodene er connected, slik at det faktisk er et spanning tree. Noen som har en fin algoritme for å finne ut om nodene er connected,eventuelt noen linker for å finne ut av det?

 

Her er det foreløpige programmet:

 

node(a).

node(B).

node©.

node(d).

node(e).

 

edge_no(4).

length([],0).

length([H|T],N):- length(T,M), N is M+1.

 

member(H,[H|T]).

member(H1, [H2|T]):- member(H1,T).

 

isedge((X,Y)):-node(X),node(Y), + (X=Y).

 

edges([H]):- isedge(H).

edges([(X,Y)|T]):-edges(T),edges([(X,Y)]), + (member((X,Y),T)).

 

connected([(X,Y)|T]):-node(Z),node(X),node(Y),isedge((X,Y)),isedge((Y,W)),isedge((W,Z)).

 

spanningtree(X):-edge_no(N),length(X,N),edges(X).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...