Podcast
Questions and Answers
Ce reprezintă acronimul CSP în contextul inteligenței artificiale?
Ce reprezintă acronimul CSP în contextul inteligenței artificiale?
- Constraint Satisfaction Problem (correct)
- Calculated Structure Protocol
- Complex System Problem
- Critical Solution Process
Care dintre următoarele probleme poate fi modelată ca o problemă de satisfacere a constrângerilor (CSP)?
Care dintre următoarele probleme poate fi modelată ca o problemă de satisfacere a constrângerilor (CSP)?
- Colorarea hărților astfel încât țările vecine să aibă culori diferite (correct)
- Determinarea celui mai scurt drum într-un graf
- Calculul integralelor definite
- Optimizarea unui portofoliu financiar
În terminologia CSP, ce reprezintă un domeniu?
În terminologia CSP, ce reprezintă un domeniu?
- Mulțimea variabilelor dintr-o problemă
- Mulțimea valorilor pe care le poate lua o variabilă (correct)
- O restricție aplicată variabilelor
- O soluție completă a problemei
Ce este o restricție într-o problemă CSP?
Ce este o restricție într-o problemă CSP?
Ce înseamnă că o atribuire este considerată 'completă' într-o problemă CSP?
Ce înseamnă că o atribuire este considerată 'completă' într-o problemă CSP?
Dacă o atribuire în CSP satisface toate constrângerile, aceasta este numită...
Dacă o atribuire în CSP satisface toate constrângerile, aceasta este numită...
Ce caracterizează o soluție 'totală' într-o problemă CSP?
Ce caracterizează o soluție 'totală' într-o problemă CSP?
Ce este un CSP "binar"?
Ce este un CSP "binar"?
Care este scopul principal al algoritmului de backtracking în rezolvarea problemelor CSP?
Care este scopul principal al algoritmului de backtracking în rezolvarea problemelor CSP?
Ce face propagarea constrângerilor într-un algoritm CSP?
Ce face propagarea constrângerilor într-un algoritm CSP?
Care este un avantaj al utilizării propagării restricțiilor în algoritmii CSP?
Care este un avantaj al utilizării propagării restricțiilor în algoritmii CSP?
Ce reprezintă consistența arcului (arc consistency) într-o problemă CSP?
Ce reprezintă consistența arcului (arc consistency) într-o problemă CSP?
Pentru algoritmul AC-3, ce se întâmplă dacă acesta returnează 'EȘEC'?
Pentru algoritmul AC-3, ce se întâmplă dacă acesta returnează 'EȘEC'?
Care este complexitatea temporală a algoritmului AC-3?
Care este complexitatea temporală a algoritmului AC-3?
Ce îmbunătățire aduce menținerea arc-consistenței (MAC) algoritmului de backtracking?
Ce îmbunătățire aduce menținerea arc-consistenței (MAC) algoritmului de backtracking?
Ce euristică de ordonare a variabilelor ar alege variabila cu cele mai puține valori rămase în domeniul său?
Ce euristică de ordonare a variabilelor ar alege variabila cu cele mai puține valori rămase în domeniul său?
În ce scenariu este utilă euristica 'Minimum Remaining Value (MRV)' în ordonarea variabilelor?
În ce scenariu este utilă euristica 'Minimum Remaining Value (MRV)' în ordonarea variabilelor?
Ce face euristica 'Degree heuristic' în contextul ordonării variabilelor într-o problemă CSP?
Ce face euristica 'Degree heuristic' în contextul ordonării variabilelor într-o problemă CSP?
Care este scopul ordonării valorilor în rezolvarea problemelor CSP?
Care este scopul ordonării valorilor în rezolvarea problemelor CSP?
Ce abordare ar fi mai potrivită dacă se dorește găsirea tuturor soluțiilor posibile într-o problemă CSP, fără a favoriza o anumită soluție inițial?
Ce abordare ar fi mai potrivită dacă se dorește găsirea tuturor soluțiilor posibile într-o problemă CSP, fără a favoriza o anumită soluție inițial?
Ce abordare presupune o problemă CSP parțială (Flexible CSP)?
Ce abordare presupune o problemă CSP parțială (Flexible CSP)?
Într-o problemă CSP parțială, ce reprezintă limita suficientă S?
Într-o problemă CSP parțială, ce reprezintă limita suficientă S?
Care este diferența principală între algoritmii PCSP ce găsesc 'prima soluție acceptabilă' și cei care găsesc 'cea mai bună soluție acceptabilă'?
Care este diferența principală între algoritmii PCSP ce găsesc 'prima soluție acceptabilă' și cei care găsesc 'cea mai bună soluție acceptabilă'?
Ce înseamnă o soluție arc-consistentă în contextul unui graf de restricții?
Ce înseamnă o soluție arc-consistentă în contextul unui graf de restricții?
Care este impactul lățimii grafului de restricții asupra necesității de backtracking după aplicarea AC-3?
Care este impactul lățimii grafului de restricții asupra necesității de backtracking după aplicarea AC-3?
În ce constă diferența dintre algoritmul AC-3 și AC-4 în contextul propagării restricțiilor?
În ce constă diferența dintre algoritmul AC-3 și AC-4 în contextul propagării restricțiilor?
Ce se întâmplă cu complexitatea unui algoritm de backtracking îmbunătățit cu MAC, în cazul în care consistența arcului detectează o inconsistenta la un nivel înalt al arborelui de căutare?
Ce se întâmplă cu complexitatea unui algoritm de backtracking îmbunătățit cu MAC, în cazul în care consistența arcului detectează o inconsistenta la un nivel înalt al arborelui de căutare?
Cum influențează alegerea ordinii variabilelor, folosind MRV (Minimum Remaining Value), performanța algoritmului de backtracking în CSP?
Cum influențează alegerea ordinii variabilelor, folosind MRV (Minimum Remaining Value), performanța algoritmului de backtracking în CSP?
Într-o problemă de planificare a orarului ca CSP parțial, cum ar afecta o limită S (cost total maxim acceptabil al restricțiilor încălcate) prea restrictivă?
Într-o problemă de planificare a orarului ca CSP parțial, cum ar afecta o limită S (cost total maxim acceptabil al restricțiilor încălcate) prea restrictivă?
Care dintre următoarele afirmații descrie cel mai bine rolul algoritmului AC-3' (o variantă a AC-3 utilizată în BKT-MAC) în contextul algoritmului BKT-MAC?
Care dintre următoarele afirmații descrie cel mai bine rolul algoritmului AC-3' (o variantă a AC-3 utilizată în BKT-MAC) în contextul algoritmului BKT-MAC?
Cum influențează, în mod specific, alegerea euristicilor de ordonare a variabilelor și valorilor interacțiunea dintre backtracking și propagarea constrângerilor într-un algoritm CSP, presupunând că ambele tehnici sunt utilizate?
Cum influențează, în mod specific, alegerea euristicilor de ordonare a variabilelor și valorilor interacțiunea dintre backtracking și propagarea constrângerilor într-un algoritm CSP, presupunând că ambele tehnici sunt utilizate?
Presupunând că se utilizează o combinație între backtracking și propagarea constrângerilor într-o problemă CSP, cum ar influența o euristică de ordonare a variabilelor care prioritizează variabilele cu cele mai multe constrângeri (Degree heuristic) eficiența globală a algoritmului?
Presupunând că se utilizează o combinație între backtracking și propagarea constrângerilor într-o problemă CSP, cum ar influența o euristică de ordonare a variabilelor care prioritizează variabilele cu cele mai multe constrângeri (Degree heuristic) eficiența globală a algoritmului?
Într-o problemă CSP în care se aplică backtracking cu menținerea consistenței arcului (MAC), presupunând că la un anumit pas se atribuie o valoare unei variabile, cum este afectată coada de procesare a arcelor în AC-3'?
Într-o problemă CSP în care se aplică backtracking cu menținerea consistenței arcului (MAC), presupunând că la un anumit pas se atribuie o valoare unei variabile, cum este afectată coada de procesare a arcelor în AC-3'?
Cum trebuie interpretată complexitatea temporală a algoritmului AC-3, $O(e \cdot d^3)$, în contextul rezolvării practice a problemelor CSP?
Cum trebuie interpretată complexitatea temporală a algoritmului AC-3, $O(e \cdot d^3)$, în contextul rezolvării practice a problemelor CSP?
Flashcards
Ce este o CSP?
Ce este o CSP?
Problema satisfacerii restricțiilor (CSP) presupune găsirea unei soluții care respectă anumite constrângeri.
Ce înseamnă o CSP totală?
Ce înseamnă o CSP totală?
O CSP este totală dacă toate variabilele au valori atribuite și nicio restricție nu este încălcată.
Ce este o CSP parțială?
Ce este o CSP parțială?
O CSP este parțială dacă toate variabilele au valori atribuite, dar unele restricții sunt încălcate.
Ce este Backtracking?
Ce este Backtracking?
Signup and view all the flashcards
Ce face algoritmul AC-3?
Ce face algoritmul AC-3?
Signup and view all the flashcards
Ce este 'Maintaining arc-consistency – MAC'?
Ce este 'Maintaining arc-consistency – MAC'?
Signup and view all the flashcards
Ce este 'Minimum remaining value – MRV'?
Ce este 'Minimum remaining value – MRV'?
Signup and view all the flashcards
Ce face PCSP?
Ce face PCSP?
Signup and view all the flashcards
Study Notes
Problema Satisfacerii Restricțiilor (CSP)
- Reprezintă o arie a Inteligenței Artificiale
Exemple de Probleme CSP
- Colorarea hărților
- Sudoku
- Orarul
- Problema lui Einstein (Zebra puzzle)
- Puzzle-uri matematice
Terminologie CSP
- V reprezintă mulțimea variabilelor: {X1... XN}
- D reprezintă domeniile variabilelor: {D1... DN}
- R reprezintă restricțiile: {R1... Rk}, unde Rj = (tj, rj), tj ⊆ V, iar rj aplică o funcție variabilelor din tj și returnează {True, False}.
- O atribuire este o asociere de valori pentru variabile: {(X1, x1)... (XN, xN)}, unde xi ∈ Di ∪ {⊥}, iar ⊥ înseamnă neatribuit.
- O atribuire este o soluție dacă toate variabilele au o valoare atribuită (atribuire completă) și toate restricțiile sunt respectate (soluție validă).
- CSP totală: soluția este completă și nu încalcă nicio restricție.
- CSP parțială: soluția este completă, dar încalcă unele restricții. Rj = (tj, rj, cj), unde cj este costul restricției Rj.
- Costul soluției este suma costurilor restricțiilor încălcate.
- CSP binară: toate restricțiile sunt binare, adică ∀Rj ∈ R, tj ∈ V × V.
Backtracking
- Este o metodă de rezolvare a problemelor CSP
- Poate fi aplicat prin încercarea de a reduce spațiul de căutare și factorul de ramificare.
- Îmbunătățirea consistenței căutării contribuie la eficiență.
Algoritmul CSP-BKT
- Algoritmul primește ca intrare variabilele rămase de atribuit (Vars) și atribuirea inițială X, Soluția inițială fiind ∅.
- Ieșirea poate fi o atribuire completă sau Eșec.
- Dacă Vars este vid, atunci Soluția este returnată.
- Se alege o variabilă Xi din Vars.
- Pentru fiecare valoare x din domeniul Di,
- dacă atribuirea Sol ∪ {(Xi, x)} este consistentă cu restricțiile R, atunci se apelează recursiv CSP-BKT cu Vars \ {Xi} și Sol ∪ {(Xi, x)}.
- Dacă rezultatul recursiv este diferit de Eșec, atunci rezultatul este returnat.
- Dacă nicio valoare nu duce la o soluție, atunci se returnează Eșec.
Propagarea Locală a Restricțiilor
- Este un proces de reducere a domeniilor variabilelor pe baza restricțiilor, cu scopul de a simplifica problema.
- Inițial, după aplicarea restricțiilor unare, domeniile variabilelor pot fi predefinite.
- Pe cazul general, dacă o variabilă i poate avea doar valorile Di′, domeniile tuturor variabilelor vecine se ajustează astfel încât să conțină doar valori compatibile cu valorile din Di′ .
- Dacă un domeniu Dk, al variabilei k vecină cu i, a fost ajustat, toate variabilele vecine cu variabila k, mai puțin variabila i, se verifică din nou.
Algoritmul AC-3 (Arc Consistency 3)
- Trebuie ca toate restricțiile să fie unare sau binare.
- Se formează un graf de restricții în care nodurile corespund variabilelor, iar arcele corespund restricțiilor binare. Pentru fiecare restricție există două arce orientate.
- Un arc (Xi, Xj) corespunzător unei restricții Rij este arc-consistent dacă ∀xi ∈ Di, ∃xj ∈ Dj, astfel încât rij(xi, xj) = True.
- Graful este arc-consistent dacă toate arcele sunt arc-consistente
- Nu se mai poate reduce spațiul de căutare prin acest mecanism, dacă graful este arc-consistent
Pași AC-3
- Reduce toate domeniile conform cu restrictiile unare.
- Inițializează o coadă Q cu toate arcele (Xi, Xj) corespunzătoare restricțiilor Rij ∈ R.
- Cât timp Q nu este goală:
- Extrage un arc (Xi, Xj) din Q.
- Dacă domeniul lui Xi s-a modificat ca urmare a procesului check,
- Dacă Di devine vid, algoritmul întoarce EȘEC.
- Altfel, adaugă în Q toate arcele (Xk, Xi) unde Rki ∈ R și k ≠ j.
- Întoarce SUCCES.
Subrutina check(Xi, Xj)
Pentru fiecare valoare xi ∈ Di:
- Dacă nu există nicio valoare xj ∈ Dj, astfel încât rij(xi, xj) = True,
- Atunci elimină xi din Di.
- Întoarce True dacă Di s-a modificat, altfel False.
Complexitatea AC-3
- Complexitatea temporală este O(e * d³), unde e este numărul de restricții (muchii), iar d este cardinalitatea maximă a domeniilor.
- Complexitatea spațială este O(e).
- Dacă AC-3 întoarce EȘEC, atunci problema nu are soluție.
- Dacă după AC-3 toate domeniile au cardinalitatea 1, nu mai este necesar backtracking.
- Dacă lățimea grafului de restricții este mai mare de 1, atunci trebuie făcut backtracking pe variabilele cu domenii de cardinalitate > 1.
Îmbunătățiri BKT: Menținerea Arcu-Consistenței (MAC)
- Combină backtracking cu arc consistența, menținând arc-consistența pe măsură ce se avansează în recursivitate (Maintaining arc-consistency – MAC).
- Se verifică arc-consistența după ce se atribuie o valoare în soluția parțială.
Algoritmul BKT-MAC
- Dacă Vars este vid, atunci se returnează Sol.
- Se alege o variabilă Xi din Vars.
- Pentru fiecare valoare x din domeniul Di:
- copiază toate domeniile
- r ← AC-3′(arcs_out(Xi))
- Dacă r și consistent(Sol ∪ ⟨Xi, x⟩, R) atunci
- res ← BKT-MAC(Vars \ {Xi}, Sol ∪ ⟨Xi, x⟩)
- Dacă res ≠ EȘEC atunci întoarce res
- restaurează domeniile
- Întoarce EȘEC
Ordonarea Variabilelor
- Se poate ordona variabilele (funcția alege_variabila) astfel:
- Aleator
- Alegând variabila cea mai restricționată (cu domeniul cel mai redus) – Minimum remaining value – MRV.
- Util atunci când se dorește o singură soluție și se vrea să se forțeze un eșec mai rapid.
- Alegând variabila cea mai puțin restricționată.
- Util atunci când se dorește aflarea tuturor soluțiilor și ne dorim un arbore de BKT mai lat și mai puțin adânc.
- Alegând variabila implicată în cele mai multe restricții cu variabile încă ne-atribuite – Degree heuristic.
Ordonarea Valorilor
- Se pot parcurge valorile din domeniu într-o anumită ordine:
- Se selectează întâi valoarea care elimină cele mai puține valori din variabilele vecine la menținerea arc-consistenței.
- Util atunci când se dorește o singură soluție și vrem să ajungem la o soluție mai repede.
- Se selectează întâi valoarea care elimină cele mai multe valori din variabilele vecine la menținerea arc-consistenței.
- Util atunci când se doresc toate soluțiile și preferăm un graf mai puțin adânc.
- Se selectează întâi valoarea care elimină cele mai puține valori din variabilele vecine la menținerea arc-consistenței.
CSP Parțială (Flexible CSP)
- Pentru o problemă de tip CSP cu multe restricții, este posibil ca nu toate restricțiile să fie la fel de importante.
- Se asociază un cost cu fiecare restricție: Rj = ⟨tj, rj, cj⟩, cu cj > 0.
- Se stabilește o limită suficientă S: o soluție Sol ca validă dacă Σ cj ≤ S cu [ Σ luată peste toate restricțiile j, rj(Sol) = False]
- Optimizare: dacă în parcurgere costul total al restricțiilor încălcate de atribuirea parțială curentă depășește S, sau depășește costul restricțiilor pentru cea mai bună soluție găsită până acum, nu are sens să mai continuăm pe această cale.
Algoritmul PCSP - găsește prima soluție acceptabilă
- Intrări: Vars – variabile rămase de atribuit, initial X;
- Sol – soluția (atribuirea) parțială, inițial ∅
- cost – costul soluției parțiale Sol, cu S – limita suficientă
- Ieșire: O atribuire completă de cost ≤ S sau ESEC
- dacă Vars = ∅ atunci întoarce Sol
- Xi ← alege_variabila(Vars)
- pentru fiecare x ∈ Di
- Sol' ← Sol ∪ ⟨Xi, x⟩
- c = cost + Σ cj cu [ Σ luată peste toate restricțiile Xi ∈ tj, rj(Sol') = False]
- dacă c ≤ S
- res ← PCSP(Vars \ {Xi}, Sol', c)
- dacă res ≠ ESEC atunci întoarce res
- întoarce ESEC
Algoritmul PCSP - găsește cea mai bună soluție acceptabilă
- dacă Vars = ∅ atunci
- sols ← sols ∪ {Sol}
- dacă cost < best_cost atunci best_cost ← cost
- Xi ← alege_variabila(Vars)
- pentru fiecare x ∈ Di
- Sol' ← Sol ∪ ⟨Xi, x⟩
- c = cost + Σ cj cu [ Σ luată peste toate restricțiile Xi ∈ tj, rj(Sol') = False]
- dacă c ≤ S și c < best_cost
- PCSP(Vars \ {Xi}, Sol', c)
- Va actualiza soluția, dacă este cazul
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.