Manual Xpress

  • View
    77

  • Download
    8

Embed Size (px)

Text of Manual Xpress

Introduzione allutilizzo di Xpress (student edition)PROGETTO E SIMULAZIONE DEI SISTEMI DI PRODUZIONE E SERVIZIO Gioved 4 Giugno 2009

Traduzione del modello in linguaggio MOSEL (Xpress-MP)Struttura dei modelli in Xpress-MP (Mosel) Intestazione Parametri Dichiarazioni Costruzione del modello Funzione obiettivo Vincoli

Soluzione del modello Visualizzazione dei risultati a video Esportazione dei risultati su file dati

Intestazioni del modello Ogni programma Mosel inizia con la parola chiave model, seguita dal nome del modello scelto dall'utente. Il programma Mosel termina con la parola chiave endmodel.

Traduzione del modello in linguaggio MOSEL (Xpress-MP)Intestazione del modellomodel Cellular Manufacturing" uses "mmxprs" ! Use Xpress-Optimizer .

end-model

Definizioni dei parametri Pu essere utile definire alcuni parametri (costanti) da utilizzare allinterno del modello. Esempio: parameters DATAFILE= "folio.dat" ! File with problem data OUTFILE= "result.dat ! Output file MAXRISK = 1/3 ! Max. investment into high-risk values MAXVAL = 0. ! Max. investment per share MINAM = 0.5 ! Min. investment into N.-American values end-parameters

Dichiarazione oggetti (declarations) Si utilizza per introdurre gli insiemi, le variabili, i vettori di parametri. Si possono inserire diverse sezioni nel modello, ciascuna indicata con:declarations .. end-declarations

Esempi di dichiarazioniParametri: c:integer f:real IST=1..n d:array(IST) of integer Variabili: x:array(IST) of mpvar s: mpvar

Esempio funzione obiettivo! Objective: total return Return:= sum(s in SHARES) RET(s)*frac(s) . Maximize(Return)

Esempio espressione di insiemi di vincoli x(1)=0 forall(k in IST) x(k)>=0 sum(s in SHARES) frac(s) = 1 forall(k in IST)do y(k) is_binary s(k)=0

xk 0, sk 0 k {1,.., n}

Traduzione del modello CLSP in linguaggio MOSEL Funzione obiettivo Stock:=sum(k in IST)c(k)*x(k) FixedCharge:=sum(k in IST)f(k)*y(k) minimize(Stock+FixedCharge)

Traduzione del modello CLSP in linguaggio MOSELOutputforall(k in IST)do writeln("y(",k,") : ",getsol(y(k))) writeln("s(",k,") : ",getsol(s(k))) writeln("x(",k,") : ",getsol(x(k))) end-do writeln("funzione obiettivo: ",getsol(Fixedcharge)+ getsol(Stock)) writeln("End running model")

Caricamento dati da filedeclarations n:integer end-declarations

initializations from nomefiledati.dat" n end-initializations

Caricamento dati da filedeclarations IST=1..n c: array(IST) of integer f: array(IST) of integer C: array(IST) of integer d:array(IST) of integer end-declarations

Caricamento dati da fileinitializations from "DATI_LS.dat" dcfQ end-initializations declarations x:array(IST) of mpvar y:array(IST) of mpvar s:array(IST) of mpvar end-declarations

Descrizione del file datif:[100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100,100,100] d:[1,0,2,3,0,0,0,0,0,17,0,0,0,11,5,25,0,0,0,5,3,24,0,0,0] C:[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50, 50,50,50,50,50,50] c:[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5] n: 25

Esportazione output su file datifopen("RESULT_LS.dat",F_OUTPUT) forall(k in IST)do writeln("y(",k,") : ",getsol(y(k))) writeln("s(",k,") : ",getsol(s(k))) end-do writeln("funzione obiettivo: ",getsol(Stock)+ getsol(Fixedcharge)) writeln("End running model")

fclose(F_OUTPUT)