Problema cailor

Învățarea strategiilor de bază pentru rezolvarea problemelor. Dobândirea abilităților în alegerea strategiilor adecvate în funcție de tipul de sarcini. Alegerea unui instrument pentru implementarea acestor strategii.







Problema cailor: "Ce număr maxim de cai pot fi plasați pe o șah, astfel încât să nu se bată unul pe celălalt".

Problema aranjării cailor pe șah va fi rezolvată prin metoda de sortare a tuturor variantelor posibile ale aranjamentului prin căutarea în profunzime. Spațiul statelor în acest caz va fi un set de poziții de bord, pe fiecare dintre care un cal poate sau nu poate fi prezent, în timp ce niciun cal nu bate pe altul. Cel mai mare număr de cai care pot fi plasați pe o placă standard de 8x8 este de 32. Această soluție poate fi obținută prin plasarea cailor pe toate celulele albe sau toate cele negre. Cu o căutare completă în funcție de adâncimea de căutare pentru un număr mare de cai, timpul petrecut este prea lung pentru a testa programul, deoarece numărul opțiunilor considerate crește dramatic. Prin urmare, numărul maxim de cai pentru care am reușit să așteptăm o decizie este de 25.







Baza pentru program a fost algoritmul din cartea lui I. Bratko Programarea în prologul inteligenței artificiale. În conformitate cu acest algoritm, folosim liste întregi, în care stocăm coordonatele câmpurilor pe care stau caii, care nu se bate unul pe celălalt. Pentru a forma o listă în procesul de căutare în profunzime, procedăm după cum urmează: în principatul predicat aranja. care efectuează un bypass în profunzime, noi, la fiecare pas, transmitem numărul de cai rămași pentru aranjament, coordonatele calului nou adăugat și cele două liste în care sunt stocate coordonatele celor deja plasați. Trebuie îndeplinite următoarele reguli:

1. Cai ale căror coordonate sunt enumerate în listele nu trebuie să se bată reciproc

2. Coordonatele calului adăugat trebuie să se afle în bord (de la 1 la 8)

3. Calul adăugat nu trebuie să bată pe nici un cavaler din lista deja compilată.

Predicatul nu este folosit. care verifică condiția 3. Traversează toți caii din listă și verifică rezultatul bătăii predicate. care verifică coordonatele a două cai, comparativ cu cele care sunt în mod evident greșite. Coordonatele greșite sunt determinate de următoarea schemă:







Articole similare

Trimiteți-le prietenilor: