Você está na página 1de 16

Proiectarea algoritmilor: Despre paradigmele de

proiectare
Dorel Lucanu
Faculty of Computer Science
Alexandru Ioan Cuza University, Iasi, Romania
dlucanu@info.uaic.ro

PA 2014/2015

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

1 / 16

Outline

Aspecte generale

Un studiu de caz simplu

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

2 / 16

Aspecte generale

Plan

Aspecte generale

Un studiu de caz simplu

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

3 / 16

Aspecte generale

Necesitatea unui model


Descrierea unui algoritm care rezolva o problema presupune ca etapa intermediara
constructia modelului matematic corespunzator problemei. Necesitatea
constructiei modelului matematic este impusa de urmatoarele motive:
eliminarea ambiguitatilor si inconsistentelor. De multe ori, problema este
descrisa informal (verbal). De aici, anumite aspecte ale problemei pot fi
omise sau formulate ambiguu. Constructia modelului matematic evidentiaza
toate aceste lipsuri si, n acest fel, conduce la eliminarea lor;
utilizarea instrumentelor matematice de investigare. Parcurgerea drumului
de la formularea problemei la gasirea solutiei nu este ntotdeauna simpla sau
predictabila. Instrumentele matematice de investigare ofera un cadru
sistematic si sigur pentru determinarea structurii analitice a solutiei si apoi a
modului de obtinere a acesteia;
diminuarea efortului la scrierea programului. Descrierea solutiei n termenii
modelului matematic usureaza foarte mult munca de definire si apoi de
descriere a algoritmului (programul).
D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

4 / 16

Aspecte generale

O paradigma a paradigmelor de proiectare ale algoritmilor

aspect
analitic
problema

aspect
computional

aspect
conceptual

model
matematic

program

s. f. 1. (la Platon) lumea ideilor, prototip al lumii sensibile n care


PARADIGMA
traim. principiu care distinge legaturile si opozitiile fundamentale ntre cateva
no?iuni dominante cu functie de comanda si control al gandirii. caz exemplar,
model, prototip, situatie ideala. 2. totalitatea formelor flexionare ale unui cuvant.
ansamblu de termeni, apartinnd aceleiasi clase morfosintactice sau semantice,
care se pot substitui unul cu altul. (< fr. paradigme, lat. paradigma, gr.
paradeigma) [sursa: MDN]
D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

5 / 16

Aspecte generale

Modelul matematic
O paradigma de proiectare a algoritmilor se bazeaza pe un anumit tip de model
matematic si pune la dispozitie procedee prin care se poate construi si implementa
(descrie ca program) un model particular corespunzator unei probleme. Descrierea
unui model matematic indexmodel matematic cuprinde urmatoarele trei aspecte:
1

conceptual: presupune identificarea si definirea conceptelor care descriu


componentele din domeniul problemei;

analitic: presupune gasirea tuturor relatiilor ntre concepte care conduc la


gasirea si descrierea solutiei;

computational: presupune evaluarea calitativa a algoritmului ce construieste


solutia.

Cele trei aspecte se reflecta n etapele ce trebuie parcurse n rezolvarea unei


probleme si pe care le-am discutat n capitolul de introducere.

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

6 / 16

Un studiu de caz simplu

Plan

Aspecte generale

Un studiu de caz simplu

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

7 / 16

Un studiu de caz simplu

Un exemplu simplu de model


Determinarea celui mai mare punct fix
Fie A o multime finita si f : A A o functie. Daca X A, atunci
f (X ) = {f (x) | x X }. Un punct fix este o submultime X A cu
proprietatea f (X ) = X .
Date A si f , se pune problema determinarii celui mai mare punct fix, adica
cea mai mare submultime X A cu proprietatile f (X ) = X si pentru orice
Y A, daca f (Y ) = Y atunci Y X .
O schema de algoritm (algoritm abstract) care rezolva problema celui
mare punct fix este:
X = A;
while ( X f(X))
foreach (x X)
if (f(x) 6 X) X = X \ {x};
D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

