Sunteți pe pagina 1din 2

Problema misionarilor si canibalilor

Enuntul problemei:

3 misionari i 3 canibali se afl pe unul dintre malurile unui ru, mpreun cu o barc ce poate
transporta la un moment dat unul sau doi oameni. Se cere s se gseasc o modalitate de a-i
transporta pe toi pe cellalt mal, fr a permite la vreun transport ca numrul de canibali dintr-
o locaie s depeasc numrul de misionari.

Datele de intrare ale problemei:

Programul este creat pentru a incepe de pe malul 0 cu 3 misionari respectiv 3 canibali.


Operatorii asociati ponterului si adancimii acestuia sunt declarati 0.
Singurele date care se introduc de la tastatura este adancimea pana la care se vrea facuta
cautarea.

Definire:

Programele trebuie gaseasca o metoda de rezolvare respectiva utilizand 2 strategii de catutare


diferite, una de cautare neinformata si una de cautare informata. Dupa rezolvare acestea
trebuie sa afiseze calea aleasa si costul acesteia. Costurile si durata de executare difera in
functie de algoritml utilizat.
Strategia de cautare neinformata (DFL)

Este un algoritm recursiv care foloseste ideea backtracking-ului. Implica cautari exhaustive a tuturor
nodurilor mergand inainte daca este posibil, altfel prin backtracking.

Natura recursiva a acestei strategii poate fi implementata utilizand stive. Ideea de baza consta in
alegerea unui nod de start si adaugarea tuturor nodurilor adiacente in stiva.

Dupa se elimina un nod din stiva pentru a se selecta urmatorul nod de vizitat si se adauga nodurile
adiacente acestuia in stiva.

Acest proces se repeta pana cand stiva este goala. Dar trebuie sa se asigura ca nodurile vizitate sa fie
marcate. Asta ajuta la revizitarea unor noduri care au fost deja parcurse, astfel evitandu-se formarea
unei bucle infinite.

Strategia de cautare informata (A*)

Este unul din cele mai folosite tehnici folosite in cautarea caii sau traversare de graf.
Spre deosebire de tehnica de mai sus aceasta este mai inteligenta, deoarece gaseste calea
corecta de parcurgere a unui graf/arbore/etc care sa aiba costul minim reducand astfel
resursele utilizate in parcurgerea acestuia.
Aceasta tehnica se bazeaza pe functia euristica cu ajutorul careia programul deduce calea cea
mai eficienta.