En Az Kısıtlayıcı Değer Nedir?


11

Kısıt memnuniyeti problemlerinde sezgisel tarama, bir dengeleyici çözücünün performansını artırmak için kullanılabilir. Basit geri izleme çözümleyicileri için yaygın olarak verilen üç buluşsal yöntem:

  • Minimum kalan değerler (bu değişken için hala kaç değer geçerlidir)
  • Derece sezgisel (bu değişkenten başka kaç değişken etkilendi)
  • En az kısıtlayıcı değer (diğer değişkenler için en fazla diğer değeri hangi değer bırakacaktır)

İlk ikisi oldukça açık ve uygulanması kolaydır. İlk olarak, alanında en az değeri olan değişkeni seçin ve bağlar varsa, diğer değişkenlerin çoğunu etkileyen değişkeni seçin. Bu şekilde, çözücüdeki bir üst adım kötü bir ödev seçerse, daha çabuk öğrenirsiniz ve böylece diğer şeyleri etkileyen en düşük değerlere sahip değişkeni seçerseniz zaman kazanırsınız.

Bunlar basit, açıkça tanımlanmış ve uygulaması kolaydır.

En az kısıtlayıcı değer, baktığım her yerde açıkça tanımlanmamış. Yapay Zeka: Modern Bir Yaklaşım (Russel ve Norvig) şöyle diyor:

Kısıtlama grafiğindeki komşu değişkenler için en az seçeneği dışlayan değeri tercih eder.

"En az kısıtlayıcı-değer" araması, bu ders kitabına dayanan çok sayıda üniversite slayt gösterisine neden oldu, bunun algoritmik olarak nasıl yapılacağı hakkında daha fazla bilgi yok.

Bu buluşsal yöntem için verilen tek örnek, bir değer seçeneğinin komşu değişken için tüm seçenekleri ortadan kaldırdığı ve diğerinin yapmadığı bir durumdur. Bu örnekle ilgili sorun, bunun, potansiyel atamanın sorunun kısıtlamaları ile tutarlılık açısından kontrol edilmesi durumunda hemen ortadan kaldırılacak olan önemsiz bir durum olmasıdır. Bu yüzden bulabildiğim tüm örneklerde, en az kısıtlayıcı değer sezgisel yöntemi, fazladan bir kontrol eklemekten kaynaklanan küçük bir olumsuz etki dışında, çözücü performansına hiçbir şekilde fayda sağlamadı.

Aklıma gelen tek şey, her bir atama için komşu değişkenlerin olası atamalarını sınamak ve bu değişkenin her olası ataması için var olan komşuların olası atama sayısını saymak ve bu değişkenin değerlerini sıralamak olacaktır. bu değer seçildiğinde mevcut olan komşu atamaların sayısına göre. Ancak, bunun rastgele bir sipariş üzerinde nasıl bir iyileştirme sunacağını görmüyorum, çünkü bu hem çok sayıda değişken kombinasyonunu test etmeyi hem de sayımın sonuçlarına göre sıralamayı gerektirir.

En az sınırlayıcı değerin daha yararlı bir tanımını verebilir ve en az sınırlayıcı değerin bu versiyonunun gerçekte nasıl bir gelişme sağlayacağını açıklayabilir mi?


AI: AMA (s. 228), en az kısıtlayıcı değer buluşsal yönteminin Haralick ve Elliot (1980) tarafından önerildiğinden bahseder . Makale ( burada bulunur ) AI'da kullanılandan çok farklı bir dil kullanır: AMA ve hangi bölümün LCV sezgisel yöntemine atıfta bulunduğunu belirlemekte sorun yaşıyorum.
ryan

Yanıtlar:


3

bu bağlantıya bakın:

https://people.cs.pitt.edu/~wiebe/courses/CS2710/lectures/constraintSat.example.txt

Önce "O" değişkenini alır ve daha sonra "O" nun komşuları "N" üzerindeki azalma sayısını görmek için "O" nun tüm yasal değerleri "i" ile test eder. Hepsini ekler. ve daha az azalmaya neden olan bir "i" seçer:

   sums = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0}
   For i from 0 to 9:  
     plug "o=i" into the constraint formulas
     For each neighbor "N" of "o" in the constraint graph:
       sums[i] += the number of values remaining for "N"

"İ" seçer böylece:

sums[i] = MAX{sums[i] | for all "i" that is a member of "O",s valid values}

Umarım bu cevabınızı bulmanıza yardımcı olabilir!


1
Bu cevap vermiyorexplain how that version of least-constraining-value would actually yield an improvement?
skrtbhtngr

1

Bence buradaki en önemli şey çözücünün yazıldığı göreve göre bu buluşsal yöntemlerin uygulanmasıdır. Ve eğer bir değişkenin seçilen değeri başka bir değişkenin alanında tek bir değer bırakmazsa (diyelim ki sadece tek bir çözümle çok kısıtlı bir problemimiz var), o zaman çözüm durur . Ve rastgele bir arama, doğru ve yanlış bir karara götüren doğru yolda ilerleyebilir. Ve eğer ters giderse, geriye doğru izleme yapmanız gerekir (çatışmaya yönelik geri atlama bakın) ve hesaplama zamanı alır. Ancak LCV buluşsal yöntemlerini kullanan algoritmanın daha doğru bir yol izlemesi daha olasıdır ve geri dönüş gerekmez. Ama kısıtlanmamış bir sorun varsa, bu rastgele arama gibi olacağını düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.