Sunuyu indir
1
BİL 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: Di alanından değerler alan Xi 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: Di = {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 NT WA Q SA 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 Q WA NSW Düğümler: değişkenler Kenarlar: kısıtlar SA
11
CSP türleri En basiti: Değişkenler ayrık (discrete) ve sonlu alanlıdır
n değişken Her bir değişkenin max alan boyutu d ; 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ı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
Kısıtların Türleri 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
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 X1 X2 X3 alanlar: {0,1,2,3,4,5,6,7,8,9} 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 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
Geriye İzlemeli Arama (Backtracking Search)
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
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 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
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(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 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 2 1 2 2 2 1 2 3
52
8-Vezir Problemi
53
8-Vezir Problemi 2 3 2 2 1 2 2 1
54
8 vezir sorunu- Internet demo
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
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.