Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite

Proiect
8/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 101 în total
Cuvinte : 14287
Mărime: 1.57MB (arhivat)
Publicat de: Petria Simion
Puncte necesare: 9
UNIVERSITATEA DE VEST DIN TIMIŞOARA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ DEPARTAMENTUL DE INFORMATICĂ

Cuprins

  1. - - Introducere - - 5
  2. - - Prezentare detaliată - -
  3. I. Algoritmi polinomiali de gerenare a submulţimilor discrete finite
  4. I.1. Reprezentarea mulţimilor şi generarea iterativă a elementelor
  5. I.2. Generarea elementelor unui produs cartezian
  6. I.3. Generarea tuturor submulţimilor unei mulţimi
  7. I.4. Generarea combinărilor
  8. I.5. Generarea permutărilor
  9. I.6. Generarea aranjamentelor
  10. I.7. Generarea combinărilor cu repetiţie
  11. I.8. Generarea partiţiilor unui număr natural
  12. I.9. Relaţii binare. Închiderea tranzitivă
  13. I.10. Generarea partiţiilor unei mulţimi finite
  14. - - Prezentarea aplicaţiei - -
  15. 1. Reprezentarea mulţimilor şi generarea iterativa a elementelor
  16. 1.1. Noţiuni teoretice
  17. 1.2. Algoritm de generare
  18. 2. Generarea elementelor unui produs cartezian
  19. 2.1. Noţiuni teoretice
  20. 2.2. Algoritm de generare
  21. 2.3. Analiza algoritmului
  22. 3. Generarea tuturor submulţimilor unei mulţimi
  23. 3.1.1. Noţiuni teoretice
  24. 3.1.2. Algoritm de generare
  25. 3.2.1. Noţiuni teoretice
  26. 3.2.2. Algoritm de generare
  27. 3.3.1. Noţiuni teoretice
  28. 3.3.2.1. Algoritm de generare
  29. 3.3.2.2. Analiza algoritmului
  30. 3.4.1. Noţiuni teoretice
  31. 3.4.2. Algoritm de generare
  32. 4. Generarea aranjamentelor
  33. 4.1.1. Noţiuni teoretice
  34. 4.1.2. Algoritm de generare
  35. 4.2.1. Noţiuni teoretice
  36. 4.2.2. Algoritm de generare
  37. - - Concluzii finale - -
  38. - - Bibliografie - -

Extras din proiect

-Introducere-

Motivul alegerii acestei lucrări este de a înţelege mai bine cum un algoritm matematic de generare poate fi implementat în cadrul unui limbaj de programare.

Algoritmul propriu-zis este înglobat în cadrul unui program întreg ce este format din anumite biblioteci pentru diferite tipuri de proceduri sau funcţii prestabilite, constante sau variabile de date şi numeroase modalităti de prelucrare a datelor de intrare. Acestea pot fi primite de la tastatura sau direct dintr-un anumit fişier.

La final se poate observa soluţia generată în urma rulării respectivului algoritm în compilator, în cazul de faţă acesta fiind Borland C++ 3.1.

Această lucrare este intitulată “Algoritmi polinomiali de generare a submulţimilor discrete finite” şi face parte din “GENERAREA DE SUBMULŢIMI”. Este structurată în zece subcapitole, iar fiecare dintre acestea se axează pe o anumită modalitate de generare a elementelor unei mulţimi. Pentru reprezentarea unei mulţimi se foloseşte de obicei un vector cu n componente în care se introduc elementele acesteia.

Submulţimile generate vor fi de următoarele două tipuri:

- submulţimi în care este importantă ordinea în care apar elementele;

- submulţimi în care nu contează ordinea în care apar elementele.

Toate generările ce sunt prezentate în această lucrare au un caracter iterativ, fiecare element fiind dedus din anteriorul său

La generarea elementelor produsului cartezian din cadrul aplicaţiei elementele vor fi generate succesiv într-un vector V cu m componente.

În următorul subcapitol sunt prezentate 4 metode de generare a tuturor submulţimilor unei mulţimi cu n elemente.

În cadrul generării combinărilor se va studia problema generării tuturor celor submulţimi ale lui A, cu proprietatea că oricare două submulţimi diferă prin natura elementelor.

Subcapitolul 5 prezintă mai multe metode de a genera cele n! permutări de grad n. Orice permutare de grad n se reprezintă printr-un vector p cu n componente.

La generarea aranjamentelor se vor descrie două metode de generare a tuturor grupărilor de m elemente distincte din mulţimea [n], două grupări diferind fie prin natura, fie prin ordinea elementelor.

Generarea combinărilor cu repetiţie conţine trei metode de generare a m-combinărilor cu repetiţie.

În subcapitolul următor se prezintă determinarea tuturor modalităţilor de scriere a unui numar n sub forma :

n = + + +

unde numerele naturale nenule , , se numesc părţi ale lui n.

La final se generează toate partiţiile unei mulţimi, unde o partiţie reprezintă o descompunere a mulţimii de forma :

A = ∪ ∪ ∪

unde cele k submulţimi , , (numite clase) sunt nevide şi două câte două disjuncte.

Aplicaţia propriu-zisă este compusă din două programe rulate în Borland C++.

Prima problemă generează elementele unui produs cartezian. Elementele produsului cartezian vor fi generate succesiv într-un vector V cu m componente.

În cadrul celui de-al doilea program se implementează un algoritm de generare a tuturor grupărilor de m elemente distincte din mulţimea [n], două grupări diferind fie prin natura lor, fie prin ordinea elementelor. Astfel se generează aranjamente de n elemente luate câte m, cu repetiţie.

ALGORITMI POLINOMIALI DE GENERARE A SUBMULŢIMILOR DISCRETE FINITE

I.1. Reprezentarea mulţimilor şi generarea iterativă a elementelor

Fie A = { , , } o mulţime oarecare cu n elemente. Pentru reprezentarea ei se foloseşte de obicei un vector cu n componente în care se introduc elementele mulţimii. Este important de notat că o astfel de asociere mulţime → vector stabileşte implicit o ordine a elementelor mulţimii, corespunzătoare ordinii în care apar elementele în vector.

Fie B o submulţime a lui A. Există mai multe modalitaţi de reprezentare a submulţimilor, cele mai folosite fiind următoarele:

(i) - printr-un vector cu n componente, unde elementele submulţimii sunt plasate la începutul vectorului, precizându-se în plus numărul lor sau introducând pe restul poziţiilor din vector o valoare care nu aparţine mulţimii A = [n] = {1,2, ,n}.

(i’) - printr-un vector cu n componente, construit analog cu cel din reprezentarea (i) cu deosebirea că elementele submulţimii sunt plasate la sfarşitul vectorului.

(ii) - prin vectorul caracteristic al submulţimii, adică acel vector c {0,1 definit de:

c(i) = (1)

În această lucrare vom presupune totdeauna că A = [n] = {1, ,n} deoarece între o orice mulţime A={ , , } şi [n] există o bijecţie, de exemplu cea dată de corespondenţa

Submulţimile care vor fi generate în această lucrare vor fi de urmatoarele două tipuri:

- submulţimi în care este importantă ordinea în care apar elementele.

- submulţimi în care nu conteaza ordinea în care apar elementele.

Pentru submulţimile de al doilea tip, dacă folosim pentru ele una dintre reprezentările (i) sau (i’), vom conveni că ordinea în care apar elementele să fie cea crescătoare; în acest mod vom evita generarea de mai multe ori a aceleaşi submulţimi.

Toate generările ce vor fi prezentate vor avea un caracter iterativ, fiecare element fiind dedus din anteriorul său. Algoritmul general de construire a unui nou element apare în procedura GEN. El foloseşte pe langă un vector V de dimensiune n ( în care vor fi generate succesiv submulţimile ) şi un indicator de generare IG. La apelarea procedurii, IG are fie valoarea 0 ( dacă este vorba de prima apelare, deci trebuie făcuta o iniţializare ), fie valoarea 1 ( dacă trebuie construit succesorul vectorului V ). La terminarea fiecărei execuţii a procedurii, IG are fie valoarea 1 ( dacă a fost generat un nou vector V ), fie valoarea 0 ( dacă au fost generaţi toţi vectorii V ceruţi de problema concretă ).

Preview document

Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 1
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 2
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 3
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 4
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 5
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 6
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 7
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 8
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 9
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 10
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 11
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 12
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 13
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 14
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 15
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 16
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 17
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 18
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 19
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 20
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 21
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 22
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 23
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 24
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 25
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 26
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 27
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 28
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 29
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 30
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 31
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 32
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 33
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 34
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 35
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 36
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 37
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 38
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 39
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 40
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 41
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 42
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 43
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 44
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 45
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 46
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 47
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 48
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 49
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 50
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 51
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 52
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 53
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 54
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 55
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 56
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 57
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 58
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 59
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 60
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 61
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 62
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 63
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 64
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 65
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 66
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 67
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 68
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 69
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 70
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 71
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 72
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 73
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 74
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 75
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 76
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 77
Algoritmi Polinomiali de Generare a Submulțimilor Discrete Finite - Pagina 78

Conținut arhivă zip

  • Algoritmi Polinomiali de Generare a Submultimilor Discrete Finite.doc

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Placa de Bază

Caracteristici generale ale placii de baza Placa de baza este un dizpozitiv ‘de baza’ un ‘pamânt’ pe care ‘se planteaza’ celelalte componente ....

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Ai nevoie de altceva?