Problema Satisfacerii Restricțiilor (CSP)

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

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)?

  • 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?

  • 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?

<p>O condiție care limitează valorile pe care le pot lua variabilele. (B)</p> Signup and view all the answers

Ce înseamnă că o atribuire este considerată 'completă' într-o problemă CSP?

<p>Fiecare variabilă are o valoare atribuită din domeniul său. (B)</p> Signup and view all the answers

Dacă o atribuire în CSP satisface toate constrângerile, aceasta este numită...

<p>Soluție validă (A)</p> Signup and view all the answers

Ce caracterizează o soluție 'totală' într-o problemă CSP?

<p>Este o soluție completă care nu încalcă nicio restricție. (C)</p> Signup and view all the answers

Ce este un CSP "binar"?

<p>Un CSP cu constrângeri care implică maximum două variabile (A)</p> Signup and view all the answers

Care este scopul principal al algoritmului de backtracking în rezolvarea problemelor CSP?

<p>Explorarea sistematică a spațiului de soluții prin revenire la punctele de decizie (B)</p> Signup and view all the answers

Ce face propagarea constrângerilor într-un algoritm CSP?

<p>Elimină valorile inconsistente din domeniile variabilelor (D)</p> Signup and view all the answers

Care este un avantaj al utilizării propagării restricțiilor în algoritmii CSP?

<p>Reduce dimensiunea spațiului de căutare. (D)</p> Signup and view all the answers

Ce reprezintă consistența arcului (arc consistency) într-o problemă CSP?

<p>Pentru fiecare valoare a unei variabile, există o valoare corespunzătoare în domeniul altei variabile care satisface restricțiile (B)</p> Signup and view all the answers

Pentru algoritmul AC-3, ce se întâmplă dacă acesta returnează 'EȘEC'?

<p>Problema nu are soluție consistentă. (D)</p> Signup and view all the answers

Care este complexitatea temporală a algoritmului AC-3?

<p>$O(e \cdot d^3)$ (B)</p> Signup and view all the answers

Ce îmbunătățire aduce menținerea arc-consistenței (MAC) algoritmului de backtracking?

<p>Accelerează procesul de căutare prin detectarea timpurie a inconsistențelor (A)</p> Signup and view all the answers

Ce euristică de ordonare a variabilelor ar alege variabila cu cele mai puține valori rămase în domeniul său?

<p>Minimum remaining value (MRV) (A)</p> Signup and view all the answers

În ce scenariu este utilă euristica 'Minimum Remaining Value (MRV)' în ordonarea variabilelor?

<p>Când se dorește găsirea unei singure soluții cât mai rapid (B)</p> Signup and view all the answers

Ce face euristica 'Degree heuristic' în contextul ordonării variabilelor într-o problemă CSP?

<p>Alege variabila implicată în cele mai multe restricții cu alte variabile neatribuite. (D)</p> Signup and view all the answers

Care este scopul ordonării valorilor în rezolvarea problemelor CSP?

<p>Găsirea mai rapidă a unei soluții sau a tuturor soluțiilor, în funcție de necesități (C)</p> Signup and view all the answers

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?

<p>Alegerea valorilor care elimină cât mai multe valori pentru variabilele vecine (A)</p> Signup and view all the answers

Ce abordare presupune o problemă CSP parțială (Flexible CSP)?

<p>Relaxarea restricțiilor și asocierea unui cost cu încălcarea fiecărei restricții. (D)</p> Signup and view all the answers

Într-o problemă CSP parțială, ce reprezintă limita suficientă S?

<p>Costul total maxim acceptabil al restricțiilor încălcate. (D)</p> Signup and view all the answers

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ă'?

<p>Al doilea algoritm încearcă să minimizeze costul total al restricțiilor încălcate. (D)</p> Signup and view all the answers

Ce înseamnă o soluție arc-consistentă în contextul unui graf de restricții?

<p>Pentru fiecare valoare dintr-un domeniu, există cel puțin o valoare suport în domeniul fiecărui vecin. (C)</p> Signup and view all the answers

Care este impactul lățimii grafului de restricții asupra necesității de backtracking după aplicarea AC-3?

<p>Dacă lățimea este 1, backtracking-ul nu mai este necesar. (C)</p> Signup and view all the answers

În ce constă diferența dintre algoritmul AC-3 și AC-4 în contextul propagării restricțiilor?

<p>AC-4 urmărește suporturile pentru fiecare valoare în fiecare domeniu, oferind o complexitate temporală potențial mai bună. (C)</p> Signup and view all the answers

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?

<p>Complexitatea scade drastic. (D)</p> Signup and view all the answers

