Problema celor 8 regine

Proiect
8/10 (1 vot)
Domeniu: Rețele
Conține 1 fișier: doc
Pagini : 40 în total
Cuvinte : 5221
Mărime: 141.04KB (arhivat)
Puncte necesare: 8
Profesor îndrumător / Prezentat Profesorului: M. Kulev
Ministerul Educaţiei al Republicii Moldova Universitatea Tehnica a Moldovei Catedra Informatică Aplicată

Cuprins

  1. 1.Sarcina lucrării.3
  2. 2.Introducere.4
  3. 3.Teoria asupra metodei Backtracking.5
  4. 3.1. Concret functionarea algoritmului Backtracking.7
  5. 4.Teoria asupra problemei celor 8 regine.8
  6. 4.1. Model de determinare a tuturor solutiilor.11
  7. 4.2. Reprezentarea algoritmului backtracking pentru problema celor 8 dame .15
  8. 5.Concluzii.20
  9. 6. Bibliografie.21
  10. Anexa A.22
  11. Listingul programului
  12. Anexa B.40
  13. Screenshoturi

Extras din proiect

1. Sarcina lucrării

Să se scrie un program ce rezolvă următoarea problema:

Problema celor 8 dame:Se cere să se găseasca toate soluţiile de aşezare pe tabla de şah a 8 regine astfel încît ele să nu să se atace.Se consideră că ele se atacă dacă sînt pe aceeaşi linie, coloană sau diagonală.

Desemenea se cere prezentarea grafica a citorva solutii pentru vizualizare mai buna a a raspunsurilor. De folosit metoda backtracking si libraria graphics.h

2. Introducere

Problema celor 8 regine reprezintă un exemplu bine cunoscut de utilizare a algoritmilor cu revenire. Această problemă a fost investigată de K.F. Gauss în 1850, care însă nu a rezolvat-o complet, întrucât până în prezent nu a fost găsită o soluţie analitică completă. În schimb ea poate fi rezolvată prin încercări, necesitând o mare cantitate de muncă, răbdare, exactitate şi acurateţe, atribute în care maşina de calcul excelează asupra omului chiar atunci când acesta este un geniu.

Specificarea Problemei celor 8 regine: pe o tablă de şah trebuiesc plasate 8 regine astfel încât nici una dintre ele să nu le ameninţe pe celelalte. Se observă imediat că aceasta este o problemă de tip(n,m): Deoarece există 8 regine care trebuiesc plasate, deci soluţia necesită 8 paşi, pentru fiecare din cele 8 regine existând, după cum se va vedea, 8 posibilităţi de a fi aşezate pe tabla de şah.

Sunt necesare câteva precizări. Deoarece din regulile şahului se ştie că regina ameninţă toate câmpurile situate pe aceeaşi coloană, rând sau diagonală în raport cu câmpul pe care ea se află, rezultă că fiecare coloană a tablei de şah va putea conţine o singură regină. Astfel alegerea poziţiei celei de-a i-a regine poate fi restrânsă numai la coloana i. În consecinţă: parametrul i din cadrul algoritmului devine indexul coloanei în care va fi plasată regina i, procesul de selecţie se restrânge la una din cele 8 valori posibile ale indicelui j care precizează rândul în cadrul coloanei. În concluzie: Avem o problemă tipică . Soluţionarea ei necesită 8 paşi (aşezarea celor 8 regine), fiecare într-una din cele 8 poziţii ale coloanei proprii (8 posibilităţi). Arborele de apeluri recursive este de ordinul 8 şi are înălţimea 8. În continuare se impune alegerea modalităţii de reprezentare a poziţiei celor 8 regine pe tabla de şah.

Soluţia imediată este aceea a reprezentării tablei cu ajutorul unei matrice t de dimensiuni 8x8 , dar o astfel de reprezentare conduce la operaţii greoaie şi complicate de determinare a câmpurilor disponibile. Pornind de la principiul că de fiecare dată trebuiesc utilizate reprezentările directe cele mai relevante şi mai eficiente ale informaţiei, în cazul de faţă nu se vor reprezenta poziţiile reginelor pe tabla de şah ci faptul că o regină a fost sau nu plasată pe un anumit rând sau pe o anumită diagonală.

