Farklı parametreler için objektif fonksiyonun değişen zaman maliyetini dikkate alan optimizasyon yöntemi


9

Bazı demografik modelleme yazılımının optimizasyon sürecini geliştirmeye çalışıyorum, böylece demografik modelleri verilere daha iyi sığdırabilirim. Optimizasyon süresini azaltmak istiyoruz.

Amaç fonksiyonumuzu değerlendirmek için gereken süre, girdi değerlerine bağlı olarak çok değişir. Amaç fonksiyonunu değerlendirmek için zaman ile girdi arasındaki ilişki bilinmektedir. Hangi noktaların değerlendirileceğini seçerken objektif fonksiyonun göreceli zaman maliyetini dikkate alan herhangi bir optimizasyon yöntemi olup olmadığını merak ediyorum.

Teşekkürler!

Güncelleme:

Pavlus'un talep ettiği gibi, bu özel objektif fonksiyonun bazı belirgin özellikleri şunlardır:

  1. Parametre sayısı orta (~ 12ish)
  2. Sorunumuz dışbükey değildir veya en azından objektif fonksiyon yüzeyinde dar ve düz “çıkıntılar” vardır. Şu anda bunun için farklı noktalardan çoklu optimizasyonlar kullanıyoruz, ancak daha iyisini yapmak isteriz.
  3. Nesnel işlev oldukça pürüzsüzdür, ancak türevlere sadece sonlu fark yaklaşımlarını hesaplayabiliriz.
  4. Değerlendirme maliyeti de parametre değerlerinin düzgün bir fonksiyonudur ve oldukça öngörülebilirdir. kabaca konuşmak gerekirse, her parametre için değerlendirme maliyeti aralığın bir ucunda yüksek ve diğer ucunda düşüktür. Dolayısıyla, değerlendirilmesi pahalı parametre kümelerinin geniş bölgelerine sahibiz, ancak bunların nerede olduklarını biliyoruz.

2
Merhaba Kate ve Scicomp'a hoş geldiniz! Amaç fonksiyonunuzun bazı özelliklerini paylaşabilir misiniz? Bu, davanız için belirli bir yöntemi belirlemenize yardımcı olabilir.
Paul

Değerlendirmek için puan seçerken objektif fonksiyonu (veya herhangi bir kısıtlamayı) açıkça değerlendirmenin maliyetini dikkate alan herhangi bir algoritma duymadım. Bununla birlikte, optimize edici tarafından değerlendirilecek bir sonraki noktayı akıllıca seçmeye çalışan türev içermeyen optimizasyon algoritmaları vardır. Öncül, işlev değerlendirmeleri pahalıysa, işlev değerlendirme sayısının en aza indirilmesi gerektiğidir. Ancak, türev içermeyen algoritmalar kullanmanın kullanım durumunuza yardımcı olacağından emin değilim.
Geoff Oxberry

Merhaba @ Paul, hoş geldiniz için teşekkürler! Bu topluluğu bulduğum için heyecanlıyım. Karakteristik özellikler ekledim. Daha önemli başka özellikler olup olmadığını bana bildirin.
nova

Küresel bir küçültücü ile ilgilendiğinizi # 2'den çıkarmak doğru muyum ? Yoksa "yeterli" düşüşten memnun musunuz? Küresel optimizasyon kendi başına bir alandır ve küresel bir çözüme ulaşma sorunu (varsa) pahalı deneme noktalarından kaçınmaktan tamamen ayrı olabilir.
Dominique

Dominique, küresel bir optimize edicinin sorunumuz için çok yavaş olacağını varsaydık, bu yüzden yerel optimize edicilerden memnun kaldık. Global optimize ediciler gelecekte bakmayı planladığımız bir şeydir.
nova

Yanıtlar:


4

Pahalı objektif fonksiyonlarla başa çıkmak için yaygın bir yaklaşım, orijinal objektif fonksiyona yaklaşan bir "tepki yüzey modeli" oluşturmak ve daha sonra orijinal fonksiyonla çalışmak yerine bu cevap yüzeyi üzerinde optimizasyon yapmaktır. Pratikte tepki yüzeyleri tipik olarak sadece regresyona uyan kuadratik modellerdir, bu nedenle minimum tepki yüzeyinin bulunması çok kolay bir optimizasyon problemi haline gelir.

Nesnel işlevinizin düzgünlüğü veya dışbükeyliği hakkında hiçbir şey söylemediniz. İşlev düz olmayan veya dışbükey ise, bu açıkça çok daha zorlaşır.

Ayrıca, parametre noktalarınızda pahalı noktaların nerede olduğu hakkında hiçbir şey söylemediniz. Parametre alanı boyunca rastgele dağıtılırlarsa, pahalı noktalardan kaçınırken yanıt yüzeyi modelinizi oluşturmak için deney tekniklerinin tasarımını kullanabilirsiniz. Parametre uzayında değerlendirmelerin pahalı olduğu daha büyük bölgeler varsa, yanıt yüzeyi modelini oluştururken kullandığınız bu alanlardaki nokta sayısını en aza indirmeye çalışabilirsiniz. Tabii ki, optimumunuz böyle bir bölgenin ortasındaysa, pahalı bölgedeki işlevleri değerlendirmeye mahkum olacaksınız.


1

Farklı deneme noktalarında hedefi değerlendirmenin göreli maliyetlerini özellikle belirleyen yöntemleri bilmiyorum, ancak bir adayın değerlendirilmesinin pahalı olup olmayacağını nispeten güvenilir bir şekilde tahmin edebiliyorsanız, bir denemeyi önerebilirim. doğrudan yöntem . Doğrudan yöntemler, türev içermeyen yöntemler ailesine uygundur. Sorunsuz optimizasyon yöntemlerinin sağlayamadığı bir miktar esneklik sağlayabileceğinden, probleminizin oldukça pürüzsüz olduğundan şüphelenseniz bile bunları kullanmak kötü bir şey değildir.

Fikir, doğrudan yöntemlerin mevcut yinelemeyle ilgili bir (yinelemeye bağlı) mesh ve (yinelemeye bağlı) mesh "adımı" tanımlamasıdır. Bu ağ adımına dayanarak, yöntem ağ üzerinde mevcut yinelemenin komşuları olan (ağ üzerinde uzanır ve ağ adımı tarafından tanımlanan bir mesafede olan) deneme noktalarını belirler. Daha sonra komşuların amacını değerlendirmeye devam edecektir. Daha iyi bir aday bulunur bulunmaz, yeni mevcut yineleme haline gelir. İsteğinize göre, tüm komşuları değerlendirebilir ve en iyisini seçebilirsiniz.

Sizin durumunuzda, komşuları buradaki hedefi değerlendirme maliyetine ilişkin tahmininize dayanarak sipariş etmek iyi bir fikir olabilir. Onları bu sırayla değerlendirin ve ilk başarıyı bir sonraki yineleme olarak seçin. Sezgisel olarak, ucuz adayları tercih ediyorsunuz. Doğrudan yöntemlerde, bu tür sıralamalar , Brian'ın bahsettiği bir yanıt yüzeyi modelinin genelleştirdiği bir kavram olan vekil modeller kategorisine uygundur .

Doğrudan bir yöntemin mükemmel bir uygulaması (C ++ ile): http://www.gerad.ca/nomad/Project/Home.html

Bu umut verici sonuçlar veriyorsa, lütfen bana geri dönmekten çekinmeyin ve başka iyileştirmeler önerebilirim.

NOMAD'ın ayrıca değişken mahalle araması konseptine dayanan küresel optimizasyon (şu anda uyguladığınız çoklu başlangıç ​​gibi) özelliklerine sahip olduğuna inanı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.