1 / 12

BACKTRACKING

BACKTRACKING. CE ESTE BACKTRACKINGUL ?. ESTE O METODA DE GENERARE A MAI MULTOR SOLUTII FORMATA DINTR-O SUCCESIUNE DE SUBPROGRAME CU SARCINA DE A USURA MUNCA PROGRAMATORULUI. UN ELEV ESTE NEHOTARAT IN PRIVINTA ALEGERII ORDINII LICEELOR PENTRU FISA DE INSCRIERE.

bevan
Download Presentation

BACKTRACKING

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BACKTRACKING

  2. CE ESTE BACKTRACKINGUL ? ESTE O METODA DE GENERARE A MAI MULTOR SOLUTII FORMATA DINTR-O SUCCESIUNE DE SUBPROGRAME CU SARCINA DE A USURA MUNCA PROGRAMATORULUI

  3. UN ELEV ESTE NEHOTARAT IN PRIVINTA ALEGERII ORDINII LICEELOR PENTRU FISA DE INSCRIERE PENTRU A LUA O DECIZIE, EL S-A FOLOSIT DE METODA PERMUTARILOR IN CELE DIN URMA ELEVUL A REALIZAT CA SUNT PREA MULTE SOLUTII CA EL SA LE POATA SCRIE SINGUR , ASA CA A FOLOSIT METODA BACKTRACKING PENTRU A GENERA RESTUL POSIBILITATILOR VITEAZU VITEAZU SAVA SAVA ROSETTI ROSETTI COSBUC COSBUC HASDEU HASDEU VIANU VIANU A DOUA SOULTIE PRIMA SOLUTIE

  4. CE VREAU SA STIU ? CUM FUNCTIONEAZA ? CAND POT SA IL FOLOSESC ?

  5. SA AFLAM IMPREUNA VOM INTELEGE MAI BINE CU AJUTORUL UNUI EXEMPLU MAI COMPLEX NE AFLAM IN ANUL 2040 CERCETATORII ROMANI AU CREAT MASINA TIMPULUI SI AU DECIS SA IL TRIMITA PE RADU INAPOI IN TRECUT , DAR DIN NEFERICIRE EL A AJUNS INTR-UN LAC MINAT IN TIMPUL CELUI DE-AL DOILEA RAZBOI MONDIAL.PENTRU A IESI A APELAT LA PRIETENII LUI DIN VIITOR VLAD SI ALEX PENTRU A GASI O CALE DE IESIRE.

  6. 1 2 3 4 5 RADU PE CAMPUL MINAT 1 2 3 4 5 1 2 2 5 5 4 4 1 2 2 2 4 4 4 4 2 2 3 2 3 4 3 4 3 IESIRE NORD IESIRE EST IESIRE SUD IESIRE VEST

  7. BIBLOTECILE CODUL SURSA CALE FISIER #include<conio.h> #include<fstream.h> int sol[100][2],l[10][10],m,n,k,i,j,lin,col; ifstream f("C:\\bc5\\bin\\mat.txt"); int vizitat(int k,int lin,int col) { int v=0; for(i=1;i<=k;i++) if(sol[i][0]==lin && sol[i][1]==col)v=1; return v; }

  8. CITIRE NUMAR LINII SI COLOANE main() { f>>m; f>>n; for(i=1;i<=m;i++) for(j=1;j<=n;j++) {f>>l[i][j]; } cout<<"Pozitia lu Radu pe linie = "; cin>>lin; cout<<"Pozitia lui Radu pe coloana = "; cin>>col; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) cout<<l[i][j]<<" "; cout<<endl; } back(k,lin,col); getch(); } CITIRE POZITIE CITIRE POZITIE AFISARE MATRICE APELARE BACK

  9. void tipar(int k,int lin,int col) { cout<<"solutie"<<endl; for(i=1;i<=k-1;i++) cout<<sol[i][0]<<" "<<sol[i][1]<<endl; if(lin==0) cout<<"iesire prin nord"<<endl; else if(lin==m+1) cout<<"iesire prin sud"<<endl; else if(col==0) cout<<"iesire prin vest"<<endl; else cout<<"iesire prin est"<<endl; } AFISARE SOLUTII

  10. COORDONATELE LUI RADU void back(int k,int lin,int col) {if(lin==0 || lin==m+1 || col==0 || col==n+1) tipar(k,lin,col); else {sol[k][0]=lin; sol[k][1]=col; for(int i=1;i<=4;i++) switch(i){ case 1: if(l[lin][col] & 8 && !vizitat(k,lin-1,col)) back(k+1,lin-1,col); break; case 2: if(l[lin][col] & 4 && !vizitat(k,lin,col+1)) back(k+1,lin,col+1); break; case 3: if(l[lin][col] & 2 && !vizitat(k,lin+1,col)) back(k+1,lin+1,col); break; case 4: if(l[lin][col] & 1 && !vizitat(k,lin,col-1)) back(k+1,lin,col-1); break; }}} SE EXECUTA MISCAREA IN MATRICE

  11. CE AM INVATAT ? CAT DE IMPORTANTA POATE FI MUNCA IN ECHIPA CAND SA FOLOSESC BACKTRACKING SA IMI FOLOSESC IMAGINATIA

  12. VLAD RADU ALEX

More Related