• Non ci sono risultati.

Introduzione. AMPL Introduzione. F. Rinaldi. Dipartimento di Matematica Università di Padova. Corso di Laurea Matematica. F. Rinaldi AMPL Introduzione

N/A
N/A
Protected

Academic year: 2022

Condividi "Introduzione. AMPL Introduzione. F. Rinaldi. Dipartimento di Matematica Università di Padova. Corso di Laurea Matematica. F. Rinaldi AMPL Introduzione"

Copied!
14
0
0

Testo completo

(1)

AMPL Introduzione

F. Rinaldi

Dipartimento di Matematica Università di Padova

Corso di Laurea Matematica

(2)

Outline

AMPL Introduzione

Introduzione

(3)

◮ Linguaggio di modellazione per la programmazione matematica

◮ Serve ad esprimere un problema di ottimizzazione in una forma comprensibile ad un solutore

◮ Linguaggio algebrico: Contiene diverse primitive per esprimere la notazione matematica normalmente utilizzata per problemi di ottimizzazione (es.

sommatorie, funzioni matematiche, etc.)

(4)

Primo Esempio

Esempio.mod var x1;

var x2;

minimize obiettivo: x1+x2;

subject to v1: x1 >= 0;

subject to v2: x2 >= 0;

subject to v3: x1 <= 10;

subject to v4: x2 <= 10;

s.t. v5: x1-x2 <= 0;

(5)

AMPL consente di scrivere problema in un unico file (con estensione .mod)

Problemi Reali

Problemi reali hanno molte variabili, molti vincoli, molti parametri

Scrivere il modello matematico e la sua traduzione in AMPL come fatto in precedenza impensabile:

◮ il modello e il codice risultano illeggibili

◮ una modifica del modello a posteriori richiede un grande sforzo

Meglio separare file modello (estensione.mod) e file dati (estensione .dat)

(6)

Consigli

AMPL consente di scrivere problema in un unico file (con estensione .mod)

Problemi Reali

Problemi reali hanno molte variabili, molti vincoli, molti parametri

Scrivere il modello matematico e la sua traduzione in AMPL come fatto in precedenza impensabile:

◮ il modello e il codice risultano illeggibili

◮ una modifica del modello a posteriori richiede un grande sforzo

Meglio separare file modello (estensione.mod) e file dati (estensione .dat)

(7)

AMPL consente di scrivere problema in un unico file (con estensione .mod)

Problemi Reali

Problemi reali hanno molte variabili, molti vincoli, molti parametri

Scrivere il modello matematico e la sua traduzione in AMPL come fatto in precedenza impensabile:

◮ il modello e il codice risultano illeggibili

◮ una modifica del modello a posteriori richiede un grande sforzo

Meglio separare file modello (estensione.mod) e file dati (estensione .dat)

(8)

Dettagli

Costruzione del modello in 2 FASI:

Dichiarazione: Descriviamo la struttura logica del modello del problema in esame

Definizione: Indichiamo i valori numerici del problema stesso

File utilizzati:

◮ Dichiarazione in File Modello (.mod)

◮ Definizione in File Dati (.dat)

◮ Per uno stesso modello, dati possono essere contenuti in uno o piu file .dat

(9)

◮ Si considera un modello di programmazione lineare in forma standard con n variabili e m vincoli

min Xn

j=1

cjxj

Xn

j=1

aijxj=bi i=1, . . . ,m

xj≥0 j=1, . . . ,n

(1)

(10)

Modello AMPL

FS.mod

# INSIEMI DEL PROBLEMA

# insieme delle colonne set C;

# insieme delle righe set R;

# PARAMETRI DEL PROBLEMA

# coefficienti f.o.

param c{C};

# coefficienti vincoli param a{R,C};

# coefficienti termini noti param b{R};

# VARIABILI var x{C};

# F.O.

minimize obj: sum{j in C}c[j] * x[j];

# VINCOLI

subject to vin1 {i in R}: sum{j in C}a[i,j] * x[j] = b[i];

(11)

◮ Si considera un modello di programmazione lineare in forma standard con 3 variabili e 2 vincoli

min x1+2x23x3 4x14x2+10x3=0

−4x1+12x2+6x3=2 xj≥0 j=1, . . . ,3

(2)

(12)

Dati Modello Reale

FS.dat

# INSIEMI DEL PROBLEMA set C := c1 c2 c3;

set R := r1 r2;

# PARAMETRI DEL PROBLEMA param a: c1 c2 c3:=

r1 4 -4 10 r2 -4 12 6;

param: b:=

r1 0 r2 2;

param: c:=

c1 1 c2 2 c3 -3;

(13)

Comandi AMPL per risolvere problema sono vari (model, data, options, solve, display, ...)

◮ Possibile eseguire da riga di comando in ambiente AMPL

◮ Possibile scrivere questi comandi una volta per tutte in un file .run FS.run

reset; # cancella eventuali dati già memorizzati model FS.mod; # carica il modello

data FS.dat; # carica i dati

option solver cplex; # setta cplex come solutore solve; # risolve il modello

display x; # visualizza il valore ottimo delle variabili x

Per lanciare la risoluzione basta aprire un terminale nella cartella contenente i file .mod, .dat e .run e scrivere

ampl FS.run

(14)

Risultato

◮ Al termine dell’esecuzione otteniamo il seguente output

Risultato AMPL

CPLEX 11.2.0: optimal solution; objective 0.1111111111 0 simplex iterations (0 in phase I)

ampl: display x;

x [*] :=

c1 0 c2 0.138889 c3 0.0555556

;

Riferimenti

Documenti correlati

Se un processo inizialmente attivo esegue il seguente codice, il sistema si troverà con 8 processi che eseguono InstrX, di cui uno è il processo

• Per effettuare correzioni, barrare tutta la linea e scrivere CHIARAMENTE e INEQUIVOCABILMENTE la risposta corretta a destra della linea

Nell'esecuzione di richieste al server PHP è quindi più favorita perché può fare delle richieste SOAP o REST che non fanno altro che eseguire altro codice PHP (nel nostro caso vi

L’approccio di Fokker-Planck, invece, si basa sul fatto che la probabilit` a di trovare la particella in un certo punto ` e una costante del moto: si pu` o quindi scrivere

Questi termini finiti devono però anche soddisfare le richieste che abbiamo fatto e in particolare dovranno avere supporto sulla linea di universo della particella, essere simmetrici

Dopo aver introdotto il modello di Rouse per cui il centro di massa di un polimero immerso in un bagno termico diffonde con coefficiente di diffusione inversamente proporzionale

Il modello mimetico rappresenta un approccio alternativo, modicare la gravità in modo da spiegare la presenza della materia ed energia oscura senza l'introduzione di nuove

Per questo motivo ciò che si fa in ogni modello inflazionario è specificare una forma arbitraria del potenziale V (φ), regolata a sua volta da opportuni parametri, e da tale