Metoda desparte si stapineste

11
a desparte si stapi

description

devide et imparta

Transcript of Metoda desparte si stapineste

Page 1: Metoda desparte si stapineste

Metoda desparte si stapineste

Page 2: Metoda desparte si stapineste

Cuprins

• Definitia • Descompunerea multimii in submultimi• Schema generala• Taierea unei placi de arie maxima• Complexitatea temporala

Page 3: Metoda desparte si stapineste

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.

Page 4: Metoda desparte si stapineste

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);

Page 5: Metoda desparte si stapineste

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);

Page 6: Metoda desparte si stapineste

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

Page 7: Metoda desparte si stapineste
Page 8: Metoda desparte si stapineste

b

yi

H

xi L

i

1

23

n

Placa initiala

Page 9: Metoda desparte si stapineste

Taierea pe verticala

Page 10: Metoda desparte si stapineste

Taierea pe orizontala

Page 11: Metoda desparte si stapineste

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.