Cum influențează alegerea ordinii variabilelor, folosind MRV (Minimum Remaining Value), performanța algoritmului de backtracking în CSP?

<p>MRV reduce numărul total de noduri explorate în arborele de căutare, concentrând căutarea pe zonele cele mai critice. (C)</p> Signup and view all the answers

Î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ă?

<p>Nu s-ar găsi nicio soluție, chiar dacă există orare acceptabile cu mici încălcări. (A)</p> Signup and view all the answers

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?

<p>AC-3' este invocat după fiecare atribuire de valoare pentru a menține consistența arcului și pentru a elimina valorile incompatibile, reducând astfel spațiul de căutare. (B)</p> Signup and view all the answers

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?

<p>Euristica variabilelor determină ordinea în care sunt propagate constrângerile, în timp ce euristica valorilor influențează cât de repede se ajunge la un punct mort. (B)</p> Signup and view all the answers

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?

<p>Ar crește șansele de a detecta timpurie inconsistențe, ghidând propagarea către zonele cele mai constrânse ale problemei. (D)</p> Signup and view all the answers

Î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'?

<p>Coada este reinițializată doar cu arcele care ies din variabila căreia i s-a atribuit valoarea. (B)</p> Signup and view all the answers

Cum trebuie interpretată complexitatea temporală a algoritmului AC-3, $O(e \cdot d^3)$, în contextul rezolvării practice a problemelor CSP?

<p>Creșterea numărului de constrângeri sau a dimensiunii domeniilor va avea un impact semnificativ asupra timpului de execuție. (D)</p> Signup and view all the answers

Flashcards

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ă?

O CSP este totală dacă toate variabilele au valori atribuite și nicio restricție nu este încălcată.

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?

Backtracking este o tehnică de rezolvare a problemelor prin încercări și erori, revenind la punctele anterioare dacă se ajunge la o soluție invalidă.

Signup and view all the flashcards

Ce face algoritmul AC-3?

AC-3 este un algoritm pentru a face un graf arc-consistent. Un arc (Xi, Xj) este arc-consistent dacă pentru fiecare valoare din domeniul lui Xi, există o valoare în domeniul lui Xj care satisface restricția dintre ele.

Signup and view all the flashcards

Ce este 'Maintaining arc-consistency – MAC'?

Menține arc-consistența pe măsură ce avansăm în recursivitate, combinând backtracking cu arc consistența. Se verifică arc-consistența după atribuirea unei valori.

Signup and view all the flashcards

Ce este 'Minimum remaining value – MRV'?

Se ordonează variabilele. MRV alege variabila cea mai restricționată (domeniul cel mai redus).

Signup and view all the flashcards

Ce face PCSP?

Găsește cea mai bună soluție acceptabilă. Intrare cu variabile rămase, soluție parțială, cost, limită suficientă S.

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

  1. Dacă Vars este vid, atunci se returnează Sol.
  2. Se alege o variabilă Xi din Vars.
  3. Pentru fiecare valoare x din domeniul Di:
  4. copiază toate domeniile
  5. r ← AC-3′(arcs_out(Xi))
  6. Dacă r și consistent(Sol ∪ ⟨Xi, x⟩, R) atunci
  7. res ← BKT-MAC(Vars \ {Xi}, Sol ∪ ⟨Xi, x⟩)
  8. Dacă res ≠ EȘEC atunci întoarce res
  9. restaurează domeniile
  10. Î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.

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
  1. dacă Vars = ∅ atunci întoarce Sol
  2. Xi ← alege_variabila(Vars)
  3. pentru fiecare x ∈ Di
  4. Sol' ← Sol ∪ ⟨Xi, x⟩
  5. c = cost + Σ cj cu [ Σ luată peste toate restricțiile Xi ∈ tj, rj(Sol') = False]
  6. dacă c ≤ S
  7. res ← PCSP(Vars \ {Xi}, Sol', c)
  8. dacă res ≠ ESEC atunci întoarce res
  9. întoarce ESEC

Algoritmul PCSP - găsește cea mai bună soluție acceptabilă

  1. dacă Vars = ∅ atunci
  2. sols ← sols ∪ {Sol}
  3. dacă cost < best_cost atunci best_cost ← cost
  4. Xi ← alege_variabila(Vars)
  5. pentru fiecare x ∈ Di
  6. Sol' ← Sol ∪ ⟨Xi, x⟩
  7. c = cost + Σ cj cu [ Σ luată peste toate restricțiile Xi ∈ tj, rj(Sol') = False]
  8. dacă c ≤ S și c < best_cost
  9. 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.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser