Modelowanie w pakiecie AMPL

Nasza ocena:

5
Pobrań: 175
Wyświetleń: 1204
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Modelowanie w pakiecie AMPL - strona 1 Modelowanie w pakiecie AMPL - strona 2

Fragment notatki:



Ogólne zasady konstruowania modelu :
nazwy zmiennych - długość praktycznie dowolna, rozróżniane duże i małe litery.
każde wyrażenie zakończone jest średnikiem „ ; ”
komentarz zaczyna się od znaku „ # ” i jest do końca linii;
wyrażenie :

Opis zadania:
N studentów musi przed sesją przeczytać M. Książek. Każdy i-ty student potrzebuje na przeczytanie j-tej książki tij czasu. Książki mogą być czytane w dowolnej kolejności, przy czym w danej chwili tylko jedna osoba może czytać daną książkę i nie może czytać więcej niż jednej książki jednocześnie.

Modelowanie w pakiecie AMPL
Język AMPL
Język AMPL umożliwia wygodne definiowanie modelu w sposób podobny do zapisu stosowanego w literaturze. Podstawowe słowa kluczowe: set, param, var, minimize, maximize, subject to.
set - definicje (deklaracje) zbiorów (indeksów)
param - definicje (deklaracje) stałych modelu
var - deklaracje zmienne modelu
minimize, maximize - określenie funkcji celu
subject to - ograniczenia
Ogólne zasady konstruowania modelu :
nazwy zmiennych - długość praktycznie dowolna, rozróżniane duże i małe litery.
każde wyrażenie zakończone jest średnikiem „ ; ”
komentarz zaczyna się od znaku „ # ” i jest do końca linii;
wyrażenie :
zapisuje się następująco:
{ i in N}: sum{j in M.} x[ i, j ] = y[ i ];
sposoby definiowania zmiennych tablicowych : param A:= 1 1
2 2 3 3 ;
param B :
1 2 3 4 :=
1 4 3 0 1
2 3 4 1 0
3 3 0 2 3;
param C default 0:=
[0,*] 1 4 2 7 3 6 4 10 5 13 [1,*] 3 3 4 7 5 10 [2,*] 3 1 4 5 5 8;
przykład definicji zbioru indeksów:
set N :=
(0,*) 1 2 3 4
(1,*) 3 4;
Przykład 1
Zadanie programowania liniowego
min x1+2x2+3x3 przy ograniczeniach: -x1+x2+x3 = 5
12x1-9x2+9x3 >= 8
x1,x2,x3 >= 0
# zapis w języku AMPL plik *.mod
var x1 >=0;
var x2 >=0;
var x3 >=0;
minimize funkcja_celu:
x1+2*x2+3*x3;
# p.o.
subject to ograniczenie1:
-x1+x2+x3 = 5;
subject to ograniczenie2:
12*x1-9*x2+9*x3 >=8;
Ten sam przykład z zastosowaniem stałych modelu jako tablic jednowymiarowych.
# Plik *.mod
var x{1..3} >=0;
param A{1..3};
param B{1..3};
param C{1..3};
minimize funkcja_celu:
sum{i in 1..3} A[i]*x[i];
# p.o.
subject to ograniczenie1:
sum{i in 1..3} B[i]*x[i] = 5;
subject to ograniczenie2:
sum{i in 1..3} C[i]*x[i] >=8;
# Plik *.dat
param A:= 1 1
2 2
3 3 ;
param B:=
1 -1
2 1
3 1;
param C:= 1 12
2 -9
3 9;
Przykład 2
Opis zadania:
N studentów musi przed sesją przeczytać M. Książek. Każdy i-ty student potrzebuje na przeczytanie j-tej książki tij czasu. Książki mogą być czytane w dowolnej kolejności, przy czym w danej chwili tylko jedna osoba może czytać daną książkę i nie może czytać więcej niż jednej książki jednocześnie. ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz