Sunteți pe pagina 1din 31

9-12-2019

Logică și
structuri
discrete
Curs pentru anul I
Automatică și Informatică Aplicată

Dr.ing. Antonius N. STANCIU

Demonstrații informale
• Definiție
• Axiome și postulate
o AXIÓMĂ, axiome, s. f. 1. Adevăr fundamental admis fără demonstrație, fiind
evident prin el însuși. 2. Enunț prim, nedemonstrat, din care se deduc, pe baza
unor reguli, alte enunțuri. [Pr.: -xi-o-] – Din fr. axiome.
Sursa: DEX '98 (1998)
o POSTULÁT, postulate, s. n. Adevăr fundamental care apare ca evident și care
nu are nevoie să fie demonstrat; principiu de bază, normă. ♦ Enunț logic
considerat primul într-un sistem deductiv. – Din fr. postulat, lat. postulatum.
Sursa: DEX '98 (1998)

• Operatori logici elementari


o Negația
o Conjuncția
o Disjuncția

Negația
• Schimbă valoarea de adevăr a unei afirmații

S Non S
F (0) A (1)
A (1) F (0)

• S = „Pământul este o stea”


• Non S = „Pământul nu este o stea” (mai degrabă
decât „ne-Pământul este o stea”

1
9-12-2019

Conjuncția și disjuncția
A B A∙B A+B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1

SAU exclusiv

A B A●B

0 0 0
0 1 1
1 0 1
1 1 0

Afirmații condiționale
• Dacă A, atunci B
A B A => B
0 0 1
0 1 1
1 0 0
1 1 1

• Nu există conexiune logică între ipoteză și concluzie

o Dacă Luna e din cașcaval, atunci 1 = 2.


o Dacă 1=1, atunci Luna e din cașcaval.

Afirmații (propoziții)
condiționale
• Când ipoteza e falsă avem o afirmație condițională vag
adevărată
o Dacă 1=2, atunci 39=12
o Toate telefoanele din încăpere sunt închise
o Toate telefoanele din încăpere sunt deschise
o Toate telefoanele din încăpere sunt închise și (nu „sau”) deschise este vag
adevărată atunci când mulțimea telefoanelor din încăpere este vidă

• Când concluzia este adevărată avem o afirmație


condițională trivial adevărată
o Dacă 1 = 2, atunci 2 + 2 = 4

• Conversa afirmației condiționale nu are aceeași tabelă


de adevăr cu aceasta din urmă

2
9-12-2019

Propoziții echivalente
S T
non (A sau B) (non A) și (non B)
non (A și B) (non A) sau (non B)
A și (B sau C) (A și B) sau (A și C)
A sau (B și C) (A sau B) și (A sau C)
dacă A, atunci B dacă non B, atunci non A
dacă A, atunci B (non A) sau B
non (dacă A, atunci B) A și (non B)

Despre numere și
divizibilitate
• Numere întregi:
o Impare
• …, -5, -3, -1, 1, 3, 5, …

o Pare:
• …, -4, -2, 0, 2, 4, …

• Numărul d divide numărul n (d|n), dacă d≠0 și


există k, astfel încât n = dk.

Proprietățile divizibilității
• Dacă d|a și a|b, atunci d|b

• Dacă d|a și d|b, atunci d|(ax + by) pentru orice


întregi x și y

• Numărul p > 1este numit prim, dacă singurii săi


divizori pozitivi sunt 1 și p

• Numerele prime sunt foarte importante în știința


calculatoarelor

3
9-12-2019

Tehnici de demonstrare
Demonstrații exhaustive

• Dacă n este întreg și 2 ≤ n ≤ 7, atunci n2 + 2 nu este


divizibil cu 4

o Demonstrație: 6, 11, 18, 27, 38, 51

• Demonstrațiile exhaustive nu sunt posibile pe


mulțimi infinite (cel puțin, nu în universul
computerelor actuale)

• Uneori, un contraexemplu ajută

10

Tehnici de demonstrare
Demonstrații condiționale

• Dacă A, atunci B
o Se bazează pe prezumția că ipoteza este adevărată
o Poate fi efectuată în mai mulți pași, până la atingerea concluziei B
• Dacă A, atunci M
• Dacă M, atunci N
• Dacă N, atunci P
• Dacă P, atunci B
• Exemplul 1)
o Dacă numerele x și y sunt impare, suma lor va fi pară
• x + y = (2k + 1) + (2m + 1) = 2k + 2m + 2 = 2(k + m + 1)
• Exemplul 2)
o Dacă d|a și a|b, atunci d|b
• b = an = (dm)n = d(mn)

11

Tehnici de demonstrare
Demonstrații prin contradicție (refutare)

• Contradicția este o afirmație falsă


• Se pleacă de la a presupune afirmația de
demonstrat ca fiind adevărată și se deduc noi
afirmații din ea, până când se ajunge la o
contradicție
• Exemplu
o Dacă n este întreg, atunci n2 + 2 nu e divizibil cu 4
• Presupunem că afirmația e falsă. Atunci 4 | (n2 + 2) pentru un întreg n
• Rezultă n2 + 2 = 4k, pentru k întreg. Dacă n este par, atunci n = 2m
• Înlocuind n avem 4k = n2 + 2 = (2m)2 + 2 = 4m2 + 2, adică 2k = 2m2 + 1
• Rezultă că n nu poate fi par. Dacă e impar, atunci
• 4k = n2 + 2 = (2m + 1)2 + 2 = 4m2 + 4m + 3, echivalent cu 4k – 4m2 – 4m = 3
• Ori 3 nu este divizibil cu 4!

12

4
9-12-2019

Tehnici de demonstrare
Demonstrații prin echivalență

• „A dacă și numai dacă B” este echivalent cu „Dacă A,


atunci B și dacă B, atunci A”

• Exemplu
o x este impar dacă și numai dacă (iff) x2 + 2x + 1 este par
• X e impar iff x = 2k + 1 pentru un întreg k (definition)
• iff x + 1 = 2k + 2 pentru un întreg k (algebra)
• iff x + 1 = 2m pentru un întreg m (algebra)
• iff x + 1 este par (definition)
• iff (x + 1)2 este par (Exercițiul 8a din carte)
• iff x2+ 2x + 1 par (algebra) QED

• Este de preferat alegerea unei variante constructive

13

Mulțimi
• Definiție:
o O colecție de lucruri (adesea numite elemente, obiecte sau membri)

• Sinonime:
o Mulțime, colecție, grămadă, grup, clasă…

• Apartenența elementelor la o mulțime:


o x∈S
o x, y ∈ S

• Notații
o Simbolice: S
o Explicite: { a, b, c, d }
o Analitice: { x | P }

14

Descrierea mulțimilor
• S = {x, y, z}

• A = {x, {x, y}}


o x∈A
o {x, y} ∈ A

• {H, E, L, L, O}

• {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}


o {1, 2, … , 12}
o {1, 2, 3, … ,11, 12}

15

5
9-12-2019

Descrierea mulțimilor
• Singleton
o SINGLETÓN s.n. Singura carte de un anumit semn pe care o are un jucător
la bridge. [< engl., fr. singleton]
o { a }, { 123 } etc.

• Mulțimea vidă
o {}
o ∅

• Exemple
o { { } }, { ∅ }

16

Despre mulțimi
• Egalitatea mulțimilor:
o A=B
o {u, g, h} = {h, u, g}
o A≠B
o {a, b, c} ≠ {a, b}
o {a} ≠ ∅

• Caracteristici ale mulțimilor:


o Nu există redundanță
o Nu există ordonare

• Mulțimi:
o Finite
o Infinite

17

Despre mulțimi
• Numere:
o Naturale:
• ℕ = {0, 1, 2, 3, …}
• ℕ * = {1, 2, 3, …}
o Întregi:
• ℤ = {… , –3, –2, –1, 0, 1, 2, 3, …}

• Reprezentarea analitică (prin proprietăți)


o Numere întregi impare
• A = { x | x = 2k + 1, k ∈ ℤ }
o Numere raționale:
• ℚ
o Numere reale:
• ℝ

18

6
9-12-2019

Submulțimi
• Dacă toate elementele din A sunt regăsite și în B,
atunci A este o submulțime a lui B
o A⊂B

• Exemple:
o {a, b} ⊂ {a, b, c}
o {0, 1, 2} ⊂ ℕ
o ℕ⊂ℤ
o A⊂A
o ∅⊂A
o ℕ⊂ℤ⊂ℚ⊂ℝ

19

Submulțimi
• Dacă A nu este o submulțime a lui B, atunci putem
scrie A ⊄ B
o {a, b} ⊄ {a, c}
o {0, –1, –2} ⊄ ℕ

• Conceptul de submulțime diferă de cel de


apartenență
o Dacă A = {a, b, c}, atunci:
• {a} ⊂ A
• a∈A
• {a} ∉ A
• a⊄A
o Dacă A = {a, {b}}, atunci:
• a ∈ A, {b} ∈ A, {a} ⊂ A și {{b}} ⊂ A. În schimb,
• b ∉ A și nici {b} ⊄ A

20

Submulțimi
• Diagrama Venn (de fapt, Euler) a submulțimii A
incluse în mulțimea B

B
A x

• John VENN (1834–1923)


• Leonhard EULER (1707–1783)

21

7
9-12-2019

Puterea unei mulțimi


• Funcția returnează toate submulțimile mulțimii date
ca argument

• Exemplu:

o Se dă mulțimea S = {a, b, c}. Atunci:

o power(S) = {∅ , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, S}

22

Egalitate între mulțimi


• A = B înseamnă A ⊂ B și B ⊂ A

Afirmație de demonstrat Strategie de demonstrație


A⊂B Pentru orice x ∈ A, se arată
că x ∈ B
A⊄B Se găsește un element x ∈ A,
astfel încât x ∉ B
A=B Se arată că A ⊂ B și că B ⊂ A

23

Demonstrații de
incluziune
• Se dau:
o A = {x | x prim și 42 ≤ x ≤ 51}
o B = {x | x = 4k + 3 și k ∈ ℕ}

• Se cere să se demonstreze că:


o A⊂B

• Demonstrație:
o Luăm x din A. Atunci fie x = 43, fie x = 47
o Se observă că 43 = 4(10) + 3 și că 47 = 4(11) + 3.
o În ambele cazuri x ∈ B
o Prin urmare, A ⊂ B (Q.E.D.)

24

8
9-12-2019

Demonstrații de
neincluziune
• Se dau:
o A = {x | 3k + 1 și k ∈ ℕ}
o B = {x | 4k + 1 și k ∈ ℕ}

• Se cere să se demonstreze că:


o A⊄B
o B⊄A

• Demonstrație:
o Se observă că A = {1, 4, 7, … } și B = {1, 5, 9, … }
o Deoarece 4 ∈ A și 4 ∉ B, rezultă că A ⊄ B
o Deoarece 5 ∈ B and 5 ∉ A, rezultă că B ⊄ A (Q.E.D.)

25

Demonstrații de egalitate
• Se dau:
o A = {x | x prim și 12 ≤ x ≤ 18} ,
o B = {x | x = 4k + 1 și k ∈ {3, 4}}

• Se cere să se demonstreze că:


o A=B

• Demonstrație:
o Dacă x ∈ A, atunci fie x = 13, fie x = 17
o Prin urmare, se verifică 13 = 4(3) + 1 și 17 = 4(4) + 1, rezultând că x ∈ B și, pe
cale de consecință că A ⊂ B (†)
o Dacă x ∈ B, atunci fie x = 4(3) + 1, fie x = 4(4) + 1, rezultând că x ∈ A și, pe
cale de consecință că B ⊂ A (‡)
o Din (†) și din (‡) rezultă că A = B (Q.E.D.)

26

Operații cu mulțimi

• Reuniunea

• Intersecția

• Complementul universal

27

9
9-12-2019

Reuniunea
• A ∪ B = {x | x ∈ A sau x ∈ B}

• Dacă A = {a, b, c} și B = {c, d}, atunci A ∪ B = {a, b, c, d}

28

Proprietățile reuniunii
• A∪∅=A

• A ∪ B = B ∪ A (∪ este comutativă)

• A ∪ (B ∪ C) = (A ∪ B) ∪ C (∪ este asociativă)

• A∪A=A

• A ⊂ B dacă și numai dacă A ∪ B = B

29

Condiția de submulțime
• Exemplu
o Să se demonstreze că A ⊂ B dacă și numai dacă A ∪ B = B

• Demonstrație
o Întâi se demonstrează că A ⊂ B implică A ∪ B = B
• Dacă e adevărat și avem x ∈ A ∪ B, rezultă că x ∈ A sau x ∈ B
• Fiindcă am presupus A ⊂ B, avem x ∈ B, rezultând A ∪ B ⊂ B
• Pentru că întotdeauna avem B ⊂ A ∪ B, rezultă că A ∪ B = B (Q.E.D. 1)

o Apoi se demonstrează că A ∪ B = B implică A ⊂ B


• Dacă e adevărat și avem x ∈ A, atunci x ∈ A ∪ B
• Fiindcă am presupus A ∪ B = B, avem x ∈ B, rezultând A ⊂ B (Q.E.D. 2)

o Din (Q.E.D. 1) și din (Q.E.D. 2) rezultă că A ⊂ B dacă și numai dacă A ∪ B = B


(Q.E.D.)

30

10
9-12-2019

Notații ale reuniunilor


• Dacă avem reuniunea a n mulțimi A1, … , An, putem
nota astfel:
𝑛

𝐴𝑖 = 𝐴1 ∪ 𝐴2 ∪ … ∪ 𝐴𝑛
𝑖=1

• Dacă avem reuniunea unui număr infinit de mulțimi


A1, A2, … , An, … , putem nota astfel:

𝐴𝑖 = 𝐴1 ∪ 𝐴2 ∪ … ∪ 𝐴𝑛 ∪ …
𝑖=1

• Dacă I este o mulțime de indecși, iar Ai este o


mulțime pentru fiecare i ∈ I, atunci reuniunea
acestor mulțimi se poate nota astfel:
𝐴𝑖
𝑖∈1

31

Intersecția
• A ∩ B = {x | x ∈ A și x ∈ B}

• Dacă A = {a, b, c} și B = {c, d}, atunci A ∩ B = {c}

• Dacă A ∩ B = ∅, atunci A și B se numesc disjuncte

32

Proprietățile intersecției
• A∩∅=∅

• A ∩ B = B ∩ A (∩ este comutativă)

• A ∩ (B ∩ C) = (A ∩ B) ∩ C (∩ este asociativă)

• A∩A=A

• A ⊂ B dacă și numai dacă A ∩ B = A

33

11
9-12-2019

Notații ale intersecțiilor


• Dacă avem intersecția a n mulțimi A1, … , An,
putem nota astfel: 𝑛

𝐴𝑖 = 𝐴1 ∩ 𝐴2 ∩ … ∩ 𝐴𝑛
𝑖=1

• Dacă avem intersecția unui număr infinit de mulțimi


A1, A2, … , An, … , putem nota astfel:

𝐴𝑖 = 𝐴1 ∩ 𝐴2 ∩ … ∩ 𝐴𝑛 ∩ …
𝑖=1

• Dacă I este o mulțime de indecși, iar Ai este o


mulțime pentru fiecare i ∈ I, atunci intersecția
acestor mulțimi se poate nota astfel:
𝐴𝑖
𝑖∈𝐼

34

Diferența
• Dacă A și B sunt mulțimi, atunci diferența A – B este
mulțimea tuturor elementelor din A care nu se
regăsesc în B
o A – B se mai numește și complementul relativ al lui B față de A

• A – B = {x | x ∈ A și x ∉ B}

35

Diferența simetrică
• A ⊕ B = {x | fie x ∈ A, fie x ∈ B (nu amândurora!)}

• A ⊕ B = (A ∪ B) – (A ∩ B)

• Puteți demonstra că (A ⊕ B) ⊕ C = A ⊕ (B ⊕ C)?


o Puteți încerca, printre altele, trasarea câte unei diagrame Venn pentru
fiecare membru al ecuației de mai sus

36

12
9-12-2019

Complementul universal
• Dacă discuția se referă întotdeauna la mulțimi care
sunt submulțimi ale unei anumite mulțimi U, atunci
diferența U – A se va numi complement universal al
lui A și se va nota cu A′

• Exemplu: (A ∪ B)′

37

Combinații ale operațiilor


cu mulțimi
• A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)
o ∩ e distributivă față de ∪

• A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)
o ∪ e distributivă față de ∩

• A ∩ (A ∪ B) =A
o legea absorbției

• A ∪ (A ∩ B) =A
o legea absorbției

38

Combinații ale operațiilor


cu mulțimi
• Exemplu:
o să se demonstreze că A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)

• Demonstrație: x ∈ A ∩ (B ∪ C)
o dacă și numai dacă x ∈ A și x ∈ (B ∪ C)
o dacă și numai dacă x ∈ A, și fie x ∈ B , fie x ∈ C
o dacă și numai dacă fie (x ∈ A și x ∈ B), fie (x ∈ A și x ∈ C)
o dacă și numai dacă x ∈ (A ∩ B) ∪ (A ∩ C) (Q.E.D.)

39

13
9-12-2019

Proprietățile
complementului
• (A′)′ = A
• ∅′ = U și U′ = ∅
• A ∩ A′ = ∅ și A ∪ A′ = U
• A ⊂ B dacă și numai dacă B′ ⊂ A′
• (A ∪ B)′ = A′ ∩ B′
o Legea lui de Morgan
• (A ∩ B)′ = A′ ∪ B′
o Legea lui de Morgan
• A ∩ (A′ ∪ B) = A ∩ B
o Legea absorbției
• A ∪ (A′ ∩ B) = A ∪ B
o Legea absorbției

40

Numărarea elementelor
mulțimilor finite

• Dimensiunea unei mulțimi este dată de


cardinalitatea sa, notată cu |S|

• De exemplu, dacă S = {a, b, c},


o atunci |S| = |{a, b, c}| = 3

• Regula reuniunii:
o |A ∪ B| = |A| + |B| – |A ∩ B|

41

