Lista över optimeringsprogram

Givet en transformation mellan ingångs- och utdatavärden, beskriven av en matematisk funktion f , handlar optimering om att generera och välja en bästa lösning från någon uppsättning tillgängliga alternativ, genom att systematiskt välja ingångsvärden från en tillåten uppsättning, beräkna utdata från funktionen, och registrera de bästa utdatavärdena som hittats under processen. Många verkliga problem kan modelleras på detta sätt. Till exempel kan ingångarna vara designparametrar för en motor, uteffekten kan vara strömförbrukningen, eller ingångarna kan vara affärsval och uteffekten kan vara den erhållna vinsten.

Ett optimeringsproblem , i detta fall ett minimeringsproblem, kan representeras på följande sätt

Givet: en funktion f : A R från någon mängd A till de reella talen
00 Sök efter: ett element x i A så att f ( x ) ≤ f ( x ) för alla x i A .

Vid kontinuerlig optimering är A någon delmängd av det euklidiska rummet Rn , ofta specificerad av en uppsättning begränsningar , likheter eller ojämlikheter som medlemmarna av A måste uppfylla. I kombinatorisk optimering A någon delmängd av ett diskret utrymme, som binära strängar, permutationer eller uppsättningar av heltal.

Användningen av optimeringsmjukvara kräver att funktionen f definieras i ett lämpligt programmeringsspråk och kopplas vid kompilering eller körning till optimeringsmjukvaran. Optimeringsmjukvaran kommer att leverera ingångsvärden i A , mjukvarumodulen som realiserar f kommer att leverera det beräknade värdet f ( x ) och, i vissa fall, ytterligare information om funktionen som derivator.

På detta sätt erhålls en tydlig separation av bekymmer: olika optimeringsmjukvarumoduler kan enkelt testas på samma funktion f , eller en given optimeringsmjukvara kan användas för olika funktioner f .

Följande tabeller ger en lista över anmärkningsvärd optimeringsprogramvara organiserad efter licens och affärsmodelltyp.

Gratis och öppen källkod

Ansökningar

namn Licens Beskrivning
ADMB BSD olinjärt optimeringsramverk, med automatisk differentiering .
STIGA GPL matematisk modellering kemisk processmodelleringssystem.
SÖTARE GPL testmiljö för optimering och linjär algebralösare .
GNU Octave GPL mjukvarupaket med ett programmeringsspråk på hög nivå, främst avsett för numeriska beräkningar; välkänt gratis alternativ till MATLAB .
Octeract Engine Community Octeract EULA parallell deterministisk global MINLP-lösare. Octeract Engine Community är en fullständig version av lösaren som är gratis att använda för alla ändamål.
Scilab CeCILL plattformsoberoende numeriskt beräkningspaket och ett högnivå, numeriskt orienterat programmeringsspråk med gratis ramverk för numerisk optimering.

Programvarubibliotek

namn Licens Beskrivning
ALGLIB GPL dubbellicensierade (GPL/kommersiellt) optimeringsbibliotek (LP, QP och olinjära programmeringsproblem), eventuellt med automatisk differentiering . Tvärspråk: C++, C#.
MYNT-ELLER EPL 1.0 heltalsprogrammering, linjär programmering, olinjär programmering.
cuOpt TBD - NVIDIA GPU-accelererad logistiklösare som använder heuristik och metaheuristik för att beräkna komplexa fordonsdirigeringsproblemvarianter med ett brett utbud av begränsningar. Skrivet i C++ med Python API:er. Early Access-program tillgängligt för medlemmar. Gratis att gå med.
Dlib BSL-1.0 unconstrained/box-constrained olinjär/QP-optimeringsbibliotek skrivet i C++ .
GEKKO MIT maskininlärning och optimering av blandade heltals- och differentialalgebraiska ekvationer i Python.
GLPK GPL GNU Linear Programming Kit med C API .
Höga nivåer MIT linjär programmering (LP), blandad heltalsprogrammering (MIP) och konvex kvadratisk programmering (QP).
IPOPT EPL (var CPL ) storskalig olinjär optimerare för kontinuerliga system (kräver gradient), C++ (tidigare Fortran och C ). Det blev en del av COIN-OR.
MINUIT (nu MINUIT2) LGPL unconstrained optimizer internt utvecklad på CERN .
Öppna MDAO Apache-licens Multidisciplinärt ramverk för design, analys och optimering (MDAO), skrivet i Python . Utvecklingen leds från NASA Glenn Research Center , med stöd från NASA Langley Research Center .
OptaPlanner Apache-licens Java begränsningslösare med konstruktionsheuristik och metaheuristik. Integreras med Spring Boot och Quarkus . Körs på Kotlin och Scala också.
SCIP Apache-licens lösare för blandad heltalsprogrammering (MIP) och blandad heltals icke-linjär programmering (MINLP).
SciPy BSD allmänt numeriskt paket för Python, med visst stöd för optimering.