8 / 16

Un studiu de caz simplu

Corectitudinea algoritmului

Algoritmul se termina dupa prima iteratie while n care foreach nu


modifica X . Deoarece toate iteratiile anterioare descresc |X | si X este
finita, rezulta ca se va termina totdeauna.
Dupa terminarea lui while, avem X f (X ). Se observa ca f (X ) X
este invariant al lui while. (Exercitiu. De verificat.)
Rezulta f (X ) = X , adica X este punct fix.
Mai trebuie aratat ca X este cel mai mare punct fix. Pentru asta este
suficient de verificat ca daca Y este un punct fix al lui f , atunci Y X
este un invariant al lui while. (Exercitiu. De verificat.)

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

9 / 16

Un studiu de caz simplu

Problema permutarii maximale

Se considera o colectivitate formata din n persoane. Fiecare persoana din


colectivitate are un singur preferat n colectivitate. Este posibil ca o
persoana sa se poate prefera pe sine nsasi. Un grup de persoane din
colectivitate se numeste omogen daca fiecare membru al grupului este
preferatul exact al unui singur membru din acel grup. Se pune problema
alegerii unui grup omogen cu numar maxim de persoane.

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

10 / 16

Un studiu de caz simplu

Modelul matematic: aspectul conceptual

Notam cu Col multimea finita reprezentand colectivitatea de persoane.


Fiecare persoana din colectivitate are un singur preferat n colectivitate
poate fi modelat printr-o functie pref : Col Col.
pref (i) = j nseamna ca i prefera pe j.
Proprietatea de omogenitate a unui grup X se defineste prin
pref 1 (X ) X si prin faptul ca pref |X : pref 1 (X ) X este surjectiva,
unde pref 1 (X ) = {i | pref (i) X }.
Problema consta n a determina cea mai mare submultime X a lui A cu
proprietatile pref 1 (X ) X si pref |X este surjectiva.

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

11 / 16

Un studiu de caz simplu

Modelul matematic: aspectul analitic

pref |X : X X surjectiva si X finita implica pref |X : X X este bijectie


(permutare).
Rezulta pref (X ) = X , i.e., X este un punct fix al lui pref .
Deci problema se reduce la deoerminarea celui mai mare punct fix al lui
pref .

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

12 / 16

Un studiu de caz simplu

Modelul matematic: aspectul computational