Numărarea elementelor
mulțimilor finite
• Regula reuniunii se poate extinde pe mai multe
mulțimi:

o |A ∪ B ∪ C| = |A ∪ (B ∪ C)|

o = |A| + |B ∪ C| − |A ∩ (B ∪ C)|

o = |A| + |B| + |C| − |B ∩ C| − |A ∩ (B ∪ C)|

o = |A| + |B| + |C| − |B ∩ C| − |(A ∩ B) ∪ (A ∩ C)|

o = |A| + |B| + |C| − |B ∩ C| − |A ∩ B| − |A ∩ C| + |A ∩ B ∩ C|

42

14
9-12-2019

Numărarea elementelor
mulțimilor finite
• Regula diferenței: |A – B| = |A| – |A ∩ B|

• Regula diferenței se poate afla ușor cu ajutorul


diagramelor Venn

• Două cazuri speciale sunt, de asemenea, intuitive și


se pot exprima astfel:

o Dacă B ⊂ A, atunci |A − B| = |A| − |B|


o Dacă A ∩ B = ∅, atunci |A − B| = |A|

43

Multimulțimi (bags)
• Multimulțimile sunt colecții de obiecte (la fel ca
mulțimile) care permit repetiții ale elementelor sale

• Caracteristicile principale sunt:


o Elementele componente pot apărea în mod repetat
o Nu există ordonare în multimulțimi

• Se pot defini:
o Egalitatea ([h, u, g, h] = [h, h, g,u], dar [h, u, g, h] ≠ [h, u, g])
o Incluziunea ([a, b] ⊂ [a, b, a] , dar [a, b, a] ⊄ [a, b]

44

Multimulțimi (bags)
• Se pot defini:
o Suma multimulțimilor, notată cu A + B (dacă x apare de m ori în A și de n
ori în B, atunci x apare de m + n ori în A + B)
• De exemplu: [2, 2, 3] + [2, 3, 3, 4] = [2, 2, 2, 3, 3, 3, 4]

o Reuniunea și intersecția (fie A și B multimulțimi și fie m și n numărul de


apariții ale elementului x în A și, respectiv, B. Se va lua maximumul dintre m
și n apariții ale lui x în A ∪ B. Se va lua minimumul dintre m și n apariții ale
lui x în A ∩ B.
• De exemplu: [2, 2, 3] ∪ [2, 3, 3, 4] = [2, 2, 3, 3, 4] și
• [2, 2, 3] ∩ [2, 3, 3, 4] = [2, 3]

• De studiat acasă:
o Teoria mulțimilor a lui Cantor
o Paradoxul lui Russell

45

15
9-12-2019

Structuri ordonate
• Tupli
o Sunt colecții de obiecte, numite elemente, care au o anumită ordine
o Dacă un tuplu are n elemente, atunci el se va numi n-tuplu
o Cazurile particulare 2-tuplu și 3-tuplu se numesc dublu și, respectiv, triplu
o Doi n-tupli, (x1, … , xn) și (y1, … , yn), sunt egali dacă xi = yi pentru i între 1 și n

• Caracteristici importante ale tuplilor


o Elementele se pot repeta
o Elementele au o ordine

46

Produsul cartezian al
mulțimilor
• Dacă A și B sunt mulțimi, atunci produsul lor
cartezian, notat cu A x B, este mulțimea tuturor
dublilor (a, b), știind că a ∈ A și b ∈ B

o 𝐴 x 𝐵 = (𝑎, 𝑏) 𝑎 ∈ 𝐴 ș𝑖 𝑏 ∈ 𝐵

• Dacă una dintre mulțimi este vidă, atunci și


produsul cartezian al acesteia cu altă mulțime este
tot o mulțime vidă

47

Produsul cartezian al
mulțimilor
• Produsul cartezian se poate extinde pe oricâte
mulțimi

• Dacă se face produsul cartezian al aceleiași


mulțimi cu ea însăși, de n ori, putem scrie An

• De reținut că A0 = {( )} și A1 = {(a)}
o De observat că A0 ≠ { } și A1 ≠ A
o De scris, ca exemplu, A0, A1, A2 și A3, dacă A = {a, b, c}

48

16
9-12-2019

Produsul cartezian al
mulțimilor
• Lucrând cu tupli, este necesar accesul aleatoriu la
oricare dintre elementele sale

• De exemplu, dacă t ∈ A x B x C, atunci putem


reprezenta t în mai multe moduri:

49

Vectori, matrice, articole


• În știința calculatoarelor, o matrice unidimensională
de n elemente este un n-tuplu din produsul
cartezian An
o Putem privi produsul cartezian An ca fiind mulțimea tuturor matricelor
unidimensionale de n elemente pe mulțimea A
o Dacă x = (x1, … , xn), atunci elementul xi este notat, în calculatoare, de
obicei, x[i]

50

Vectori, matrice, articole


• O matrice bidimensională, numită adesea doar
matrice, poate fi percepută ca o tabelă de
obiecte indexate pe rânduri și pe coloane

• Dacă avem o matrice x de m rânduri și n coloane,


spunem că x este o matrice de m pe n elemente
o De exemplu, dacă x este o matrice de 3 pe 4, atunci poate fi
reprezentată astfel:

51

17
9-12-2019

Vectori, matrice, articole


• Matricea x poate fi reprezentată și ca un triplu cu
elemente cvadruple:

• În programare, componenta xij este notată, de obicei


x[i,j]
• Putem observa că produsul cartezian (A4)3 este
mulțimea tuturor matricelor bidimensionale din A cu 3
rânduri și 4 coloane
• Noțiunea se poate extinde: de exemplu, ((A5)7)4 este
mulțimea tuturor matricelor cubice pe A compuse din
cvadrupli care au ca elemente septupli compuși din
cvintupli de elemente din A
o Tuplii sunt:
• Ușor de înțeles
• Blocuri de bază pentru reprezentarea informației în sisteme de calcul
• Ușor de implementat în calculatoare (ca temă, a se vedea exemplul din
carte)

52

Liste
• Sunt succesiuni finite de zero sau mai multe
elemente, care se pot repeta
• Diferența majoră față de tupli constă în modul de
acces:
o Acces direct pentru tupli
o Acces secvențial pentru liste

• Mai precis, în cazul listelor avem acces direct la


doar două elemente:
o Capul listei, adică primul element al său
o Coada listei, adică lista tuturor celorlalte elemente

53

Liste
• Notații uzuale și operații elementare:

• Lista vidă <>


• L= <w, x, y, z> are lungimea 4
• Pentru lista L avem head(L) și tail(L) pentru a extrage
capul și, respectiv, coada listei L
o De exemplu, head(L) = w și tail(L) = <x, y, z>
• Lista vidă nu are cap sau coadă
• Adăugarea unui element se face prin punerea sa în
capul noii liste
o cons(h, L) = <h, w, x, y, z>
o cons(head(L), tail(L)) = L

54

18
9-12-2019

Liste
• Nu există restricții cu privire la felul elementelor din
listă
• De aceea, este o metodă foarte recomandată
pentru reprezentarea informațiilor în computere
• De exemplu:

55

Liste
• Dacă toate elemente unei liste L fac parte dintr-o
anumită mulțime A, atunci se spune că L este o listă
peste A
• De exemplu, dacă L = {a, b, c}, atunci următoarea
listă este peste A:

• Colecția tuturor listelor peste A se va nota lists(A)

56

Reprezentarea listelor în
calculatoare
• Fie L = <b, c, d, e>

57

19
9-12-2019

Șiruri și limbaje
• Șirul este o succesiune ordonată și finită a unor
elemente amplasate prin juxtapunere
• Elementele sunt luate dintr-o mulțime numită alfabet
• Dacă A este un alfabet, atunci șirurile compuse cu
elemente din A se numesc șiruri peste A
o Exemplu de șiruri peste A = {a, b, c}: a, ba, bba, aacabb
• Șirul cu zero elemente se numește vid și este notat
cu majuscula grecească lambda Λ
• Numărul de elemente dintr-un șir se numește
lungimea șirului
o De exemplu, |Λ| = 0 și |aacabb| = 6

58

Concatenarea șirurilor
• Se face prin simpla juxtapunere
o De exemplu, dacă s = aab și t = ba sunt două șiruri peste alfabetul {a, b},
atunci concatenarea st = aabba

• Șirul vid este element neutru față de concatenare


o sΛ = Λs = s

• Există o asociere puternică între șiruri și liste la


reprezentarea în computere, izvorâtă din
necesitatea de a descompune un șir în elementele
sale, care pot fi apoi reprezentate într-o listă
o De exemplu, șirul aacabb poate fi reprezentat prin lista <a, a, c, a, b, b>

59

Limbaje
• Sunt mulțimi de șiruri

• Dacă A este un alfabet, atunci un limbaj este o


mulțime de șiruri peste A

• Mulțimea tuturor șirurilor peste A se notează A*

• Prin urmare, orice limbaj peste A este o submulțime


a lui A*

60

20
9-12-2019

Limbaje
• Dacă A este un alfabet, atunci mulțimile ∅ , {Λ }, A,
și A* sunt patru exemple de limbaje peste A

• De exemplu, dacă A = {a}:


o ∅ , {Λ}, {a}, și {Λ , a, aa, aaa, … } sunt patru limbaje peste A

• Pentru orice număr natural n, concatenarea șirului s


cu el însuși de n ori se notează sn

• D exemplu:
o s0 = Λ , s1 = s, s2 = ss, și s3 = sss

61

Numerale
• Sunt reprezentări scrise ale unor numere

• Din punct de vedere al șirurilor, ele sunt șiruri nevide care


exprimă un număr

• Numeralele romane sunt șiruri, care exprimă întregi


pozitivi, peste alfabetul {I, V, X, L, C, D, M}

• Numeralele zecimale exprimă numerele naturale


folosind alfabetul {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

• Numeralele binare au la bază alfabetul {0, 1}


o De exemplu, MDCLXVII = 1667 = 11010000011

62

Produsul limbajelor
• Fiind mulțimi, limbajele se pot combina prin operațiile
uzuale (reuniune, intersecție, diferență, complement)

• Două limbaje, L și M, se pot combina și prin


concatenarea tuturor șirurilor din L cu cele din M

• Această combinare este un nou limbaj, numit produsul


dintre L și M

• De exemplu, dacă L = {ab, ac} și M = {a, bc, abc},


atunci LM = {aba, abbc, ababc, aca, acbc, acabc}

63

21
9-12-2019

Proprietăți ale produsului


dintre limbaje
• Elemente neutre:

• Asociativitate:

• Necomutativitate:

• Pentru un număr natural n, se poate face produsul


unui limbaj L cu el însuși de n ori:

64

Închiderea unui limbaj


• Dacă L este un limbaj, atunci închiderea sa se
notează cu L* și reprezintă mulțimea tuturor
concatenărilor de șiruri din L

• x ∈ L* dacă și numai dacă x ∈ Ln. Altfel spus, x ∈ L*


dacă și numai dacă fie x = Λ, fie x = l1l2…ln

• Închiderea pozitivă a unui limbaj L, notată cu L+,


este:

65

Închiderea unui limbaj


• Rezultă din definiție că L* = L+ ∪ {Λ}, dar nu e
neapărat adevărat că L+ = L* – {Λ}

• De exemplu, dacă L = {Λ , a}, atunci L+ = L*

• Proprietăți ale închiderii:

66

22
9-12-2019

Grafuri
• Mulțimi de obiecte, dintre care unele pot prezenta
conexiuni

• Obiectele se numesc vârfuri sau noduri

• Conexiunile se numesc muchii

• Se pot reprezenta grafic, cu ușurință, ceea ce


explică oarecum denumirea

67

Reprezentarea grafurilor

68

Colorarea grafurilor
• Un graf este n-colorabil dacă vârfurilor sale li se pot
atribui n culori, astfel încât să nu existe culori
adiacente
• Numărul minim de culori este numărul cromatic al
grafului

69

23
9-12-2019

Colorarea grafurilor
• Un graf este planar dacă poate fi reprezentat în
plan, cu toate conexiunile sale, fără a apărea
intersecții între muchii

• Un graf complet (toate vârfurile sunt conectate cu


toate celelalte) cu patru vârfuri este planar, pe
când unul cu cinci vârfuri nu este planar

• Orice graf planar este 4-colorabil (Keneth APPELși


Wolfgang HAKEN, în 1976)

70

Terminologie
• Graful direcțional are muchii orientate
Sursă

Drenă

• Gradul unui vârf este dat de numărul muchiilor care


converg către el; se adaugă 2 la acest număr
pentru fiecare muchie ciclică (buclă)

• Pentru grafuri orientate avem in-grade și ex-grade

• Muchia orientată are o sursă și o drenă

71

Reprezentarea
computațională a grafurilor
• Reprezentarea computațională a grafurilor
nedirecționale

• Reprezentarea computațională a grafurilor


direcționale

72

24
9-12-2019

Grafuri ponderate
• Grafurile pot avea informație atașată muchiilor

• Informația atașată de numește pondere

• Reprezentarea analitică (sau computațională) a


unei muchii ponderate se poate face cu tripli

73

Particularități
• Grafuri și relații binare
o Se observă că orice relație R pe o mulțime A se poate reprezenta ca un
graf direcționat de forma G = (A, R), cu nodurile A și muchiile R
o De exemplu, fie A = {1, 2, 3} și R = {(1,2), (1, 3), (2, 3), (3, 3)}

• Subgrafurile sunt porțiuni ale unor grafuri, care


necesită tratare separată
o A graph (V’, E’) este un subgraf al grafului (V, E) dacă V’ ⊂ V și E’ ⊂ E

74

Căi în grafuri
• Deplasare de la un vârf la altul, de-a lungul unor
muchii conexe
• Calea de la x0 la xn este x0, x1, … , xn, unde există o
muchie xi-1, xi pentru 1 ≤ i ≤ n
• Ciclul este o cale care începe și se termină în
același vârf, fără ca muchiile să se repete
• Grafurile fără cicluri se numesc acicilice
• Lungimea unei căi este dată de numărul de muchii
parcurse
• Grafurile sunt conectate dacă există o cale între
oricare pereche de noduri

75

25
9-12-2019

Exemplu
• Calea b, c, d, b, a vizitează b de două ori și are
lungimea 4

• Calea a, b, c, b, d vizitează b de două ori, folosește


muchia bc de două ori și are lungimea 4

• Calea a, b, c, a este un ciclu cu lungimea 3

• Calea a, b, a are lungimea 2, dar nu este un ciclu

76

O problemă
• A se trasa prima figură fără a se ridica creionul de
pe hârtie și fără a desena o muchie de două ori
• A doua figură demonstrează natura de graf a
problemei

77

Altă problemă
• Este faimoasa problemă a celor șapte poduri din
Königsberg care conectau prin 1800 două insule
ale râului Pregel cu lunca sa
• Orașul trebuia parcurs prin traversarea unui pod
doar o singură dată
• Leonhard EULER (1707–1783) a demonstrat că nu
există o astfel de soluție, găsind condiția generală
pentru existența ei

78

26
9-12-2019

Traversarea grafurilor
• Traversarea unui graf începe dintr-un nod v și
vizitează toate nodurile x la care se poate ajunge
cu ajutorul unei căi

• Un nod deja vizitat nu va mai fi vizitat

• Există doi algoritmi răspândiți:


o Prioritar pe lățime
o Prioritar pe adâncime

79

Algoritmul prioritar pe
lățime
• Se apelează procedura visit(v, k), astfel:

• Pornind din a, avem câteva soluții:

80

Algoritmul prioritar pe
adâncime
• Se apelează recursiv procedura DF(v) astfel:

• Pornind din a, există patru soluții:

81

27
9-12-2019

Arbori
• Sunt reprezentări similare celor din biologie

• Arborii au:
o Rădăcină
o Noduri și frunze (părinți și copii)
o Ramuri

• Arborii pot fi ordonați

• Se pot extrage subarbori

82

Reprezentarea expresiilor
algebrice
• Expresia algebrică x – y poate fi reprezentată cu
ajutorul unui arbore ordonat, având semnul minus în
rădăcină, variabila x în subarborele stâng și
variabila y în subarborele drept

3 – (4 + 8) (4 + 8) – 3

83

Reprezentarea arborilor
• Reprezentarea trebuie să permită reconstrucția

• O metodă este utilizarea listelor

3 – (4 + 8) (4 + 8) – 3

84

28
9-12-2019

Reprezentarea arborilor
• Alt exemplu:

• De observat că T are următorii subarbori:

85

Reprezentarea arborilor în
computere
• Reprezentarea arborelui din lista

86

Arbori binari
• Arborii binari sunt acei arbori ordonați care sunt fie
vizi, fie au proprietatea ca fiecare nod să conțină
doi subarbori (numiți stâng și drept), care să fie, la
rândul lor, arbori binari

87

29
9-12-2019

Reprezentarea arborilor
binari în computere
• Fie arborele

88

Arbori binari de căutare


• Se urmărește minimizarea adâncimii

• Fie lunile FEB, JAN, JUL, NOV, OCT, SEP, ordonate


alfabetic

• Arborele de căutare are adâncimea 2

89

Arbori de acoperire
• Arborele de acoperire al unui graf conectat este un
subgraf care este arbore și conține toate nodurile
grafului inițial

• Un arbore minimal de acoperire al unui graf


conectat și ponderat este acel arbore care are
suma minimă a ponderilor dintre toți arborii de
acoperire posibili

90

30
9-12-2019

Algoritmul lui Prim


(1957)
• Construiește un arbore minimal de acoperire pentru
un graf nedirecțional, conectat și ponderat

• Pornind de la orice nod, algoritmul caută muchia


cu pondere minimă conectată la acesta

• Adaugă muchia la arbore și continuă căutarea de


noi muchii cu pondere minimă, astfel încât unul
dintre noduri să fie în arbore, iar celălalt nu

91

Algoritmul lui Prim


• Variabile:
o Mulțimea nodurilor grafului V
o Mulțimea nodurilor arborelui de acoperire W
o Mulțimea muchiilor arborelui de acoperire S

92

Algoritmul lui Prim


• Construcția unui arbore minimal de acoperire

93

31

S-ar putea să vă placă și