a IX-a A27 lecții INFORMATICĂ | 12 lecții T.I.C.
Informatică
Lectia 00001   |   Lectia 00   |   Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04   |   Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 101   |   Lectia 102   |   Lectia 103   |   Lectia 11   |   Lectia 11_2   |   Lectia 12   |   Lectia 12_2   |   Lectia 12_3   |   Lectia 12_4   |   Lectia 12_5   |   Lectia 13   |   Lectia 14   |   Lectia 17
Lectia 18   |   Lectia 19
T.I.C.

Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04
Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08   |   Lectia 09
Lectia 10   |   Lectia 11   |   Lectia 12
a IX-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a IX-a C0 lecții INFORMATICĂ | 11 lecții T.I.C.
T.I.C.
Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04
Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08
Lectia 10   |   Lectia 12   |   Lectia 13
a IX-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a IX-a E0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a A5 lecții INFORMATICĂ | 10 lecții T.I.C.
Opțional
Fișa 01   |   Fișa 02   |   Fișa 03   |   Fișa 04   |   Fișa 05
T.I.C.

Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14
Lecția 14_1
Lectia 15
a X-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a A16 lecții INFORMATICĂ | 0 lecții T.I.C.
Informatică
Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14
Lectia 16   |   Lectia 18   |   Lectia 19   |   Lectia 20   |   Lectia 21
Lectia 23   |   Lectia 24
Lectia 36
Lectia 36 --- [ Teorie + 1 Probleme rezolvate ]

METODA BACKTRACKING

Aceasta tehnica se foloseste in general la rezolvarea problemelor care indeplinesc urmatoarele conditii:

Ø  Solutia lor poate fi pusa sub forma unui vector S= x1, x2, …, xn cu x1 apartine lui A1, x2 apartine lui A2 …

Ø  Multimile A1, A2, …, A n sunt multimi finite, iar elementele lor se considera intr-o relatie de ordine bine stabilita.

Ø  Nu se dispune de o alta metoda de rezolvare, mai rapida.

Obs: In multe din probleme multimile A1, A2, …, An  coincid.

La intalnirea unei astfel de probleme, daca nu cunoastem aceasta tehnica, suntem tentati sa generam toate elementele produsului cartezian A1* A2* …* An si fiecare element sa fie testat daca este solutie.

Ex. Consideram generarea permutarilor multimii {1, 2, 3, …, n} unde n este un numar natural.

In cazul de fata A1  =A2 =… = An = {1, 2, 3, …, n} = A (notatie). Trebuie determinata o multime x1, x2, …, x n cu propietatea ca x1 , x2, …, xn apartin lui A. Elementul 1 * 1 * … * 1 este un element al produsului cartezian A * A *… * A dar nu este o permutare a multimii A fiind ca nu respecta propietatea unei pertutari si anume ca toate elementele sunt distincte intre ele. Deci daca s-a ales un element i care apartine lui A atunci celalat element va trebui sa fie diferit de i.

Elementele vectorului solutiei se vor completa pe rand. Astfel x2 va primi o valoare doar dupa ce x1  a primit o valoare si va trebui sa fie diferita de aceasta.

In general xk+1 va primi o valoare daca xk  a primit o valoare si daca x1 <> x2 <> … <>xk <> xk+1

x1 va primi valoarea primului element al multimii A. Se vor verifica conditiile de continuare adica in sirul x al solutiilor sa nu fie doua elemente egale, dar fiind ca sirul contine un singur element acestea sunt indeplinite. x2 va primi la randul sau valoarea primului element din A numai daca sunt indeplinite conditiile de continuare. Deoarece atat x1 are deja valoarea primului element al multimii A aceste conditii nu sunt indeplinite si deci va trebui sa se aleaga o alta valoare pentru x2 si anume urmatorul element din A.

Daca xk  a primit o valoare atunci xk+1 va primi primul element din A daca sunt indeplinite conditiile de continuare.

Daca k = n si sunt indeplinite conditiile de continuare atunci s-a determinat o solutie si se va afisa solutia

 Daca primul element din A se afla deja printre elementele x1, x2, …, xk  atunci se va alege urmatorul element din A.

Daca in A nu se mai afla nici un element care sa se aleaga si sa respecte conditiile de continuare atunci se revine la xk  si se alege urmatorul element din A de dupa elementul xk

Algoritmul Backtraking este:

K=1

X1= 1

Cat timp k>0 executa

    cat timp k < n  si sunt indeplinite Conditiile de continuare executa

        k =  k+1

        xk = 1

    Sf. Cat timp

     Daca k=n si sunt indeplinite Conditiile de continuare  atunci

                       Tipareste Solutia – vectorul X

     Sf Daca

    Cat timp  Nu mai sunt Elemente in A de ales  executa

            k = k –1

    Sf Cat timp

    Daca  k >0 atunci

              x k = xk + 1

    Sf Daca

Sf Cat timp                          

1. Sa se scrie un program care citeste un numar natural n si afiseaza toate permutarile multimii {1, 2, 3, ..., n}
Propune o soluție

S
o
l
u
ț
i
a:
Introdu următorul text: 190830470

Fii primul care comentează lecţia
     Submit
a XI-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a D0 lecții INFORMATICĂ | 9 lecții T.I.C.
T.I.C.
Fişa 01   |   Fişa 02
Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04   |   Lectia 05   |   Lectia 06   |   Lectia 07
a XI-a E0 lecții INFORMATICĂ | 1 lecții T.I.C.
T.I.C.
Fişa 01
a XII-a A2 lecții INFORMATICĂ | 0 lecții T.I.C.
Informatică
Lectia 01   |   Lectia 02
a XII-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a E0 lecții INFORMATICĂ | 0 lecții T.I.C.
Excelenta A0 lecții INFORMATICĂ | 0 lecții T.I.C.