AMPL - AMPL

AMPL
AMPL (ders kitabı kapağı) .jpg
ParadigmaÇoklu paradigma: beyan edici, zorunlu
Tarafından tasarlandıRobert Fourer
David Gay
Brian Kernighan
Bell Laboratuvarları
GeliştiriciAMPL Optimization, Inc.
İlk ortaya çıktı1985; 35 yıl önce (1985)
Kararlı sürüm
20131012/12 Ekim 2013; 7 yıl önce (2013-10-12)
işletim sistemiÇapraz platform: Linux, Mac os işletim sistemi, Solaris, AIX, pencereler
LisansTescilli (çevirmen),
ücretsiz ve açık kaynak (AMPL Çözücü Kitaplığı)
Dosya adı uzantıları.mod, .dat, .run
İnternet sitesiwww.ampl.com
Tarafından etkilenmiş
AWK, C
Etkilenen
Pyomo

AMPL (Matematiksel Programlama Dili) bir cebirsel modelleme dili büyük ölçekli matematiksel hesaplama için yüksek karmaşıklık problemlerini tanımlamak ve çözmek (yani, büyük ölçekli optimizasyon ve zamanlama -tip problemleri).[1]Tarafından geliştirilmiştir Robert Fourer, David Gay ve Brian Kernighan -de Bell Laboratuvarları.AMPL düzinelerce çözücüler, her ikisi de açık kaynak ve ticari yazılım CBC dahil, CPLEX, FortMP, Gurobi, MINOS, IPOPT, SNOPT, KNITRO ve LGO. Sorunlar çözücülere şu şekilde aktarılır: nl dosyaları.AMPL, 100'den fazla kurumsal müşteri ve devlet kurumları ve akademik kurumlar tarafından kullanılmaktadır.[2]

AMPL'nin bir avantajı, sözdiziminin matematiksel gösterimine benzerliğidir. optimizasyon sorunlar. Bu, etki alanındaki sorunların çok kısa ve okunabilir bir tanımına izin verir. optimizasyon. Birçok modern çözücü, NEOS Sunucusu (önceden şu yerde barındırılıyordu: Argonne Ulusal Laboratuvarı, şu anda burada barındırılıyor Wisconsin-Madison Üniversitesi[3]) AMPL girişini kabul edin. NEOS istatistiklerine göre AMPL, matematiksel programlama problemlerini temsil etmek için en popüler formattır.

Özellikleri

AMPL, aşağıdakilerin bir karışımını içerir: beyan edici ve zorunlu programlama stilleri. Optimizasyon modellerinin formüle edilmesi, kümeler, skaler ve çok boyutlu parametreler, karar değişkenleri, hedefler gibi bildirimsel dil unsurları aracılığıyla gerçekleşir. kısıtlamalar, matematiksel optimizasyon alanındaki çoğu problemin kısa ve öz açıklamasına izin verir.

Prosedürler ve kontrol akışı ifadeler için AMPL'de mevcuttur:

  • gibi harici veri kaynakları ile veri alışverişi elektronik tablolar, veritabanları, XML ve metin dosyaları
  • optimizasyon modelleri etrafında veri ön ve son işleme görevleri
  • doğrudan etkili çözücülerin bulunmadığı problem türleri için hibrit algoritmaların oluşturulması.

AMPL, büyük ölçekli optimizasyon problemlerinin yeniden kullanımını desteklemek ve yapımını basitleştirmek için model ve verilerin ayrılmasına izin verir.

AMPL, aralarında çok çeşitli sorun türlerini destekler:

AMPL, aşağıdaki avantajlara sahip ayrı bir süreçte bir çözücüyü çağırır:

  • Kullanıcı çözüm sürecini dilediği zaman kesebilir
  • Çözücü hataları yorumlayıcıyı etkilemez
  • AMPL'nin 32 bit sürümü, 64 bit çözücü ile kullanılabilir ve bunun tersi de geçerlidir

Çözücü ile etkileşim, iyi tanımlanmış bir nl arayüzü.

Kullanılabilirlik

NEOS Ocak 2011 için girdi istatistikleri.

AMPL, birçok popüler 32 ve 64 bit için mevcuttur işletim sistemleri dahil olmak üzere Linux, Mac os işletim sistemi, Solaris, AIX, ve pencereler.[5]Tercüman, AMPL Optimization LLC tarafından sağlanan tescilli bir yazılımdır. Bununla birlikte, AMPL kullanarak ücretsiz modelleme ve çözme olanakları sağlayan birkaç çevrimiçi hizmet mevcuttur.[6][7] Sınırlı işlevselliğe sahip ücretsiz bir öğrenci sürümü ve akademik kurslar için ücretsiz tam özellikli bir sürüm de mevcuttur.[8]

AMPL içeriden kullanılabilir Microsoft Excel aracılığıyla SolverStudio Excel eklentisi.

