Příklad do prologu

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Příklad do prologu

Re: Příklad do prologu

od Andrew24 » 12. 1. 2015 13:58

Mohl by mi prosím někdo poradit jak by to vypadalo kdyby se měly na konci vypsat všechny cykly jichž daný uzel neni prvkem? díky

Re: Příklad do prologu

od H8me » 29. 6. 2010 23:25

Neviem co ma vyjadrovat h(d) ale ked to preskocim tak dotaz pre tvoj priklad by vyzeral takto:

vsetkyCykly([h(f,c),h(g,h),h(f,b),h(k,f),h(h,g)],f,Out).

Out je volna premenna, ta vrati zoznam cyklov.

A to riesenie co si postol funguje na tom istom principe, tiez vyhladava cesty v grafe zo zaciatkom aj koncom v tom istom bode.

Re: Příklad do prologu

od wweennddeell » 29. 6. 2010 23:05

Díky moc za snahu. Ten prolog je pro mě kámen úrazu.

Jestli sem to dobře pochopil, tak mám například tyto hrany:

h(b,c).
h(f,c).
h(g,h).
h(d).
h(f,b).
h(k,f).
h(h,g).

Co mám teda napsat za vstupní podmínku, aby mi prolog vypsal všechny cykly třeba uzlu f (i když v tomhle příkladu je pouze jeden cyklus).

Řešení sem našel na téhle stránce: https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/ .Příklad P82 by měl být přesně ten, co hledám, bohužel vůbec nevím jak ten program mám z toho sestavit.

Re: Příklad do prologu

od H8me » 29. 6. 2010 17:12

Zdarec,
co to to ? Je to pre orientovany graf.

Kód: Vybrat vše

%graf je zoznam hran v tvare h(X,Y)

vsetkyCykly(Hrany,X,Out):-findall(C,(cyklus(Hrany,X,X,[],C),length(C,Len),Len > 1),Out).

cyklus(_,X,X,Akum,Akum).
cyklus(Hrany,X,Y,Akum,Out):-member(h(Y,N),Hrany), not(member(N,Akum)), cyklus(Hrany,X,N,[N|Akum],Out).

Příklad do prologu

od wweennddeell » 28. 6. 2010 22:20

Dobrý den,

potřeboval bych pomoct naprogramovat úlohu v prologu. Hledal jsem nějaké řešení na internetu, ale nic jsem nenašel a absolutně si s tím nevím rady.

Úloha zní takto: Na vstupu je zadán graf, který obecně není stromem. Napište program v jazyce Prolog, který vytiskne pro zadaný uzel grafu všechny cykly grafu, jichž je daný uzel prvkem.

Budu rád za každou Vaši pomoc...

Nahoru