Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BİL 4112 YAPAY ZEKA Hafta 6. Kısıtlamalı Problemler / Kısıt Sağlama Problemleri (Constraint Satisfaction Problems)

Benzer bir sunumlar


... konulu sunumlar: "BİL 4112 YAPAY ZEKA Hafta 6. Kısıtlamalı Problemler / Kısıt Sağlama Problemleri (Constraint Satisfaction Problems)"— Sunum transkripti:

1 BİL 4112 YAPAY ZEKA Hafta 6

2 Kısıtlamalı Problemler / Kısıt Sağlama Problemleri (Constraint Satisfaction Problems)

3 Konular Kısıt Sağlama Problemleri (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 olanaklı değerler alanı Di Değerlerin değişkenlere atanması

5 Kısıt Sağlama Problemleri (CSPs) Standart arama sorunu: Durum: ardıl fonksiyonunu, sezgisellik fonksiyonunu ve amaç denemesini destekleyen veri yapısı CSP: Durum: D i alanından değerler alan X i değişkenleri ile tanımlanır Standart arama algoritmalarından daha güçlü olan genel amaçlı algoritmalar oluşturulmasına olanak sağlar CSP’lerde tüm amaç; tüm kısıtlara uyan çözüm bulmaktır, aramalardaki gibi optimum çözümü bulmak hedefi yoktur. Zaten çoğunlukla optimum bir çözüm de yoktur, birçok farklı kısıta birden uyulması gereken problemler içindir.

6 Atama Hiçbir kısıtlamayı bozmayan atamaya uyumlu veya legal (kurallara uygun) atama denir Tam atamada tüm değişkenler kullanılmış oluyor CSP’nin çözümü: Tüm kısıtlamaları tatmin eden / sağlayan tam atama

7 CSP-arama sorunu Başlangıç Durumu: 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 atanabilir 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. derinlikte ortaya çıkıyor  Derinine arama yöntemini kullanmalı

8 Örnek: Harita renklendirme Değişkenker: WA, NT, Q, NSW, V, SA, T Alanlar: D i = {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 yol verilendir WA NT SA Q NSW V T Birden fazla olası çözümler vardır: {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 renklendirme (çözüm) Çözümler tam ve atamalar 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ıtlar Grafı NT WA SA Q NSW W T Düğümler: değişkenler Kenarlar: kısıtlar

11 CSP türleri En basiti: Değişkenler ayrık (discrete) ve sonlu alanlıdır Sonlu alan: n değişken Her bir değişkenin max alan boyutu d ; Mümkün tam atamalar sayısı O(d n ) İ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: StartJob ≤ StartJob 3 Sürekli değişkenler Teleskopla gözlemlerin başlanması/ bitmesi zamanları

12 Kısıtların Türleri Tek terimli (Unary) kısıtlamalar: tek değişkeni kapsar SA ≠ green (Güney Avustralya eyaletinin rengi yeşil olmamalıdır) İkili (binary) kısıtlamalar: değ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) Örn. Sudoku problemleri En bilinen genel (global) kısıtlardan birisi Alldiff Alldiff: Bir kısıttaki tüm değişkenlerin her birisinin değişik değerde olması

13 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 verilebilir Kısıtların Türleri

14 Gerçek Dünyadaki CSP problemleri 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 Cryptarithmetic Problem Örneği Değişkenler: F T U W R O X 1 X 2 X 3 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 · X 1 X 1 + W + W = U + 10 · X 2 X 2 + T + T = O + 10 · X 3 X 3 = F, T ≠ 0, F ≠ 0 Kareler, uygun değişkenler arasındaki kısıtlamaları gösteriyor

16 CSP problemlerinin çö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ıra-bağı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ısmi atamalara (partial assignments) ulaşılabiliyor n n

17 Geriye İzlemeli Arama (Backtracking Search) Tüm CSP arama algoritmaları, arama ağacında düğümün ardıllarını, tek bir değişkene olanaklı 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 yapabiliriz. 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 uygun (legal) değer bulunmadıkça geriye dönüş yapılıyor

18 Değişken atamaları sıra- bağımsızdır, yani “[ WA = kırmızı ise o zaman NT = yeşil]” ile “[ NT = yeşil ise 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 öz yinelemeli derinine arama (recursive depth-first search) yöntemine geriye izlemeli arama denir Geriye izlemeli arama, CSP’ler için temel bilgisiz algoritmadır Geriye İzlemeli Arama (Backtracking Search)

19 Geriye İzleme algoritması

20 Geriye izleme örneği

21

22

23

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 atanabilecek 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 fark etmek mümkün mü?

25 CSP Sezgisel Algoritmaları En az kalan değerler (minimum remaining values – MRV) Bilginin kısıtlar boyunca yayılması Kısıtları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 olanaklı değerli değişkeni seç Örn., WA=kırmızı ve NT=yeşil atamaları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ılabilir. Diğer atanmamış değişkenlerle oranda daha çok sayıda sınırlamaları bulunan değişken seçilebilir. SA için derece 5, T için 0, diğerleri için 2 veya 3’tür (Bu ö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 en az kısıtlayıcı değer sezgiseli seçilebilir. 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ı olduğunda 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ı) Herhangi bir değişkenin legal değeri yoksa arama işlemini kesmeli Q=yeşil olduğunda 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ı) Herhangi bir 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ısmi atamasının tutarsız olduğunu meydana çıkaracak ve anında geriye izleme yapılacaktır

38 Kısıtlamaların Yayılması (Constraint propagation) İleriyi yoklama sezgiseli 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ğlayamaz: Ö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 yayacaktır. Yayılma WA ve Q’den NT ve SA üzerine gerçekleştiriliyor (ileriyi yoklama). Sonra da yayılma, tutarsızlığı meydana çıkarmak için NT ve SA arasındaki sınırlama üzerine aktarılır.

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 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 edebilir İşlemlerden önce veya her atamadan sonra çalıştırılabilir

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(n 2 d 3 )

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 problemi için; 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şki sezgiseli ile değer seçimi: Sınırlamaları en az bozan değeri seçmeli

48 En az Çelişki Sezgiseli (MIN-CONFLICTS Heuristic) 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 verildiğinde çok etkilidir - Sorunun boyutuna bağlı değil Başlangıç durumu verildiğinde milyon vezir problemini bile ortalama 50 adımda çözmek olanaklıdır! Hubble teleskopunun gözlem planlaması işini de, 160 küsür saatten 10 dakikaya indirmiştir!

49 Yerel arama için MinConflicts algoritması Function MIN-CONFLICTS(csp,max-steps) returns çözüm, veya başarısız sonuç inputs csp, kısıtları tatmin eden sorun max-steps, csp için tam atamanın yapılmasını sağlayan adımlar sayısı For i=1 to max-steps do If current cp için çözüm ise then return current var- VARİABLE[csp]’den tesadüfi seçilmiş çelişki (conflicted) değişken Value- CONFLICTS(var,v, current,csp) fonksiyonunu minimalleştiren var değişkeninin değeri set var=value in current return failure

50 Yerel arama için MinConflicts algoritması

51 8-Vezir Problemi   33      2

52 8-Vezir Problemi        

53 8-Vezir Problemi  22      

54 8 vezir sorunu- Internet demo /the_eight_queens_problem.html /the_eight_queens_problem.html

55 Özet / Sonuç CSP’ler, aşağıdaki sorunların özel türüdür: Durumlar, belirlenmiş değişkenler kümesinin değerleri ile tanımlanır Amaç denemesi, değişkenin değerlerine koyulan sınırlamalarla tanımlanır Geriye izleme algoritması = her düğümde bir değişkene değer atamakla derinine arama Değişkenlerin sırasını ve değer seçimini sezgisel yöntemlerle gerçekleştirmek çözüme yardım eder İleriyi yoklama, sonradan oluşabilecek başarısızlıklara neden olacak atamaları önler Kısıtların yayılması (kenarların tutarlığı) değerleri sınırlamaya ve tutarsızlıkları ortaya çıkarmaya yardım eder En az zıtlık (min-conflicts) pratik olarak etkilidir ve başlangıç durumu verildiğinde çoğu problemde çok hızlı ve verimli çalışır


"BİL 4112 YAPAY ZEKA Hafta 6. Kısıtlamalı Problemler / Kısıt Sağlama Problemleri (Constraint Satisfaction Problems)" indir ppt

Benzer bir sunumlar


Google Reklamları