Proprietär programvara

  • AIMMS – optimeringsmodelleringssystem, inklusive GUI-byggnadsfaciliteter.
  • ALGLIB – dubbellicensierat (GPL/kommersiellt) begränsat kvadratiskt och olinjärt optimeringsbibliotek med C++ och C#-gränssnitt.
  • Altair HyperStudy – design av experiment och multidisciplinär designoptimering.
  • AMPL – modelleringsspråk för storskalig linjär, blandad heltals- och olinjär optimering.
  • ANTIGONE – en deterministisk global optimeringslösning för MINLP.
  • APMonitor – modelleringsspråk och optimeringssvit för storskaliga, olinjära, blandade heltals-, differential- och algebraiska ekvationer med gränssnitt till MATLAB, Python och Julia.
  • Artelys Knitro – storskalig olinjär optimering för kontinuerlig och blandad heltalsprogrammering.
  • ASTOS – AeroSpace Trajectory Optimization Software för launcher, re-entry och generiska flygproblem.
  • BARON – optimering av algebraiska olinjära och olinjära problem med blandade heltal.
  • COMSOL Multiphysics – en plattformsoberoende mjukvara för finita elementanalys , lösare och multifysiksimulering .
  • CPLEX – heltals-, linjär- och kvadratisk programmering.
  • FEATool Multiphysics – FEA GUI Toolbox för MATLAB.
  • FICO Xpress – heltals, linjär och kvadratisk och olinjär programmering.
  • FortMP – heltals-, linjär- och kvadratisk programmering.
  • FortranCalculus Compiler – språk på högre nivå för kontinuerlig modellering, simulering och optimering. Löser begränsade, implicita, icke-linjära, algebraiska och/eller vanliga differentialekvationer med hjälp av lösare lagrade i ett bibliotek. De flesta lösare använder automatisk differentiering för att beräkna den jakobianska eller hessiska matrisen.
  • FortSP – stokastisk programmering.
  • GAMS – General Algebraic Modeling System.
  • de:Gurobi – stöder en rad optimeringsparadigm.
  • HEEDS MDO – multidisciplinär designoptimering med SHERPA, en hybrid, adaptiv optimeringsalgoritm.
  • IMSL Numerical Libraries – linjära, kvadratiska, olinjära och glesa QP- och LP-optimeringsalgoritmer implementerade i standardprogrammeringsspråken C, Java, C# .NET, Fortran och Python.
  • IOSO – (Indirekt optimering på basis av självorganisering) en multiobjektiv, multidimensionell olinjär optimeringsteknologi.
  • Kimeme – en öppen plattform för multi-objektiv optimering och multidisciplinär designoptimering.
  • LINDO – (Linear, Interactive, and Discrete Optimizer) ett mjukvarupaket för linjär programmering, heltalsprogrammering, olinjär programmering , stokastisk programmering och global optimering. "Vad är bäst!" Excel-tillägget utför linjär, heltals- och olinjär optimering med hjälp av LINDO.
  • LIONsolver – en integrerad programvara för datautvinning , analys , modellering av intäkt och intelligent optimering och reaktiv affärsinformation .
  • modeFRONTIER – en integrationsplattform för multi-objektiv och multidisciplinär optimering, som ger en sömlös koppling med tredjeparts tekniska verktyg, möjliggör automatisering av designsimuleringsprocessen och underlättar analytiskt beslutsfattande.
  • Lönn – linjär, kvadratisk och olinjär, kontinuerlig och heltalsoptimering. Inskränkt och obegränsad. Global optimering med tilläggsverktygslåda.
  • MATLAB – linjära, heltals-, kvadratiska och olinjära problem med Optimization Toolbox ; multipla maxima, multipla minima och icke-släta optimeringsproblem; uppskattning och optimering av modellparametrar.
  • MIDACO är ett lättviktigt mjukvaruverktyg för enkel- och multiobjektsoptimering baserat evolutionär datoranvändning . Skrivet i C/C++ och Fortran med gateways till Excel, VBA, Java, Python, Matlab, Octave, R, C# och Julia.
  • Mathematica – storskalig multivariat begränsad och obegränsad, linjär, kvadratisk och olinjär, kontinuerlig och heltalsoptimering.
  • ModelCenter – en grafisk miljö för integration, automatisering och designoptimering.
  • MOSEK – linjär, kvadratisk, konisk och konvex olinjär, kontinuerlig och heltalsoptimering.
  • NAG – linjär, kvadratisk, olinjär, summor av kvadrater av linjära eller olinjära funktioner; linjär, gles linjär, olinjär, begränsad eller inga begränsningar; lokal och global optimering; kontinuerliga problem eller heltalsproblem.
  • NMath – linjär, kvadratisk och olinjär programmering.
  • Octeract Engine – en deterministisk global optimeringslösning för MINLP. Octeract Engine Community är gratis att använda, och betalplaner finns för ytterligare funktioner.
  • OptimJ – Java-baserat modelleringsspråk. Premium Edition innehåller stöd för Mosek- och CPLEX-lösare.
  • Optimus-plattform – en plattform för processintegration och designoptimering utvecklad av Noesis Solutions.
  • optiSLang – mjukvarulösningar för CAE-baserad känslighetsanalys, optimering och robusthetsutvärdering.
  • OptiY – en designmiljö som tillhandahåller moderna optimeringsstrategier och avancerade probabilistiska algoritmer för osäkerhet, tillförlitlighet, robusthet, känslighetsanalys, datautvinning och metamodellering.
  • OptiStruct – prisbelönt CAE-teknologi för konceptuell designsyntes och strukturell optimering.
  • PottersWheel – parameteruppskattning i vanliga differentialekvationer (MATLAB verktygslåda, gratis för akademiskt bruk).
  • pSeven – mjukvaruplattform för automatisering av teknisk simulering och analys, multidisciplinär optimering och datautvinning, utvecklad av DATADVANCE .
  • SAS – en mjukvarusvit utvecklad av SAS Institute för avancerad analys (statistik, prognoser, maskininlärning, optimering, etc.), business intelligence, customer intelligence, data management, risk management, och många fler.
  • SmartDO – multidisciplinär global designoptimering, specialiserad på datorstödd ingenjörskonst (CAE). med hjälp av direkta globala sökmetoder.
  • SNOPT – storskaliga optimeringsproblem.
  • Unscrambler X – programvara för produktformulering och processoptimering.
  • TOMLAB – stöder global optimering, heltalsprogrammering, alla typer av minsta kvadrater, linjär, kvadratisk och obegränsad programmering för MATLAB . TOMLAB stöder lösare som CPLEX , SNOPT , KNITRO och MIDACO .
  • VisSim – ett visuellt blockschemaspråk för simulering och optimering av dynamiska system .
  • WORHP – en storskalig gles lösare för kontinuerlig olinjär optimering.

Gratisprogram/gratis för akademiskt bruk

Se även