2012-04-20 29 views
8

Doğrusal olmayan programlama için C++ kütüphaneleri için öneriler arıyorum (sadece tam sayı için değil!).Doğrusal olmayan programlama kitaplığı C++ 'da

Tercihi, etkin bir şekilde F/OSS çözümleri için geçerlidir, ancak ücretsiz değerlendirme sürümleri sunan ticari olarak etkin bir şekilde sürdürülen ticari çözümler kabul edilebilir.

Şimdiden teşekkürler!

Düzenleme: istediği gibi burada detaylar:

Üzerinde çalıştığım uygulama basit ve küçük bir set ile dereceye 4'ün polinomları ve daha yüksek (11'e kadar) minimize ilgili (Eşitsizlikler olarak ifade edilen kısıtların ~ 20) (yine polinomlar olarak derece < = 4). Yine de, bazen, bazı trigonometrik fonksiyonlara atmak zorunda kalabilirim. Her durumda, her zaman uğraştığım sürekli, ayırt edilebilir işlevler. Değişken sayısı şu an için 1'den 12'ye kadar değişiyor ve bunun ötesine geçmeyecek. Son olarak, Windows üzerinde çalışan bir çözüme ihtiyacım var, ancak çapraz platform olanları tercih edilebilir.

+0

Bize yapmak istediğiniz hesaplamaları örnek verebilir misiniz? Hangi alanda (finans? Fiziği?)? Hangi işletim sistemi? (daha doğrusu * nix veya Windows?) –

+0

Düzenlemem için bir göz atın. – em70

cevap

2

NLopt M.J. D. Powell doğrusal olmayan eşitsizlik ve eşitlik kısıtlamaları ile türevi içermeyen optimizasyonu için lineer yaklaşımları tarafından COBYLA, Kısıtlı Optimizasyon dahil olmak üzere iyi düzine algoritmalar için katı Cı kodu vardır.
Eklenme: here , NLopt numaralı türev olmayan en iyi duruma getiricilerin birkaçından oluşur.
5d ve 10d'de Rosenbrock ve Powell test fonksiyonları için, hepsi çok rastgele başlangıç ​​noktalarına duyarlı; YMMV.

6

Emin değilim, ama CERN'den belki ROOT sizin için uygun olacaktır. Bu, CERN'den gerçekten büyük bir kütüphanedir (örneğin, ROOT::Math::Polynomial sınıfı).

Ben bir gerçekten kütüphane 'bir dakikalık öğrenilebilen' değil, ama var söylemeliyim hem: Gerçek zamanlı olarak tüm matematik malzeme ile çalışmak konsol ve kütüphanelerini (MathCAD cmd satırına benzer) ve dll kodunuzda statik olarak bağlantı kurabilirsiniz. Ve çapraz platform kütüphanesi. Dahası, ROOT'un en güçlü özelliği, hemen hemen her türlü grafik ve araziyi oluşturabilmenizdir.

+0

Lütfen doğrusal olmayan programlama yapan sınıflara bir cevap (cevabınızda) verebilir misiniz? – Ali

4

Bildiğim en sağlam bu tür kitaplık IPOPT. Şaşırtıcı derecede sağlamdır, ticari çözücülerle bile çözemediğim kimya mühendisliği problemleri için bana sonuç verdi. Diğer uygulama örnekleri için success stories'a bakın.

+0

@Denis Mac'e erişimim olmadığından emin olamıyorum. Ancak [bu talimatlar] (https://projects.coin-or.org/Ipopt/wiki/Ipopt_on_Mac_OS_X) iyi bir şekilde gözüküyor ve 14 Mart 2012'den geliyorlar. Bence bu bir atıştı. – Ali