Deci pentru a alcatui algoritmul dat avem nevoie de a face cunostinta cu metoda backtracking de asemenea pentru usurarea lucrului am apelat la exemplele de cod logic care ne permit sa facem alegerea optima a solutiei intr-un timp destul de scurt.

3. Tehnica Backtracking

Această tehnică se foloseşte în rezolvarea problemelor care îndeplinesc simultan următoarele condiţii:

- soluţia lor poate fi pusă sub forma unui vector S=x1,x2, .,xn, cu x1 € A1, x2 € A2 .,xn € An

- mulţimile A1, A2 , ., An sunt mulţimi finite, iar elementele lor se consideră că se află într-o relaţie de ordine bine stabilită;

- nu se dispune de o altă metodă de rezolvare, mai rapidă

- x1 x2 ., xn pot fi la rândul lor vectori;

- A1, A2 ., An pot coincide.

La întâlnirea unei astfel de probleme, dacă nu cunoaştem această tehnică, suntem tentaţi să generăm toate elementele produsului cartezian A1,A2 .,An si fiecare element să fie testat dacă este soluţie. Rezolvând problema în acest mod, timpul de execuţie este atât de mare, încât poate fi considerat infinit, algoritmul neavând nici o valoare practică.

De exemplu, dacă dorim să generăm toate permutările unei mulţimi finite A, nu are rost să generăm produsul cartezian AxAx.xA, pentru ca apoi, să testăm, pentru fiecare element al acestuia, dacă este sau nu permutare (nu are rost să generăm 1.1,1.1, pentru ca apoi să constatăm că nu am obţinut o permutare, când de la a doua cifră 1 ne puteam da seama că cifrele nu sunt distincte).

Pentru fiecare problemă se dau relaţii între componentele vectorului x, care sunt numite condiţii interne; soluţiile posibile care satisfac condiţiile interne se numesc soluţii rezultat. Metoda de generare a tuturor soluţiilor posibile si apoi de determinare a soluţiilor rezultat prin verificarea îndeplinirii condiţiilor interne necesită foarte mult timp.

Metoda backtracking evită această generare şi este mai eficientă. Elementele vectorului x, primesc pe rând valori în ordinea crescătoare a indicilor, x[k] va primi o valoare numai daca au fost atribuite valori elementelor x1. x[k-1]. La atribuirea valorii lui x[k] se verifica îndeplinirea unor condiţii de continuare referitoare la x1.x[k-1]. Daca aceste condiţii nu sunt îndeplinite, la pasul k, acest lucru înseamnă ca orice valori i-am atribui lui x[k+1], x[k+1], . x[n] nu se va ajunge la o soluţie rezultat.

Bibliografie

1. V . C r e ţ u, "Structuri de date şi algoritmi. Structuri de date fundamentale. Vol.1", Editura "Orizonturi Universitare", 2000 .

2. V. Creţu, "Structuri de date şi tehnici de programare", Litografia Institutului Politehnic "Traian Vuia" Timişoara, 1987.

Preview document

Problema celor 8 regine - Pagina 1
Problema celor 8 regine - Pagina 2
Problema celor 8 regine - Pagina 3
Problema celor 8 regine - Pagina 4
Problema celor 8 regine - Pagina 5
Problema celor 8 regine - Pagina 6
Problema celor 8 regine - Pagina 7
Problema celor 8 regine - Pagina 8
Problema celor 8 regine - Pagina 9
Problema celor 8 regine - Pagina 10
Problema celor 8 regine - Pagina 11
Problema celor 8 regine - Pagina 12
Problema celor 8 regine - Pagina 13
Problema celor 8 regine - Pagina 14
Problema celor 8 regine - Pagina 15
Problema celor 8 regine - Pagina 16
Problema celor 8 regine - Pagina 17
Problema celor 8 regine - Pagina 18
Problema celor 8 regine - Pagina 19
Problema celor 8 regine - Pagina 20
Problema celor 8 regine - Pagina 21
Problema celor 8 regine - Pagina 22
Problema celor 8 regine - Pagina 23
Problema celor 8 regine - Pagina 24
Problema celor 8 regine - Pagina 25
Problema celor 8 regine - Pagina 26
Problema celor 8 regine - Pagina 27
Problema celor 8 regine - Pagina 28
Problema celor 8 regine - Pagina 29
Problema celor 8 regine - Pagina 30
Problema celor 8 regine - Pagina 31
Problema celor 8 regine - Pagina 32
Problema celor 8 regine - Pagina 33
Problema celor 8 regine - Pagina 34
Problema celor 8 regine - Pagina 35
Problema celor 8 regine - Pagina 36
Problema celor 8 regine - Pagina 37
Problema celor 8 regine - Pagina 38
Problema celor 8 regine - Pagina 39
Problema celor 8 regine - Pagina 40