De la notatia matematica la structuri de date:
Col o modelam prin 1..n, unde n este |Col|;
pref un tablou unidimensional 1..n 7 pref[1], . . . , pref[n]
X prin vectorul (tabloul) caracteristic:
(
1, dac
aj X
x[j] =
0, altfel
cu o mica modificare, tabloul x poate fi utilizat si pentru
reprezentarea functiei pref |X :
(
pref [j], dac
aj X
x[j] =
1,
altfel
multimea pref 1 (X ) este reprezentata de un tablou
prefInvOfX[j] = |{i | pref [i] = j}|
unde j pref
D. Lucanu (FII - UAIC)

(X ) ddaca prefInvOfX[j] > 0;


Despre paradigmele de proiectare

PA 2014/2015

13 / 16

Un studiu de caz simplu

Algoritmul
permMax(pref, n, x) {
for (j = 1; j <= n; ++j)
prefInvOfX[j] = 0;
for (j = 1; j <= n; ++j) {
x[j] = pref[j];
++ prefInvOfX[pref[j]];
}
existaj = true;
while (existaj) do {
existaj = false;
for (j = 1; j <= n; ++j)
if ((x[j]>0) && (prefInvOfX[j]==0)) {//j X pref 1 (j) 6 X
x[j] = -1;
-- prefOfX[pref[j]];
existaj = true;
}
}
}
D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

14 / 16

Un studiu de caz simplu

Analiza algoritmului

corectitudinea rezulta din corectitudinea schemei de calcul al celui


mai mare punct fix si din implementarea corecta a testului
X pref (X ) si a structurii foreach. (Exercitiu. De verificat.)
primele doua bucle for fac n iteratii, fiecare iteratnecesita timpul
O(1);
bucla for din interiorul lui while face n iteratii, fiecare iteratnecesita
timpul O(1);
bucla while face cel mult n iteratii (la fiecare iteratie, exceptand
ultima, se elimina un element din X )
rezulta timpul O(n2 ) pentru cazul cel mai nefavorabil. (Exercitiu. De
precizat cazul cel mai nefavorabil.)

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

15 / 16

Un studiu de caz simplu

Concluzii

modelarea matematica a permis formularea exacta a ceea ce se


doreste sa se calculeze
dupa conceptualizare si analiza, algoritmul a rezultat imediat pentru
ca s-a observat ca se poate aplica paradigma celui mai mare punct fix;
corectitudinea algorimului rezulta din corectitudinea paradigmei.

D. Lucanu (FII - UAIC)

Despre paradigmele de proiectare

PA 2014/2015

16 / 16

Você também pode gostar

  • 2009 Info Intensiv C Variantele 1 100
    2009 Info Intensiv C Variantele 1 100
    Documento300 páginas
    2009 Info Intensiv C Variantele 1 100
    Cosmin Gavrila
    63% (16)
  • Finantare Info3 2015-2016
    Finantare Info3 2015-2016
    Documento9 páginas
    Finantare Info3 2015-2016
    eirdnocotim
    Ainda não há avaliações
  • Aproximare
    Aproximare
    Documento43 páginas
    Aproximare
    eirdnocotim
    Ainda não há avaliações
  • Finantare Info2 2015-2016
    Finantare Info2 2015-2016
    Documento10 páginas
    Finantare Info2 2015-2016
    eirdnocotim
    Ainda não há avaliações
  • Subiecte Baze de Date 2009 (Enunt) (Short)
    Subiecte Baze de Date 2009 (Enunt) (Short)
    Documento11 páginas
    Subiecte Baze de Date 2009 (Enunt) (Short)
    eirdnocotim
    Ainda não há avaliações
  • B-And-Bb
    B-And-Bb
    Documento23 páginas
    B-And-Bb
    eirdnocotim
    Ainda não há avaliações
  • NP Complete
    NP Complete
    Documento56 páginas
    NP Complete
    eirdnocotim
    100% (1)
  • Prog-Din
    Prog-Din
    Documento60 páginas
    Prog-Din
    eirdnocotim
    Ainda não há avaliações
  • Greedy
    Greedy
    Documento53 páginas
    Greedy
    eirdnocotim
    Ainda não há avaliações
  • Prog-Din
    Prog-Din
    Documento60 páginas
    Prog-Din
    eirdnocotim
    Ainda não há avaliações
  • String Matching1
    String Matching1
    Documento64 páginas
    String Matching1
    eirdnocotim
    Ainda não há avaliações
  • String Matching2
    String Matching2
    Documento36 páginas
    String Matching2
    eirdnocotim
    Ainda não há avaliações
  • Compl Medie
    Compl Medie
    Documento44 páginas
    Compl Medie
    eirdnocotim
    Ainda não há avaliações
  • Geom Comp2
    Geom Comp2
    Documento47 páginas
    Geom Comp2
    eirdnocotim
    Ainda não há avaliações
  • Compl Probl
    Compl Probl
    Documento46 páginas
    Compl Probl
    Bianca Elena
    Ainda não há avaliações
  • Compl-Alg
    Compl-Alg
    Documento36 páginas
    Compl-Alg
    eirdnocotim
    Ainda não há avaliações
  • Geom Comp1
    Geom Comp1
    Documento47 páginas
    Geom Comp1
    eirdnocotim
    Ainda não há avaliações