1 / 54

YAPAY ZEKA ve UZMAN SİSTEMLER

YAPAY ZEKA ve UZMAN SİSTEMLER. Ders Notu – 3.3 Kısıtlamalı Sorunlar. Kısıtlamalı Sorunlar Constraint Satisfaction Problems. Konular. kısıtlamalı Sorunlar (CSP) CSP’ler için geriye izlemeli arama-( Backtracking search ) CSP’ler için yerel arama. CSP - Biçimsel İfadesi.

dusty
Download Presentation

YAPAY ZEKA ve UZMAN SİSTEMLER

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. YAPAY ZEKA ve UZMAN SİSTEMLER Ders Notu – 3.3 Kısıtlamalı Sorunlar

  2. Kısıtlamalı Sorunlar Constraint Satisfaction Problems

  3. Konular • kısıtlamalı Sorunlar (CSP) • CSP’ler için geriye izlemeli arama-(Backtracking search) • CSP’ler için yerel arama

  4. CSP - Biçimsel İfadesi • X1, X2,….Xn değişkenler kümesi • C1,C2,…Cm kısıtlamalar kümesi • Her bir Xi için mümkün değerler alanı Di • Değerlerin değişkenlere atanması

  5. Kısıtlamalı sorunlar(CSPs) • Standart arama sorunu: • Durum-ardıl fonksiyonunu, sezgisellik fonksiyonunu ve amaç denemesini destekleyen veri yapısı • CSP: • Durum DialanındandeğerleralanXideğişkenleriile tanımlanır • Standart arama algoritmalarından daha güçlü olan genel amaçlı algoritmalar oluşturulmasına olanak sağlar

  6. Atama • Hiçbir kısıtlamayı bozmayan atamaya uyumlu veya legal atama denir • Tam atamada tüm değişkenler kullanılmış oluyor • CSP’nin çözümü- Tüm kısıtlamaları tatmineden tam atama

  7. CSP-arama sorunu • Başlangıç Durum: boş atama {}; hiçbir değişkene değer atanmamış • Ardıl işlev: değer atanmamış her hangi değişkene, önceki atamalarla uyuşmazlık oluşturmayan değer atana bilir • Amaç Denemesi: atama tamdır ve kısıtlamalar sağlanmıştır • Yol Değeri: her bir adım için değer (=1) N değişkenli sorun için her bir çözüm n’ci derinlikte meydana çıkıyorderinine arama yöntemini kullanmalı

  8. Örnek: Harita renkleme • DeişkenkerWA, NT, Q, NSW, V, SA, T • AlanlarDi = {kırmızı,yeşil,mavi} • Sınırlamalar: komşu bölgeler farklı renklerle boyanmalıdır • Yani WA ≠ NT, veya (WA,NT) için {(kırmızı,yeşil),(kırmızı,mavi),(yeşil,kırmızı),(yeşil,mavi),(mavi,kırmızı),(mavi, yeşil)} kümeleri yolverilendir NT WA Q SA NSW V T Birden fazla mümkün çözümler mevcuttur: {WA=kırmızı, NT=yeşil, Q=kırmızı, NSW=yeşil, V=kırmızı, SA=mavi, T=kırmızı}

  9. Örnek: Harita renkleme (çözüm) • Çözümler tam veatamalar uyumludur (kısıtlamalar bozulmuyor); • WA = kırmızı, NT = yeşil,Q = kırmızı,NSW = yeşil,V = kırmızı,SA = mavi,T = yeşil

  10. Kısıtlamalar Grafı NT Q WA NSW Düğümler: değişkenler Kenarlar: kısıtlamalar SA W T

  11. CSP türleri • En basiti: Değişkenler diskret ve sonlu alanlıdır • Sonlu alan: • n değişken • Her bir değişkenin max alan boyutud ; • Mümkün tam atamalar sayısıO(dn) • İkili CSP’ler’de değişkenler “doğru” veya “yanlış” değer alıyor • Sonsuz alan: • Tam sayılar, satır değişkenleri ve s. • Görev planlama- değişkenler her bir görevin başlama ve bitiş günleridir • Sınırlama dili gerekmektedir:StartJob1 + 5 ≤ StartJob3 • sürekli değişkenler • Teleskopla gözlemlerin başlanması/ bitmesi zamanları

  12. kısıtlamaların Türleri • Tek terimli (Unary) kısıtlamalar tek değişkeni kapsar • SA ≠ green (Güney Avustraliya ’nın rengi yeşil olmamalıdır) • İkili (binary) kısıtlamalardeğişkenler çiftini kapsar • SA ≠ WA • Yüksek dereceli kısıtlamalar 3 veya daha çok değişkeni kapsar • Şifreli aritmetik sorunlar (cryptarithmetic column constraints)

  13. kısıtlamaların Türleri (devamı) • Mutlak (absolute) kısıtlamalar- bu kısıtlamanın bozulması potansiyel çözümü engeller • Tercih (preference) kıstlamaları -hangi kısıtlamanın öncelikli olacağı gösteriliyor • Ders programında hocaların isteklerinin dikkate alınması • Sınırlamalara belirli ağırlıklar verile bilir

  14. Gerçek dünya CSP sorunları • Atama sorunları • Hangi öğretmenler hangi sınıfta • Zaman paylaşımı sorunları • Hangi sınıf ne zaman ve nerede • Nakliyat sorunları • İmalat planlama • Gerçek dünya sorunlarının büyük kısmı gerçek değerli değişkenlidir

  15. Örnek: Cryptarithmetic • Değişkenler: F T U W R O X1 X2 X3 • alanlar: {0,1,2,3,4,5,6,7,8,9} • Sınırlamalar: Alldiff (F,T,U,W,R,O)O + O = R + 10 ·X1 X1 + W + W = U + 10 · X2 X2 + T + T = O + 10 · X3 • X3 = F, T ≠ 0, F≠ 0 Kareler, uygun değişkenler arasındaki kısıtlamaları gösteriyor

  16. CSP sorunlarının çözümü: • Her bir arama algoritması ile bu sorunu çözmek mümkündür. • enine aramada en üst seviyede dallanma etkeni nd (n değerler,d değişkenler sayısıdır) • n!d -yapraklı ağaç (tüm mümkün tam atamalar sayısı d ) • Sırabağımsızlık (commutativity)-hareketler kümesinin uygulanma ardışıklığı sonucu etkilemez • Değerleri değişkenlere atamakla , atama sırasına bağlı olmadan aynı kısmı atamalara ulaşıla biliyor n n

  17. Geriye İzleme • Tüm CSP arama algoritmaları, arama ağacında düğümün ardıllarını, tek bir değişkene mümkün atamaları gözden geçirmekle üretiyor • Örneğin, kök düğümde SA=kırmızı,SA=yeşil veya SA=mavi arasında seçim yapa bileriz. • Geriye İzlemeli Arama- Derinine arama • Geriye izleme yönteminde her adımda yalnız bir değişken seçilir ve değişkene atanacak legal değer bulunmadıkta geriye dönüş yapılıyor

  18. Geriye İzleme (devamı) • Değişken atamaları sırabağımsızdır, yani “[ WA = kırmızıise o zaman NT = yeşil]”ile“[ NT = yeşilise o zaman WA = kırmızı ]” aynıdır • Her bir düğümde yalnız bir değişkene atama dikkate alınıyor • Tek değerli atamalı CSP’ler için derinine arama yöntemine geriye izlemeli aramadenir • Geriye izlemeli arama CSP’ler için temel bilgisiz algoritmadır

  19. Geriye İzleme algoritması

  20. Geriye izleme örneği

  21. Geriye izleme örneği

  22. Geriye izleme örneği

  23. Geriye izleme örneği

  24. Sorunlar: • Sonraki atama hangi değişkene yapılmalıdır; değerlerin sınanması sırası nasıl olmalıdır? • Güncel değişkene yapılmış atama, henüz atama yapılmamış diğer değişkenler için ne gibi sonuçlar doğurur? • Değişkene atana bilecek hiçbir legal değerin bulunmadığı durum oluşmuşsa, sonraki arama sürecinde bu hatanın tekrarlanmasından kaçınmak mümkün mü? • Kaçınılmaz başarısızlıkları önceden farketmek mümkün mü?

  25. CSP sezgisel algoritmaları • En az kalmış değerler (minimum remaining values) –MRV • Bilginin kısıtlamalar boyunca yayılması • Kısıtlamaların Yayılması • En az çelişki

  26. Değişkenlerin ve değerlerin sırası var<-Select-Unassigned_Variable(Variable(csp),assignment,csp) Geriye izleme algoritmasında sonraki atanmamış değişken variable(csp) listesinden rastgele seçiliyor. Bu ise her zaman etkili değildir. Variable(WA,NT,Q,SA,NSW,V,T)

  27. En az kalan değerler -minimum remaining values(MRV) • En az “legal” değeri kalmış değişkenin seçilmesi • Eğer X değişkeninin sıfır sayıda legal değeri kalmışsa, MRV sezgiseli X’i seçecek ve başarısızlığı fark edecek. X’in seçilmesi, başarısız çözüme götürecek diğer değişkenlere atamaları engelleyecek

  28. En az kalan değerler En az mümkün değerli değişkeni seç • Örn., WA=kırmızı ve NT=yeşilatamalarından sonra SA için yalnız mavi renk seçimi kalıyor. Bu anlamda, Q’ye atama yapılmadan önce SA=mavi ataması yapılması daha etkili olurdu. Bundan sonra, Q, NSW ve V için de atamalar kolaylaşır • Ana fikir: en az mümkün değerleri bulunan değişkeni seçmeli

  29. Derece sezgiselliği • MRV sezgiseli ilk hangi değişkenin seçileceğini belirleyemez. • Örn., Haritada her bölge için başlangıçta 3 renk vardır ve bu bölgelerden hangisinin seçilmesi sorundur • Bu halde derece sezgiselliği kullanıla bilir. Diğer atanmamış değişkenlerle oranda daha çok sayıda sınırlamaları bulunan değişken seçile bilir. • SA için derece 5, T için 0, diğerleri için 2 veya 3’tür • (örnekte: sınırlama derecesi- komşu ülkeler sayısı

  30. Derece sezgiselliği • Yüksek derece sezgiselliği bulunan değişkenin seçilmesi ile sonraki adımlarda dallanmaların sayısını azaltmak mümkündür

  31. Değerlerin Sırasının Seçilmesi • Değişken seçildikten sonra atanacak değerlerin sırası belirlenmelidir • Bunun için enaz kısıtlayıcı değer sezgiseli seçile bilir. • Bu sezgisele göre, kısıtlamalar grafında komşu değişkenler için en az seçim durumuna yol açmayacak değer seçilir • Seçilen değer, kalan değişkenlerde en az değer kalmasını engeller • Sonraki atamalarda esneklik sağlar

  32. En az kısıtlayıcı değer • Örn., WA=kırmızı ve NT=yeşil kısmı atamalarından sonra, bir sonraki seçimin Q için yapılacağını varsayalım. “mavi” kötü seçim olacak, çünkü o, Q’nün komşusu SA için son mümkün değeri de eleyecek. En az kısıtlayıcı değer sezgiseli “kırmızı”yı tercih edecektir. • Bu sezgiselliklerin birleşimi ile 1000 vezir sorununu çözmek mümkündür

  33. İleriyi yoklama-forward checking • X değişkenine atama yapıldığı zaman, onunla komşu olan tüm Y değişkenlerine de göz atılacak. • Y’lerin değer alanlarından, X için seçilmiş değer ile tutarsızlık oluşturan tüm değerler silinecektir

  34. İleriyi yoklama • Ana fikir: • Atanmamış değişkenler için kalan legal değerlerin yolunu hafızada saklamalı (kaydetmeli) • Değişkenlerden her hangi birisinin legal değeri kalmamışsa arama işlemini kesmeli

  35. İleriyi Yoklama • Ana fikir: • Atanmamış değişkenler için kalan legal değerlerin yolunu kaydetmeli (saklamalı) • Her hangi değişkenin legal değeri yoksa arama işlemini kesmeli Wa=kırmızı oldukta NT ve SA için 2 renk kalıyor

  36. İleriyi Yoklama • Ana fikir: • Atanmamış değişkenler için kalan legal değerlerin yolunu kaydetmeli (saklamalı) • Here hangi değişkenin legal değeri yoksa arama işlemini kesmeli Q=yeşil oldukta NT ve SA için bir değer (mavi) kalıyor WA ve Q’den bilgiyi yaymakla NT ve SA’nın dallanmalarını tamamen elemiş oluruz

  37. İleriyi yoklama • Ana fikir: • Atanmamış değişkenler için kalan legal değerlerin yolunu kaydetmeli (saklamalı) • Her hangi değişkenin legal değeri yoksa arama işlemini kesmeli V= mavi olursa SA için değerler kümesi boş olacak İleriyi yoklama sezgiseli “WA=kırmızı,Q=yeşil,V=mavi” kısmı atamasının tutarsız olduğunu meydana çıkaracak ve anında geriye izleme yapılacaktır

  38. kısıtlamaların yayılması-Constraintpropagation • İleriyi yoklamasezgiseli bilgiyi atama yapılmış değişkenlerden atama yapılmamış değişkenlere yayıyor. Ama tüm başarısızlıkların erken farkedilmesini sağlamaz: • Örnek: WA=kırmızı ve Q=yeşıl olması , NT ve SA’nın mavi olmasını zorunlu kılıyor • NT ve SA her ikisi mavi olamaz! • kısıtlamaların yayılması, bir değişkene sınırlamanın etkilerinin diğer değişkenlere de yayılmasını sağlar

  39. Kısıtlamaların yayılması • kısıtlamaların yayılması sezgiseli bir değişken için kısıtlamaları diğer değişkenlere de yayacak. Yayılma WA ve Q’den NT ve SA üzerine gerçekleştiriliyor (ileriyi yoklama). Sonra ise yayılma, tutarsızlığı meydana çıkarmak için NT ve SA arasındaki sınırlama üzerine aktarılıyor

  40. Kenarların tutarlılığı-arc consistency • Yayılmanın en basit biçimi her kenarın tutarlı yapılmasıdır • Eğer X’teki her bir x değeri için Y’de her hangi yolverilen y değeri varsa X Y kenarı tutarlıdır SA{mavi} NSW{mavi, kırmızı} SA->NSW tutarlıdır

  41. Kenarların tutarlılığı • Yayılmanın en basit biçimi her kenarın tutarlı yapılmasıdır • Eğer X’teki her bir x değeri için Y’de her hangi yolverilen y değeri varsa X Y kenarı tutarlıdır SA{mavi} NSW{mavi, kırmızı} NSW ->SA tutarsızdır

  42. Kenarların tutarlılığı • Yayılmanın en basit biçimi her kenarın tutarlı yapılmasıdır • Eğer X’teki her bir x değeri için Y’de her hangi yolverilen y değeri varsa X Y kenarı tutarlıdır • V{kırmızı,yeşil,mavi} NSW{mavi, kırmızı} • V->NSW tutarlıdır; her renk ile komşunun en az bir rengi tutarlıdır

  43. Kenarların tutarlılığı • Yayılmanın en basit biçimi her kenarın tutarlı yapılmasıdır • Eğer X’teki her bir x değeri için Y’de her hangi yolverilen y değeri varsa X Y kenarı tutarlıdır • Kenarların tutarlılığı, ileriyi yoklama yönteminden daha önce başarısızlığı fark ede bilir • İşlemlerden önce veya her atamadan sonra çalıştırıla bilir

  44. Kenarların tutarsızlığı • SA->NSW tutarlıdır (SA{mavi} NSW{mavi, kırmızı}) • NSW->SA tutarsızdır;NSW alanından “mavi” çıkarılmalı • SA->NT’ye arama sürecinde kenarların tutarlılığı uygulana biler. Her ikisinin alanı “mavi”. Tutarsızlığı önlemek için SA’dan “mavi” çıkarılırsa alan boş olacak ve tutarsızlık erken fark edilecek

  45. Tutarlı Kenarlar algoritması- AC-3 • Zaman karmaşıklığı: O(n2d3)

  46. CSP için yerel arama • Pek çok CSP sorunu için yerel arama etkilidir • Tam-durum (complete-state) ifadesi kullanılıyor: başlangıç durumda her değişkene değer atanıyor. Ardıl fonksiyonu olarak her adımda bir değişkenin değerinin değiştirilmesi kullanılıyor • 8 vezir sorununda • başlangıç durum: her vezirin rasgele olarak bir sütunda yerleştirilmesi • Ardıl fonksiyonu: her hangi bir vezirin kendi sütununda yerini değiştirmesi

  47. CSP’ler için yerel arama (devamı) • Yerel arama yönteminin CSP’ye uygulanması: • Tatmin etmeyen kısıtlamalı durumlara izin veriliyor • İşlem yapmakla değişkenlere değerler yeniden atanıyor • Değişken seçimi:her hangi çelişkili değişkenin rasgele seçimi • En az çelişkisezgiseli ile değer seçimi: • Sınırlamaları en az bozan değeri seçmeli

  48. En az çelişki (MIN-CONFLICTS) Sezgiseli • Değişkene yeni değer atamak için bir yol, diğer değişkenlerle en az sayıda çelişki oluşturacak değerin seçilmesidir -en az çelişki sezgiseli • Sezgisel, özellikle başlangıç durum verildikte çok etkilidir-Sorunun boyutuna bağlı değil • Başlangıç durum verildikte milyon vezir sorununu ortalama 50 adımda çözmek mümkündür

  49. Yerel arama için MinConflicts algoritması FunctionMIN-CONFLİCTS(csp,max-steps)returnsçözüm, veya başarısız sonuç inputscsp, kısıtlamaları tatmineden sorun max-steps, csp için tam atamanın yapılmasını sağlayan adımlar sayısı For i=1tomax-stepsdo Ifcurrent cp için çözüm ise then returncurrent var- VARİABLE[csp]’den tesadüfi seçilmiş çelişki (conflicted) değişken Value- CONFLİCTS(var,v, current,csp) fonksiyonunu minimalleştiren var değişkeninin değeri set var=value in current return failure

  50. 8 Vezir Sorunu  2  1  2  2 2 1   2  3

More Related