homepage - dipartimento di matematica e informaticafuduli/lingo.pdf · created date: 5/20/2006...

49
LINGO - www.lindo.com L inear . – p.1/13

Upload: others

Post on 03-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

LINGO - www.lindo.com• Linear

. – p.1/13

Page 2: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

LINGO - www.lindo.com• Linear• INteractive and

. – p.1/13

Page 3: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

LINGO - www.lindo.com• Linear• INteractive and• General

. – p.1/13

Page 4: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

LINGO - www.lindo.com• Linear• INteractive and• General• Optimizer

. – p.1/13

Page 5: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Programmare in LINGO• Un programma in LINGO consiste in una serie di

istruzioni;

. – p.2/13

Page 6: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Programmare in LINGO• Un programma in LINGO consiste in una serie di

istruzioni;• ogni istruzione deve terminare con “;”

. – p.2/13

Page 7: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 8: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 9: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 10: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 11: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 12: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 13: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 14: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Programmare in LINGO• Ad un programma in LINGO si può assegnare un

titolo tramite il comando “title” (opzionale);

. – p.3/13

Page 15: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 16: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 17: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 18: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 19: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 20: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 21: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 22: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

La funzione obiettivo in LINGO• Massimizzare:max =

. – p.5/13

Page 23: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

La funzione obiettivo in LINGO• Massimizzare:max =

• minimizzare:min =

. – p.5/13

Page 24: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

I modelli in LINGO• Modello semplice

. – p.6/13

Page 25: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

I modelli in LINGO• Modello semplice• modello complesso

. – p.6/13

Page 26: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

I modelli complessi• Sono modelli scritti tramite la definizione di

insiemi (SETS) e dati (DATA)

. – p.7/13

Page 27: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

I modelli complessi• Sono modelli scritti tramite la definizione di

insiemi (SETS) e dati (DATA)• gli insiemi possono essere:

. – p.7/13

Page 28: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

I modelli complessi• Sono modelli scritti tramite la definizione di

insiemi (SETS) e dati (DATA)• gli insiemi possono essere:

• primitivi

. – p.7/13

Page 29: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 30: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

SETS

SETS:SET_NAME / MEMBER_LIST /:

ATTRIBUTE_LIST;ENDSETS

. – p.8/13

Page 31: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

SETS

SETS:SET_NAME / MEMBER_LIST /:

ATTRIBUTE_LIST;ENDSETS

• MEMBER_LIST e ATTRIBUTE_LIST sonocampi opzionali

. – p.8/13

Page 32: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

SETS

SETS:SET_NAME / MEMBER_LIST /:

ATTRIBUTE_LIST;ENDSETS

• MEMBER_LIST e ATTRIBUTE_LIST sonocampi opzionali

• MEMBER_LIST:

. – p.8/13

Page 33: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 34: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 35: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

DATA

DATA:ATTRIBUTE_LIST = VALUE_LIST;

ENDDATA

. – p.9/13

Page 36: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Function SUM

•@SUM ( SET_NAME ( SET_INDEX_LIST )

| CONDITION : EXPRESSION )

. – p.10/13

Page 37: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Function FOR

•@FOR ( SET_NAME ( SET_INDEX_LIST )

| CONDITION : EXPRESSION )

. – p.11/13

Page 38: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Il campo | CONDITION• Il campo | CONDITION è un campo opzionale

. – p.12/13

Page 39: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti

operatori logici:

. – p.12/13

Page 40: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti

operatori logici:• #EQ# =

. – p.12/13

Page 41: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti

operatori logici:• #EQ# =• #NE# 6=

. – p.12/13

Page 42: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Il campo | CONDITION• Il campo | CONDITION è un campo opzionale• In CONDITION possono apparire i seguenti

operatori logici:• #EQ# =• #NE# 6=• #GE# ≥

. – p.12/13

Page 43: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 44: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 45: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 46: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

Interazione con programmi ofile esterniUn programma LINGO può

• leggere i dati da un file di testo;

. – p.13/13

Page 47: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 48: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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

Page 49: HomePage - Dipartimento di Matematica e Informaticafuduli/lingo.pdf · Created Date: 5/20/2006 7:40:51 PM

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