5

Belgedeki çelişkili şeyleri okuyorum.OptaPlanner sürekli değişkenler üzerindeki optimizasyonları ve kısıtlamaları destekliyor mu?

bir planlama değer aralığı planlama değişkeni için olası planlama değerlerin kümesidir: Bir yandan

, bu pasaj sürekli planlama değişkenleri mümkün olduğuna da işaret gibi görünüyor. Bu set bir ayrık (örneğin, sıra 1, 2, 3 veya 4) veya sürekli olabilir (örneğin 0,0 ve 1,0 arasında herhangi bir çift). Bir Planlama Değişken tanımlarken

Öte yandan

, sen değer kümesi için kullanılacak bir alan üzerinde bir ValueRangeProvider ek açıklama belirtmek gerekir:

Çözüm uygulaması Koleksiyon döndüren yöntemi vardır. Bu Koleksiyondaki değeri, bu planlama değişkeninin olası bir planlama değeridir. Bu snippet'lerden

İkisi

hangisi Yani ( http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518)

belgelerin aynı bölümündesin? Planlama değişkenim olarak tam bir double kullanabilir miyim veya aralığını belirli bir Collection değerindeki değerlerle sınırlamalı mıyım?

Gerçek algoritmalara bakıldığında, sürekli değişkenleri optimize etmek için gerçekten uygun olan hiçbir şey göremiyorum, bu yüzden mümkün olabileceğinden şüphe duyuyorum, ancak bunu açıklığa kavuşturmak ve açıklamak güzel olurdu.

cevap

4

Sürekli değişkenleri tam olarak desteklemeye çalışıyoruz. Ancak şu an (6.0.0.CR2'de), henüz desteklenmiyor,.

Değer aralıkları gerçekten aralıksız olabilir, ancak bunları kullanmak için kullanılan tesisat henüz yok. Son zamanlarda iyi bir gelişme kaydettik, bkz. https://issues.jboss.org/browse/PLANNER-160. Sen 'de (yerine bir Collection ait) bir ValueRange döndüren bir yöntem üzerinde bir @ValueRangeProvider notu kullanın mümkün olacak: İşte

işe yarayacak nasıl. biz':

A ValueRange bir arayüz, ... Out-of-the-box biz IntValueRange, DoubleValueRange, BigDecimalValueRange ... (Uygulama detay destekleyecek, rasgele bir değer seçerek destekleyen bir boyutu alma olacak Bu Toplama döndürme yöntemlerini bir CollectionValueRange içine sığdırın.)

Daha sonra ValueSelector uygulamaları bunu doğrudan kullanır.

  • tam zamanında rasgele seçim hızlı yanan olacaktır ve çok bellek verimli: uygunluğu için

    olarak sürekli değişkenler optimize etmek.

  • NP-complete/NP-hard sorununuz varsa, OptaPlanner harika bir eşleşme olacaktır.Eğer sadece sürekli değişkenler varsa (ve tek bir ayrık değişken değil), o zaman probleminizin NP-complete olması muhtemel değildir (kısıtlamalarınız bunu kanıtlamazsa) ve bu durumda yine de el yapımı, özel bir polinom algoritmasıyla daha iyi durumdasınız demektir. (çünkü NP-complete değil, bu yüzden "kolay" bir çözüm var).