Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. /*
  2. Algoritmi si tehnici de programare
  3. ---------------------------------------
  4. [1] BKTR
  5. --------------------------------------
  6.  
  7. [2] Greedy
  8.  
  9. Clasa problemelor rezolvabile Greedy
  10.  
  11. orice enunt de tip greedy este un enunt de optim
  12. se cere gasirea unmui subset dintr-un set data astfel incat sa fie indeplinita o
  13. anumita conditie
  14. conditia solicitata in enunt se numeste criteriul de optim global
  15. solutia se obtine constructivist adica la fiecare pas executam o selectie a
  16. unui cate nou element din setul dat pentru a fi depus in solutie
  17. selectia candidatului pentru a fi depus in solutie se executa
  18. irevocabil pe baza unui criteriu de optim numit criteriul de optim local
  19. Irevocabilitatea inseamna ca in cazul cat mai multe elemente
  20. indeplinesc criteriul de optim local se alege primul dintre acestea
  21. La o abordare de tip Greedy pentru a rula corect peste setul datelor
  22. trebuie o justificare de natura matematica a faptului ca prin
  23. aplicarea repetata a unui criteriu de optim local ceea ce construim in
  24. solutie furnizeaza optimul global cerut de enunt.
  25.  
  26. Obs :
  27. 1) Irevocabilitatea inseamna ca daca tehnica ruleaza corect se va furniza
  28. o singura solutie chiar daca eventual exista mai multe
  29. 2) In cazul in care criteriul de optim local aplicat in mod repetat nu conduce
  30. intotdeauna la o solutie in care avem indeplinit criteriul de optim global
  31. putem fi in situatiile :
  32. - in marea majoritate a cazurilor functioneaza corect
  33. sunt si cazuri particulare cand rezultatul nu este corect
  34. dar este admisbil
  35. ( o valoarea situata in apropierea optimului cerut de enunt )
  36. - in marea majoritate a cazurilor functioneaza corect
  37. sunt si cazuri particulare cand rezultatul nu este corect
  38. si nu este admisbil
  39. - in marea majoritate a cazurilor functioneaza corect
  40. sunt si cazuri particulare cand rezultatul nu este gasit
  41. desi acesta exista
  42.  
  43. Greedy ca metode lucru are valoare practica cand
  44. [a] functioneaza corect indiferent de forma datelor de intrare
  45. [b] functioneaza corect in marea majoritate a cazurilor si poroblema este
  46. NP completa
  47.  
  48. Alg tip Greedy sunt foarte rapizi ( uneori pot fi imperfecti si admitem asta
  49. in anumite conditii )
  50. furnizeaza solutii in timp uman acceptabil
  51.  
  52. De cele mai multe ori problemele sunt NP complete
  53.  
  54. De cele mai multe ori criteriul de optim local nu este explicat
  55. formulat in enuntul problemei
  56.  
  57. Probleme de tip Greedy
  58.  
  59. 1. problema rucsacului
  60.  
  61. enunt
  62.  
  63. "input.dat"
  64. G greutatea maxima admisibila a rucsacului
  65. n un numar de obiecte
  66. g1 p1 greutatea si profitului obiectului i
  67. ...
  68. gn pn
  69.  
  70. Se cere se faca o alegere din setul celor n obiecte astfel acestea sa incapa
  71. in rucsac ( suma greutatilor < G ) si profitul total sa fie maxim
  72.  
  73. varianta 1 ( continuum case )
  74. depunem continuu obiecte in rucsac in baza criteriului de optim local
  75. in cazul in care obiect curent selectat nu incape in fractionam
  76. si actualizam profitul conform fractiei selectate
  77.  
  78. varianta 2 ( discret case )
  79. admitem doar obiecte intregi in rucsac
  80.  
  81. ========================================
  82. problema rucsacului cazul continuu
  83.  
  84. alegem criteriul de optim local :
  85.  
  86. din subsetul celor ramase aleg un cel mai eficient obiect
  87. definesc eficienta castigul obtinut pe unitatea de greutate
  88.  
  89. In cazul in care pentru criteriul de optim local ales acesta este
  90. aplicat identic peste subsetul celor nealese inca
  91. Greedy poate fi optimizata presortand datele in baza criteriului pentru
  92. optimul local
  93.  
  94. In Problema rucsacului cazul continuu presortam obiectele dupa eficienta
  95.  
  96.  
  97. int G;
  98. int n;
  99. float O[100][4]; // pe coloana 1 este numele obiectului
  100. // 2 greutatea
  101. // 3 profitul
  102. // 4 eficienta
  103. int read_data()
  104. {
  105.  
  106. }
  107.  
  108. int sort_data()
  109. {
  110.  
  111.  
  112. }
  113.  
  114. int compute_data()
  115. {
  116. // Greedy ?
  117.  
  118. }
  119.  
  120. int main()
  121. {
  122. read_data();
  123. sort_data();
  124. compute_data();
  125. }
  126.  
  127.  
  128. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement