Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
pp:lplprobs [2019/05/11 20:41] georgem created |
pp:lplprobs [2020/02/05 15:52] (current) dmihai [Torța și podul] |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| ==== Avantaje prolog ==== | ==== Avantaje prolog ==== | ||
| - | Problemele de backtracking sau de logică pot fi reprezentate, cât și rezolvate cu mare ușurință în Prolog. | + | Problemele de logică pot fi reprezentate, cât și rezolvate cu mare ușurință în Prolog. |
| Să luăm un exemplu de problemă de logică - [[https://swish.swi-prolog.org/example/houses_puzzle.pl?fbclid=IwAR3z3fA1AH6ceBvynZIE4OmfhBAIJzk33XLncQN6txJ4RRRm4IAaC6sOO7sEINSTEIN.HTM|Problema lui Einstein]]. | Să luăm un exemplu de problemă de logică - [[https://swish.swi-prolog.org/example/houses_puzzle.pl?fbclid=IwAR3z3fA1AH6ceBvynZIE4OmfhBAIJzk33XLncQN6txJ4RRRm4IAaC6sOO7sEINSTEIN.HTM|Problema lui Einstein]]. | ||
| Se poate observa ușurința cu care se pot adăuga noi interogări, cât și modul în care au fost reprezentate informațiile din baza de cunoștințe. | Se poate observa ușurința cu care se pot adăuga noi interogări, cât și modul în care au fost reprezentate informațiile din baza de cunoștințe. | ||
| - | ==== Cheryl's birthday ==== | + | ==== Ziua de naștere - Cheryl ==== |
| - | Această problemă are următoarea formulare: | + | Albert și Bernard trebuie să afle ziua și luna în care s-a născut Cheryl. |
| + | Albert cunoaște luna de naștere, iar Bernard ziua. | ||
| + | Aceștia mai cunosc posibilele zile de naștere: | ||
| + | * 15, 16, 19 - Mai | ||
| + | * 17, 18 - Iunie | ||
| + | * 14, 16 - Iulie | ||
| + | * 14, 15, 17 - August | ||
| + | |||
| + | Discuția dintre cei 2 este următoarea: | ||
| + | |||
| + | //Albert: Nu știu când s-a născut Cheryl, însă știu că nici Bernard nu știe.// | ||
| + | |||
| + | //Bernard: La început nu știam ziua de naștere, însă acum știu.// | ||
| + | |||
| + | //Albert: Acum știu și eu ziua de naștere.// | ||
| + | |||
| + | Încercați pe cont propriu să raționalizați cum și-au dat seama cei doi de ziua de naștere, iar după realizați în Prolog | ||
| + | |||
| + | ==== Lupul, capra și varza ==== | ||
| + | Un țăran trebuie să treacă un lup, o capră și o varză pe malul opus al unui râu, într-un timp cât mai scurt. | ||
| + | Acesta are o barcă și poate traversa râul doar cu lupul, cu capra sau cu varza. | ||
| + | Se știe că: | ||
| + | * lupul mănâncă capra dacă sunt lăsați singuri pe un mal | ||
| + | * capra mănâncă varza dacă sunt lăsați singuri pe un mal | ||
| + | |||
| + | Țăranul dorește să ajungă pe celălalt mal cu ambele animale, cât și cu varza. | ||
| + | Care ar fi drumurile pe care ar trebui să le facă țăranul cu barca? (și ce ar trebui să care cu el la fiecare drum). | ||
| + | |||
| + | |||
| + | ==== Vârsta Cheryl ==== | ||
| + | Albert și Bernard doresc să știe vârsta prietenei lor, Cheryl. | ||
| + | Aceștia primesc următoarele informații (exact în această ordine) pentru a-și putea da seama de vârstă: | ||
| + | |||
| + | * Cheryl are 2 frați mai mici. Produsul vârstelor lor este 144. | ||
| + | * Suma vârstelor este un număr de 2 cifre (pe care Albert si Bernard îl știu), iar Albert și Bernard nu se pot prinde de vârstă utilizând această informație în plus. | ||
| + | * Frații au aceeași vârstă. | ||
| + | |||
| + | Încercați să vă dați seama câți ani are Cheryl și prind Albert și Bernard de ziua. | ||
| + | |||
| + | ==== Torța și podul ==== | ||
| + | Patru persoane trebuie să ajungă pe partea cealaltă a unui pod. | ||
| + | Fiecare persoana traversează podul la o viteza diferită. | ||
| + | Vitezele celor 4 persoane sunt: | ||
| + | *A -- 1 minut să traverseze podul | ||
| + | *B -- 2 minute să traverseze podul | ||
| + | *C -- 5 minute să traverseze podul | ||
| + | *D -- 8 minute să traverseze podul | ||
| + | |||
| + | **Constrângeri:** | ||
| + | * maxim 2 persoane pot merge pe pod | ||
| + | * viteza cu care cele 2 persoane pot traversa podul este dată de minimul dintre viteza de mișcare a persoanelor. | ||
| + | * podul poate fi traversat doar dacă una dintre cele 2 persoane deține torța (podul poate fi trecut și de o singură persoană). | ||
| + | |||
| + | Cerința este să se găsească timpul minim necesar astfel încât toate persoanele să fi trecut podul. | ||
| + | |||
| + | {{:pp:skel-probs.zip | Logic problems skel}} | ||
| + | |||
| + | {{:pp:lab11pp14_00.zip| labOra14}}\\ | ||
| + | {{:pp:labora14rez.zip| labOra14Rez}}\\ | ||
| + | {{:pp:tutorial.zip|}} | ||