homepage - dipartimento di matematica e informaticafuduli/lingo.pdf · created date: 5/20/2006...
TRANSCRIPT
LINGO - www.lindo.com• Linear
. – p.1/13
LINGO - www.lindo.com• Linear• INteractive and
. – p.1/13
LINGO - www.lindo.com• Linear• INteractive and• General
. – p.1/13
LINGO - www.lindo.com• Linear• INteractive and• General• Optimizer
. – p.1/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”• un commento può anche esser intercalato fra le
istruzioni;
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”• un commento può anche esser intercalato fra le
istruzioni;• colori del testo:
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”• un commento può anche esser intercalato fra le
istruzioni;• colori del testo:
• blu: parole-chiave
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”• un commento può anche esser intercalato fra le
istruzioni;• colori del testo:
• blu: parole-chiave• verde: commenti
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”• un commento può anche esser intercalato fra le
istruzioni;• colori del testo:
• blu: parole-chiave• verde: commenti• nero: altro testo
. – p.2/13
Programmare in LINGO• Un programma in LINGO consiste in una serie di
istruzioni;• ogni istruzione deve terminare con “;”• è possibile inserire commenti: essi iniziano con
“!” e terminano con “;”• un commento può anche esser intercalato fra le
istruzioni;• colori del testo:
• blu: parole-chiave• verde: commenti• nero: altro testo
• non c’è differenza fra carattere minuscolo emaiuscolo . – p.2/13
Programmare in LINGO• Ad un programma in LINGO si può assegnare un
titolo tramite il comando “title” (opzionale);
. – p.3/13
Programmare in LINGO• Ad un programma in LINGO si può assegnare un
titolo tramite il comando “title” (opzionale);• un programma in LINGO può essere concluso
con il comando “end” (opzionale); tutto ciò cheviene scritto dopo il comando “end” vieneignorato;
. – p.3/13
Programmare in LINGO• Ad un programma in LINGO si può assegnare un
titolo tramite il comando “title” (opzionale);• un programma in LINGO può essere concluso
con il comando “end” (opzionale); tutto ciò cheviene scritto dopo il comando “end” vieneignorato;
• a funzione obiettivo e vincoli si può assegnare unnome (da scrivere fra parentesi quadre).
. – p.3/13
Le variabili decisionali inLINGO
• I nomi delle variabili decisionali devonocominciare sempre con un carattere alfabetico(seguito da caratteri alfabetici o numerici, ounderscore, fino a un massimo di 32)
. – p.4/13
Le variabili decisionali inLINGO
• I nomi delle variabili decisionali devonocominciare sempre con un carattere alfabetico(seguito da caratteri alfabetici o numerici, ounderscore, fino a un massimo di 32)
• per default, le variabili decisionali in LINGOsono≥ 0
. – p.4/13
Le variabili decisionali inLINGO
• I nomi delle variabili decisionali devonocominciare sempre con un carattere alfabetico(seguito da caratteri alfabetici o numerici, ounderscore, fino a un massimo di 32)
• per default, le variabili decisionali in LINGOsono≥ 0
• variabilex libera in segno:@free(x);
. – p.4/13
Le variabili decisionali inLINGO
• I nomi delle variabili decisionali devonocominciare sempre con un carattere alfabetico(seguito da caratteri alfabetici o numerici, ounderscore, fino a un massimo di 32)
• per default, le variabili decisionali in LINGOsono≥ 0
• variabilex libera in segno:@free(x);• variabilex intera:@gin(x);
. – p.4/13
Le variabili decisionali inLINGO
• I nomi delle variabili decisionali devonocominciare sempre con un carattere alfabetico(seguito da caratteri alfabetici o numerici, ounderscore, fino a un massimo di 32)
• per default, le variabili decisionali in LINGOsono≥ 0
• variabilex libera in segno:@free(x);• variabilex intera:@gin(x);• variabilex binaria:@bin(x);
. – p.4/13
La funzione obiettivo in LINGO• Massimizzare:max =
. – p.5/13
La funzione obiettivo in LINGO• Massimizzare:max =
• minimizzare:min =
. – p.5/13
I modelli in LINGO• Modello semplice
. – p.6/13
I modelli in LINGO• Modello semplice• modello complesso
. – p.6/13
I modelli complessi• Sono modelli scritti tramite la definizione di
insiemi (SETS) e dati (DATA)
. – p.7/13
I modelli complessi• Sono modelli scritti tramite la definizione di
insiemi (SETS) e dati (DATA)• gli insiemi possono essere:
. – p.7/13
I modelli complessi• Sono modelli scritti tramite la definizione di
insiemi (SETS) e dati (DATA)• gli insiemi possono essere:
• primitivi
. – p.7/13
I modelli complessi• Sono modelli scritti tramite la definizione di
insiemi (SETS) e dati (DATA)• gli insiemi possono essere:
• primitivi• derivati: definiti cioè a partire da altri insiemi
(primitivi o derivati)
. – p.7/13
SETS
•
SETS:SET_NAME / MEMBER_LIST /:
ATTRIBUTE_LIST;ENDSETS
. – p.8/13
SETS
•
SETS:SET_NAME / MEMBER_LIST /:
ATTRIBUTE_LIST;ENDSETS
• MEMBER_LIST e ATTRIBUTE_LIST sonocampi opzionali
. – p.8/13
SETS
•
SETS:SET_NAME / MEMBER_LIST /:
ATTRIBUTE_LIST;ENDSETS
• MEMBER_LIST e ATTRIBUTE_LIST sonocampi opzionali
• MEMBER_LIST:
. – p.8/13
SETS
•
SETS:SET_NAME / MEMBER_LIST /:
ATTRIBUTE_LIST;ENDSETS
• MEMBER_LIST e ATTRIBUTE_LIST sonocampi opzionali
• MEMBER_LIST:• implicita (esempio: 1..7)
. – p.8/13
SETS
•
SETS:SET_NAME / MEMBER_LIST /:
ATTRIBUTE_LIST;ENDSETS
• MEMBER_LIST e ATTRIBUTE_LIST sonocampi opzionali
• MEMBER_LIST:• implicita (esempio: 1..7)• esplicita (inserendo il nome di ciascun
membro, uno per uno)
. – p.8/13
DATA
•
DATA:ATTRIBUTE_LIST = VALUE_LIST;
ENDDATA
. – p.9/13
Function SUM
•@SUM ( SET_NAME ( SET_INDEX_LIST )
| CONDITION : EXPRESSION )
. – p.10/13
Function FOR
•@FOR ( SET_NAME ( SET_INDEX_LIST )
| CONDITION : EXPRESSION )
. – p.11/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:• #EQ# =
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:• #EQ# =• #NE# 6=
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:• #EQ# =• #NE# 6=• #GE# ≥
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:• #EQ# =• #NE# 6=• #GE# ≥• #GT# >
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:• #EQ# =• #NE# 6=• #GE# ≥• #GT# >
• #LT# <
. – p.12/13
Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti
operatori logici:• #EQ# =• #NE# 6=• #GE# ≥• #GT# >
• #LT# <
• #LE# ≤
. – p.12/13
Interazione con programmi ofile esterniUn programma LINGO può
• leggere i dati da un file di testo;
. – p.13/13
Interazione con programmi ofile esterniUn programma LINGO può
• leggere i dati da un file di testo;• scrivere i risultati su un file di testo;
. – p.13/13
Interazione con programmi ofile esterniUn programma LINGO può
• leggere i dati da un file di testo;• scrivere i risultati su un file di testo;• leggere i dati da un file Excel;
. – p.13/13
Interazione con programmi ofile esterniUn programma LINGO può
• leggere i dati da un file di testo;• scrivere i risultati su un file di testo;• leggere i dati da un file Excel;• essere richiamato da un file Excel come risolutore
(tramite la definizione di una macro).
. – p.13/13