Nl dosyalarının okunmasına izin veren ve otomatik farklılaşma sağlayan AMPL Çözücü Kitaplığı (ASL) açık kaynaklıdır. Birçok çözücüde AMPL bağlantısını uygulamak için kullanılır.

Durum geçmişi

Bu tablo, AMPL geçmişindeki önemli adımları göstermektedir.

YılÖne Çıkanlar
1985AMPL tasarlandı ve uygulandı[1]
1990AMPL modelleme dilini açıklayan kağıt şu adreste yayınlandı: Yönetim Bilimi[9]
1991AMPL destekler doğrusal olmayan programlama ve otomatik farklılaşma
1993Robert Fourer, David Gay ve Brian Kernighan ORSA / CSTS Ödülü'ne layık görüldü[10] tarafından Amerika Yöneylem Araştırması Derneği, matematiksel programlama sistemlerinin tasarımı ve AMPL modelleme dili üzerine yazılar için
1995Temsil etmek için uzantılar Parçalı doğrusal ve ağ yapıları
1995Komut dosyası yapıları
1997Doğrusal olmayan çözücüler için gelişmiş destek
1998AMPL destekler tamamlayıcılık teorisi sorunlar
2000İlişkisel veritabanı ve elektronik tablo erişimi
2002Kısıt programlama desteği[4]
2003AMPL Optimization LLC, AMPL, Robert Fourer, David Gay ve Brian Kernighan'ın mucitleri tarafından kuruldu. Yeni şirket, AMPL modelleme dilinin geliştirilmesini ve desteğini Lucent Technologies, Inc.
2005AMPL Modelleme Dili Google grubu açıldı[11]
2008Kestrel: NEOS Sunucusuna bir AMPL Arayüzü tanıtıldı
2012Robert Fourer, David Gay ve Brian Kernighan en önemli cebirsel modelleme dillerinden birinin yaratıcıları olarak 2012 INFORMS Etki Ödülü'nü aldı.[12]
2012AMPL kitabı çevrimiçi olarak ücretsiz olarak kullanılabilir hale gelir
2013Yeni bir çapraz platform entegre geliştirme ortamı AMPL için (IDE) kullanılabilir hale gelir[13]

Örnek bir model

Bir ulaşım sorunu George Dantzig örnek bir AMPL modeli sağlamak için kullanılır. Bu sorun, fabrikalardaki pazar ve tedarik gereksinimlerini karşılayan en düşük maliyetli nakliye programını bulur.[14]

Ayarlamak Bitkiler;Ayarlamak Piyasalar;# Durumlarda p tesisi kapasitesiparam Kapasite{piçindeBitkiler};# Durumlarda pazardaki talep mparam Talep{miçindePiyasalar};# Binlerce mil cinsinden mesafeparam Mesafe{Bitkiler,Piyasalar};# Her bin mil için kasa başına dolar cinsinden navlunparam Navlun;# Kasa başına binlerce dolar cinsinden nakliye maliyetiparam Nakliye Maliyeti{piçindeBitkiler,miçindePiyasalar}:=Navlun*Mesafe[p,m]/1000;# Kasalarda gönderi miktarlarıvar gönderi{Bitkiler,Piyasalar}>=0;# Binlerce dolar cinsinden toplam nakliye maliyetiküçültmek maliyet:toplam{piçindeBitkiler,miçindePiyasalar}Nakliye Maliyeti[p,m]*gönderi[p,m];# Tesis p'de arz sınırına uyunöyledir arz{piçindeBitkiler}:toplam{miçindePiyasalar}gönderi[p,m]<=Kapasite[p];# Pazardaki talebi karşılayın möyledir talep{miçindePiyasalar}:toplam{piçindeBitkiler}gönderi[p,m]>=Talep[m];veri;Ayarlamak Bitkiler:=Seattlesan-Diego;Ayarlamak Piyasalar:=yeni-YorkChicagoTopeka;param Kapasite:=Seattle350san-Diego600;param Talep:=yeni-York325Chicago300Topeka275;param Mesafe:yeni-YorkChicagoTopeka:=Seattle2.51.71.8san-Diego2.51.81.4;param Navlun:=90;

Çözücüler

İşte kısmi bir liste çözücüler AMPL tarafından desteklenmektedir:[15]