Conținut arhivă zip

  • Problema Celor 8 Regine.doc

Alții au mai descărcat și

Comunicații și rețele wireless

În cautarea raspunsului istoric, am ajuns la un altul legat de tehnologia mobila Bluetooth, care ne înconjoara astazi de pretutindeni. Caci la fel...

Fibră optică

INTRODUCERE Tehnologia de astazi ne permite sa transmitem informatii sub forma de voce sau date la o viteza care a depasit-o pe cea a sistemului...

Rețele de calculatoare

Un model de comunicatie - Sursa —Genereaza date care urmeaza a fi transmise - Transmitator —Converteste datele in semnale transmisibile -...

Soluții Flexibile pentru Supraveghere Video și Monitorizare de la Distanță

Supravegherea bazată pe IP oferă soluţii de calitate superioară pentru securitate si monitorizare de la distanţă, prin simpla conectare la o reţea...

Multimedia - Suport de curs pentru autoinstruire

1. UNITATEA DE STUDIU 1 - Concepte generale, clase de aplica.ii multimedia Cuprins 1.1. Introducere .. 4 1.2. Obiectivele .i competen.ele...

Întrebări licență rețele de calculatoare

protocol de nivel aplicatie este utilizat pentru a a translata nume de host (adrese URL) in adrese IP? DNS 2. Dati un exemplu de adresa valida de...

Totul despre rețele

TOTUL DESPRE RETELE Inceputul Retelele sunt clasificate in retele peer-to-peer si retele bazate pe server. Intr-o retea peer-to-peer nu exista...

Te-ar putea interesa și

Rețea de prelucrarea distribuită a imaginilor

INTRODUCERE Procesul de informatizare se caracterizează prin apariţia şi dezvoltarea în interiorul diverselor organizaţii a unor reţele de...

Problema celor opt regine

1. Enunţul problemei. Problema celor 8 regine. Să se plaseze 8 regine pe o tablă de şah a.î. acestea să nu se atace reciproc. O regină atacă orice...

Sisteme administrative comparate în Marea Britanie și Italia

I.PARTICULARITATILE SISTEMELOR ADMINISTRATIVE MAREA BRITANIE In Regatul Unit al Marii Britanii au fost create structuri distincte pentru...

Harta culturală a Bucureștiului - zonele cu potențial cultural crescut, zonele cu cea mai mare concentrare de instituții culturale, noi zone cu potențial cultural

București constituie capitala României și, în același timp, este cel mai aglomerat și dezvoltat oraș, centru industrial și comercial al țării....

Programare evolutivă și algoritmi genetici

Introducere Ideea de a aplica principiile darwiniste ale evolutiei in rezolvarea automata a problemelor (Problem Solving - PS) dateaza din anii...

Structuri de Date și Algoritmi

1. Conceptul de dată În informatică, prin dată, se desemnează un model de reprezentare a informaţiei, model cu care se poate opera pentru a obţine...

Inteligență artificială - capitolul 1-strategii de căutare

Strategia de cautare pe nivel în spatiul starilor Strategia de cautare pe nivel (în latime, breadth-first search) este o strategie de cautare...

Structuri de Date și Alogoritmi

EXTENSII ALE LIMBAJULUI C++ A. Operaţii de intrare-ieşire specifice limbajului C++ I. Noţiuni teoretice Limbajul C++ furnizează o bibliotecă...

Ai nevoie de altceva?