24.12.2012 Views

Zbirka zadataka iz Ekspertskih sistema

Zbirka zadataka iz Ekspertskih sistema

Zbirka zadataka iz Ekspertskih sistema

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

78 1. Pretraživanje<br />

Zadatak 31: Hanojske kule<br />

Posmatrajmo igru Hanojskih kula, sa N diskova različitih poluprečnika i tri stuba (na slici 66<br />

prikazan je slučaj za N jednako 3). Cilj igre je da se svi diskovi sa stuba 1 prebace na stub 3,<br />

poštujući pritom sledeća ograničenja:<br />

• u datom trenutku može se pomeriti samo jedan disk, i<br />

• veći disk ne sme ni u jednom trenutku da se nađe <strong>iz</strong>nad manjeg.<br />

Napisati programe na Prolog-u i LISP-u koji rešavaju dati problem.<br />

a<br />

b<br />

c<br />

1 2 3<br />

Slika 66<br />

Anal<strong>iz</strong>a problema<br />

Ovaj problem može se shvatiti kao konjunkcija podciljeva:<br />

• smestiti disk a na stub 3,<br />

• smestiti disk b na stub 3 i<br />

• smestiti disk c na stub 3.<br />

Ovi podciljevi, na žalost, nisu nezavisni. Ako odmah stavimo disk a na stub 3, druga dva<br />

podcilja ne možemo zadovoljiti. Pokazuje se da je zgodno pokušati najpre sa najtežim ciljem:<br />

premestiti disk c na stub 3, a zatim postići ostala dva podcilja. Da bi se disk c premestio na<br />

stub 3, potrebno je ukloniti diskove a i b sa diska c. Problem se, prema tome, rešava kao<br />

konjunkcija sledeća tri podcilja:<br />

1. premestiti diskove a i b sa stuba 1 na stub 2 i<br />

2. premestiti disk c na stub 3 i<br />

3. premestiti diskove a i b sa stuba 2 na stub 3.<br />

Podciljevi se rešavaju na sledeći način: Podcilj 1 je konjunkcija sledeća 3 podcilja:<br />

1.1. premestiti disk a sa stuba 1 na stub 3 i<br />

1.2. premestiti disk b sa stuba 1 na stub 2 i<br />

1.3. premestiti disk a sa stuba 3 na stub 2.<br />

Podcilj 2 je elementaran, dok se podcilj 3 zadovoljava post<strong>iz</strong>anjem cledeća tri podcilja:<br />

3.1. premestiti disk a sa stuba 2 na stub 1 i<br />

3.2. premestiti disk b sa stuba 2 na stub 3 i<br />

3.3. premestiti disk a sa stuba 1 na stub 3.<br />

Na slici 67 prikazano je stablo rešavanja u ovom slučaju. U korenu stabla je krajnji cilj, u<br />

čvorovima su podciljevi. Podciljevi u listovima su elementarni.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!