ÇözücüDesteklenen sorun türleri
APOPTkarışık tam sayı doğrusal olmayan programlama
Artelys Knitrodoğrusal, ikinci dereceden ve doğrusal olmayan programlama
Bonminkarışık tam sayı doğrusal olmayan programlama
BPMPDdoğrusal ve ikinci dereceden programlama
COIN-OR CBCkarışık tamsayı programlama
PARA VEYA CLPdoğrusal programlama
KONOPdoğrusal olmayan programlama
Couenne[16]tamsayı doğrusal olmayan programlama (MINLP)
CPLEXdoğrusal, ikinci dereceden, ikinci dereceden koni ve karışık tamsayı programlama
CPLEX CP Optimizer[17]kısıt programlama
FİLTREdoğrusal olmayan programlama
FortMPdoğrusal, ikinci dereceden ve karışık tamsayı programlama
Gecode[18]kısıt programlama
Gurobidoğrusal, ikinci dereceden, ikinci dereceden koni ve karışık tamsayı programlama
IPOPTdoğrusal olmayan programlama
JaCoP[19]kısıt programlama
LGO[20]küresel ve yerel doğrusal olmayan optimizasyon
lp_solve[21]doğrusal ve karışık tamsayı programlama
MINOSdoğrusal ve doğrusal olmayan programlama
MİNTOkarışık tamsayı programlama
MOSEKdoğrusal, karışık tamsayı doğrusal, ikinci dereceden, karma tam sayı karesel, ikinci dereceden kısıtlanmış, konik ve dışbükey doğrusal olmayan programlama
Octeract MotoruDiferansiyel veya integral terimleri olmayan her türlü optimizasyon problemi, kesintili problemler dahil min ve max temel fonksiyonlar.
SCIPkarışık tamsayı programlama
SNOPTdoğrusal olmayan programlama
Sulum[22]doğrusal ve karışık tamsayı programlama
WORHPdoğrusal olmayan programlama
XAdoğrusal ve karışık tamsayı programlama
Xpressdoğrusal ve dışbükey ikinci dereceden optimizasyon ve bunların karışık tam sayı karşılıkları

Ayrıca bakınız

Referanslar

  1. ^ a b Dörtlü, Robert; Eşcinsel, David M; Kernighan Brian W (2003). AMPL: matematiksel programlama için bir modelleme dili. ABD: Duxbury Press / Brooks / Cole Publishing Company. ISBN  978-0-534-38809-6.
  2. ^ "Uygun pozisyon". Alındı 29 Temmuz 2011.
  3. ^ "Hakkında". Alındı 11 Ağustos 2015.
  4. ^ a b Dörtlü, Robert; Gay, David M. (2002). "Cebirsel Modelleme Dilini Kısıt Programlamayı Destekleyecek Şekilde Genişletme". INFORMS Bilgi İşlem Dergisi. 14 (4): 322–344. CiteSeerX  10.1.1.8.9699. doi:10.1287 / ijoc.14.4.322.2825.
  5. ^ "Platformlar". AMPL Optimizations Inc.
  6. ^ "Optimizasyon için NEOS Sunucusu". Alındı 11 Ağustos 2015.
  7. ^ "AMPL'yi deneyin!". Alındı 11 Ağustos 2015.
  8. ^ "AMPL İndirmeleri". Arşivlenen orijinal 26 Mayıs 2015. Alındı 11 Ağustos 2015.
  9. ^ Dörtlü, Robert; Gay, David M.; Kernighan, Brian W. (1990). "Matematiksel Programlama için Modelleme Dili" (PDF). Yönetim Bilimi. 36 (5): 519–554–83. doi:10.1287 / mnsc.36.5.519.
  10. ^ BİLGİ VERİR. "ICS - BİLGİLER" (PDF). Alındı 11 Ağustos 2015.
  11. ^ "Google Toplulukları".
  12. ^ BİLGİ VERİR. "INFORMS Etki Ödülü". Arşivlenen orijinal 22 Ekim 2013 tarihinde. Alındı 11 Ağustos 2015.
  13. ^ "Google Toplulukları". Alındı 11 Ağustos 2015.
  14. ^ Dantzig, George (2016) [1963]. "3. Bir Doğrusal Programlama Modeli Formüle Etme". Doğrusal Programlama ve Uzantılar. Princeton University Press. s. 32–62. ISBN  978-1-4008-8417-9.
  15. ^ "Çözücüler - AMPL". Alındı 21 Ocak 2018.
  16. ^ "Couenne". Arşivlenen orijinal 29 Ekim 2013 tarihinde. Alındı 27 Ekim 2013.
  17. ^ "mp / çözücüler / ilogcp ana bilgisayarda · ampl / mp · GitHub". GitHub. Alındı 11 Ağustos 2015.
  18. ^ "mp / çözücüler / gecode at master · ampl / mp · GitHub". GitHub. Alındı 11 Ağustos 2015.
  19. ^ "mp / çözücüler / jacop, ana bilgisayarda · ampl / mp · GitHub". GitHub. Alındı 11 Ağustos 2015.
  20. ^ "LGO - AMPL". Alındı 11 Ağustos 2015.
  21. ^ "AMPL'den lpsolve kullanma". Alındı 11 Ağustos 2015.
  22. ^ "mp / solvers / sulum at master · ampl / mp · GitHub". GitHub. Alındı 11 Ağustos 2015.
  23. ^ "GLPK resmi sitesi". Alındı 17 Eylül 2020.

Dış bağlantılar