550 likes | 843 Views
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.
E N D
YAPAY ZEKA ve UZMAN SİSTEMLER Ders Notu – 3.3 Kısıtlamalı Sorunlar
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 • 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ı
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
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
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ıyorderinine arama yöntemini kullanmalı
Ö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ı}
Ö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
Kısıtlamalar Grafı NT Q WA NSW Düğümler: değişkenler Kenarlar: kısıtlamalar SA W T
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ı
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)
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
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
Ö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
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
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
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
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ü?
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
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)
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
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
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ı
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
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
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
İ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
İ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
İ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
İ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
İ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
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
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
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
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
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
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
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
Tutarlı Kenarlar algoritması- AC-3 • Zaman karmaşıklığı: O(n2d3)
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
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
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
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
8 Vezir Sorunu 2 1 2 2 2 1 2 3