Metoda desparte si stapineste
-
Upload
anon987349628 -
Category
Documents
-
view
250 -
download
11
description
Transcript of Metoda desparte si stapineste
Metoda desparte si stapineste
Cuprins
• Definitia • Descompunerea multimii in submultimi• Schema generala• Taierea unei placi de arie maxima• Complexitatea temporala
Metoda desparte si stapineste (divide et impera)este o metoda generala de elaborare a algoritmilor care presupune:
Impartirea repetata a unei probleme de dimensiuni mari in 2 si mai multe subprobleme de acelasi tip,dar de dimensiuni mai mici.
Rezolvarea subproblemelor in mod direct,daca dimensiunea lor permite aceasta,sau impartirea lor in alte subprobleme de dimensiuni mai mici.
Combinarea solutiilor subproblemelor rezolvate pentru pentru a obtine solutia problemei initiale.
In limbaj matematic ,admitem ca la un anumit pas al algoritmului se da o multime de coordonate)
A=(ai,ai+1,...,aj)Si ca trebuie efectuata o prelucrare oarecare asupra elementelor sale.Pentru a imparti promlema curenta in 2 subprobleme de aproximativ aceleasi dimensiuni,stabilim
m=(j-i)div2si impartim multimea A in 2 submultimi,care vor fi prelucrate separat:
A1=(ai,ai+1,...,ai+m); A2=(ai+m+1,ai+m+2,...,aj);
Descompunerea multimii A in submultimi A =(a1,a2,a3,a4,a5,a6,a7);
A1=(a1,a2,a3,a4,); A2=(a5,a6,a7);
A1-1=(a1,a2,); A1-2=(,a3,a4,); A2-1=(a5,a6); A2-2=(a7);
procedure DesparteSiStapineste(i, j : integer; var x : tip);var m : integer; x1, x2 : tip;begin if SolutieDirecta(i, j) then Prelucrare(i, j, x) else begin m:=(j-i) div 2; DesparteSiStapineste(i, i+m, x1); DesparteSiStapineste(i+m+1, j, x2); Combina(x1, x2, x); end;end;
Schema generala
b
yi
H
xi L
i
1
23
n
Placa initiala
Taierea pe verticala
Taierea pe orizontala
Complexitatea temporalaa algoritmilor depinde de numarul de subprobleme k in care este divizata problema curenta si de complexitatea algoritmilor destinati rezolvarii directe a subproblemelor respective.Programele elaborate in baza metodei date sint simple,iar timpul de executie este relativ scurt.