joi, 20 martie 2014

Aplicatii Metoda Backtracking

PRODUS CARTEZIAN
Se dau n mulţimi, ca cele de mai jos:
 S1={1,2,3,...,w1}
 S2={1,2,3,...,w2}
 ......................... 
Sn={1,2,3,...,wn} 
Se cere să se gnereze produsul lor cartezian.  
Exemplu: pemtru n=3 şi urmăroarele mulţimi 
S1={1,2} w1=2 
S2={1,2,3} w2=3
 S3={1,2} w3=2 
produsul cartezian este: 
S1 xS2 xS3 ={ (1,1,1),(1,1,2),(1,2,1),(1,2,2),(1,3,1),(1,3,2), (2,2,1),(2,1,2),(2,2,1),(2,2,2),(2,3,1),(2,3,2)} 
Prin urmare o soluţie este un şir de n elemente, fiecare element iєSi, cu i=1,n 
Să analizăm exemplul de mai sus: 
1. La pasul k selectăm un element din mulţimea Sk ={1,2,3,...,wk}.
 2. Elementele unei soluţii a produsului cartezian, pot să se repete, pot fi în orice ordine, iar valori străine nu pot apare, deoarece le selectăm doar dintre elementele mulţimii Sk . Prin urmare nu trebuie să impunem condiţii de continuare. 
3. Obţinem o soluţie în momentul în care am completat n elemente în vectorul v. Vom memora numărul de elemente al fiecăerei mulţimi Sk , într-un vector w. Soluţiile le vom construi pe rând în vectorul v




Niciun comentariu:

Trimiteți un comentariu