Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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|}}