AMPL

AMPL, "A Mathematical Programming Language", är ett matematiskt modelleringsspråk för att ställa upp LP- och ILP-problem utvecklat vid Bell Labs. Språket är ganska likt den matematiska notation som används för optimeringsproblem och är därmed ganska enkelt att använda. För att lösa problemet anropas externa komplexa lösare för att få ett resultat.

Exempel

LP-problemet att maximera

z = 5 x 1 + 6 x 2 + 2 x 3 {\displaystyle z=5x_{1}+6x_{2}+2x_{3}\,}

under bivillkoren

3 x 1 + 2 x 2 + x 3 45 {\displaystyle 3x_{1}+2x_{2}+x_{3}\leq 45}
2 x 1 + x 2 + 2 x 3 30 {\displaystyle 2x_{1}+x_{2}+2x_{3}\leq 30}
3 x 1 3 x 2 + 4 x 3 45 {\displaystyle 3x_{1}-3x_{2}+4x_{3}\leq 45}

och x 1 , x 2 , x 3 0 {\displaystyle x_{1},x_{2},x_{3}\geq 0} kan i AMPL skrivas som (# markerar kommentarer):

#Variabeldefinition:
var x{1 .. 3} >= 0;

#Målfunktionsdefinition:
maximize z: 5*x[1] + 6*x[2] + 2*x[3];

#Bivillkor:
subject to biv1: 3*x[1] + 2*x[2] +   x[3] <= 45;
subject to biv2: 2*x[1] +   x[2] + 2*x[3] <= 30;
subject to biv3: 3*x[1] - 3*x[2] + 4*x[3] <= 45;