Appunti sul linguaggio di programmazione MPL

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti sul linguaggio di programmazione MPL"

Transcript

1 Appunti sul linguaggio di programmazione MPL Lorenzo Brunetta, Michele D Amico e Ivan Luzzi Milano, Agosto Dipartimento di Elettronica e Informazione, Politecnico of Milano, Piazza L. da Vinci 32, Milano, brunetta@elet.polimi.it 2Dipartimento di Matematica Pura e Applicata, Università di Padova, Via Belzoni 7, Padova ITALY, damico@math.unipd.it 3Dipartimento di Matematica Pura e Applicata, Università di Padova, Via Belzoni 7, Padova ITALY, iluzzi@libero.it

2 Indice 1 Introduzione 1 2 Programmazione con il linguaggio MPL Scrivere e risolvere un Modello con MPL La Prima Sessione in MPL Utilizzare il Sistema di Aiuto in MPL Caratteristiche generali Struttura di un programma MPL TITLE INDEX DATA DECISION MACROS MODEL SUBJECT TO BOUNDS FREE INTEGER e BINARY Un modello di bilanciamento della produzione Formulazione del Modello Vedere e Analizzare la Soluzione Esempi di risoluzione di problemi classici della Programmazione Lineare Un problema di assegnamento Un primo problema dei trasporti Un problema della dieta Un problema di produzione più complesso Un Modello di Piani cazione della Produzione a Multi-Periodo Formulazione del Modello Risolvere il Modello e Analizzare la Soluzione I

3 6 Un Modello di Piani cazione con più Impianti di Produzione Formulazione del Modello Risolvere il Modello e Analizzare la Soluzione Modelli di Trasporto Usare la Condizione Where sui Vettori di Variabili Vincoli di Bilanciamento degli Impianti Un Modello di trasporto tra impianti di produzione Formulazione del modello Risolvere il Modello e Analizzare la Soluzione Un Modello con Più Macchinari Formulazione del Modello Risolvere il Modello e Analizzare la Soluzione II

4 L obiettivo di queste dispensa è quello di fornire una guida in italiano utile per apprendere le idee di base di uno dei software di ottimizzazione più diffusi. Gli argomenti trattati sono di livello elementare e, leggendo queste pagine, chiunque abbia un minimo di dimestichezza con un qualsiasi linguaggio di programmazione dovrebbe poter apprendere velocemente la metodologia necessaria per creare e risolvere problemi di ottimizzazione lineare. Le pagine che seguono hanno quindi uno scopo puramente didattico e speriamo possano essere uno strumento utile a chi si avvicina per la prima volta a questo programma di ottimizzazione. Nel primo capitolo viene spiegata la loso a di base sulla quale si fondano i software detti generatori algebrici di modelli. Nel secondo capitolo viene introdotta la forma di base di un modello in MPL. Si è volutamente data una struttura più rigida di quella effettivamente necessaria per aiutare chi si trova per la prima volta ad affrontare questo metodo di programmazione a individuare i vari passi necessari per tradurre un problema di ottimizzazione in un modello MPL. Nel terzo, quinto, sesto, settimo ed ottavo capitolo sono discussi i modelli contenuti nel Tutorial di MPL. Nel quarto capitolo sono discussi e tradotti in modelli MPL alcuni classici problemi di programmazione lineare. È possibile ottenere la versione studenti del software MPL con licenza d uso semestrale al sito III

5 Capitolo 1 Introduzione Ai sostanziali progressi ottenuti nella programmazione matematica dagli anni 50 agli anni 70 non è corrisposto un adeguato utilizzo applicativo degli stumenti matematici sviluppati. Questo è dovuto, in gran parte, alle difficoltà computazionali ed informatiche insite nella stesura del modello, nella raccolta ed organizzazione dei dati, nella programmazione degli algoritmi solutori e nell analisi dei risultati ottenuti. Quindi, gli sforzi ottenuti in campo matematico, risultavano inutilizzabili a livello applicativo poiché l effettivo incremento nella velocità e potenza dei solutori si scontrava con la necessità di creare software che interrogasse questi solutori e che gestisse modelli e dati appartenenti al modo reale. MPL (e in generale i programmi detti generatori algebrici di modelli ) nasce proprio per ovviare a questa difficoltà e si pongono come obiettivi: fornire un linguaggio di programmazione ad alto livello che permetta di descrivere in modo semplice modelli reali anche molto complessi; creare modelli indipendenti dal solutore utilizzato, in modo da poter sfruttare sempre i solutori più potenti presenti sul mercato; descrivere modelli nei quali la struttura logica del problema e i dati utilizzati possano essere considerati come entità diverse. Uno schema formale per la situazione descritta può essere il seguente: utente programma ( es. MPL) solutore ( es.cp LEX) dati database Utilizzando MPL l utente non deve più occuparsi direttamente dell interrogazione del solutore, ma può concentrarsi sulla stesura del modello programmando in un linguaggio di alto livello con il quale può descrivere molto 1

6 semplicemente problemi reali anche molto complessi. Inoltre il solutore può essere sostituito senza dover modi care la forma con la quale sono descritti i modelli. In ne la possibilità di trattare in modo diverso i dati e struttura logica dei problemi fa si che piccole modi che nei dati o nella struttura del modello siano gestibili senza dover riprogrammare completamente molte righe di codice. In ne, la distinzione dati-modello permette di importare i parametri che caratterizzano l istanza di un problema da un database esterno lasciando libero l utente di occuparsi solo della formulazione logica del modello. Le principali caratteristiche di questi generatori algebrici di modelli sono le seguenti: il linguaggio di programmazione utilizzato è semplice da imparare (è composto da poche parole chiave); i codici che si realizzano sono essi stessi una rappresentazione concisa ed elegante del modello; è possibile inserire commenti o de nizioni linguistiche che rendono sia l input che l output comprensibili anche da non-programmatori ; la maggior parte dei programmi creati sta in un unico documento il che facilita il controllo e la creazione dei modelli; nell output vengono rappresentate, in modo comprensibile, tutte le operazioni svolte dal solutore; i programmi vengono scritti con un semplice editor di testo e sono indipendenti dalla piattaforma sulla quale vengono eseguiti sia il programma, sia il solutore (anche se Windows è la piattaforma su cui è più usato); MPL ha circa 5 anni possiede una piccola libreria di esempi di modelli che comprende sia problemi lineari, che problemi non lineari, e un tutorial. 2

7 Capitolo 2 Programmazione con il linguaggio MPL MPL è l acronimo di Model Development Environment, cioè Ambiente di Sviluppo di Modelli; si tratta di un linguaggio di programmazione ad alto livello che permette di descrivere in modo semplice e intuitivo dei modelli di Programmazione Lineare. Si possono de nire modelli speci ci con dati assegnati, oppure modelli più generali, che vengono associati di volta in volta con i dati letti da un le esterno. In questo capitolo, dopo una prima introduzione generale, verranno analizzate le diverse sezione che compongono un programma MPL. 2.1 Scrivere e risolvere un Modello con MPL In questa sezione impareremo, attraverso una serie di passi elementari, come scrivere e risolvere un modello con MPL. Alla ne della sezione, saremo in grado di far partire MPL, caricare e risolvere il modello, vedere la soluzione. A questo punto, impareremo come si possano cambiare le opzioni di settaggio di MPL attraverso le nestre di dialogo. Inoltre, nell ultima parte di questa sezione, forniremo una breve descrizione del sistema di aiuto di MPL La Prima Sessione in MPL Ci sono quattro semplici passi che devono diventarci familiari se intendiamo risolvere modelli usando MPL: Eseguire l applicazione MPL. Eseguire MPL in Windows 95 è molto semplice. Quando abbiamo installato MPL, il programma di installazione ha creato una voce in Programmi nel menù di Avvio dal nome Mpl for 3

8 Windows. Per eseguire MPL, se non lo abbiamo ancora fatto, è sufficiente cliccare sul menù Avvio e selezionare Programmi Mpl for Windows Caricare il le del modello nell ambiente MPL. Dopo che si è avviato MPL e ci si trova nell ambiente di sviluppo di modelli, il prossimo passo è quello di caricare il le del modello nell editor di modelli. L applicazione MPL viene fornita con diversi modelli di esempio che sono collocati nella cartella (directory) Mplwin4. I les con i modelli di MPL sono registrati come dei le di testo standard e, tipicamente, hanno l estensione.mpl. Il modello che useremo in questa sezione si chiama Model1.mpl e si trova, insieme a tutti i modelli utilizzati in questo tutorial, in una cartella separata dal nome Tutorial. 1. Scegliamo Open nel menù File per aprire la nestra di dialogo Open. 2. Doppio click sulla cartella dal nome Tutorial per entrare nella cartella dove è conservato il le del modello Model1.mpl. 3. La nestra di dialogo Open ora mostrerà una lista di les di modelli MPL che sono conservati nella cartella Tutorial. Clicchiamo sul le dal nome Model1.mpl per selezionarlo e premete il tasto Open per aprire il le. Alternativamente, possiamo aprirlo semplicemente con un doppio click sul le stesso nella lista. Queste semplici operazioni ci permetteranno di aprire una nuova nestra di editor dei modelli che contiene la formulazione del modello. Risolvere il modello. In questo tutorial usiamo CPLEX300 come risolutore (solver); ma, se siamo in possesso di altri risolutori supportati da MPL, possiamo usarli. Quando eseguiamo MPL per la prima volta dopo averlo installato, MPL proverà automaticamente a localizzare tutti i risolutori che abbiamo a disposizione. Potremo controllare quali risolutori sono stati trovati da MPL andando nel menù Run. Ogni risolutore trovato verrà indicizato nel menù preceduto dalla parola Solve. Se non disponiamo di nessun risolutore verrà visualizzato No Solvers nel menù Run. In questo caso, possiamo consultare il Capitolo 2.4: Setting up Solvers for MPL per trovare le informazioni su come aggiungere risolutori a MPL. D ora in poi assumeremo che CPLEX sia stato installato con successo, oppure che qualsiasi altro risolutore sia stato correttamente installato. Il prossimo passo sarà quello di risolvere il modello che è stato caricato nell editor di modelli. Per risolvere il modello basta seguire i seguenti passi: 1. Scegliere Solve CPLEX nel menù Run per risolvere il modello Model1. 4

9 2. Durante la risoluzione del modello, viene mostrata la nestra di stato ( Status Window) che ci fornisce informazioni su come progredisce la soluzione. La Status Window fornisce informazioni come il numero di linee lette, il numero delle variabi e dei vincoli del modello, quanta memoria è stata usata. Mentre l ottimizatore risolve il modello, vengono inoltre mostrati il numero delle iterazioni e il valore corrente della funzione obbiettivo. Vedere la soluzione. MPL registra automaticamente la soluzione in un le con lo stesso nome del le del modello, ma con l estensione.sol. Usiamo i seguenti passi per visualizzare il le di soluzione Model1.sol che è stato generato per il modello che abbiamo già risolto. 1. Premiamo il tasto View sul fondo della Status Window che è apparsa sul video durante il processo di risoluzione. Questa operazione aprirà una View Window che contiene il le di soluzione. 2. Possiamo scorrere il le della soluzione semplicemente utilizzando le barre di scorrimento posizionate sulla destra. Notiamo che i dettagli della soluzione includono il valore ottimale della soluzione per la funzione obbiettivo, i valori delle variabili decisionali e dei vincoli. 3. Quando abbiamo nito di vedere il le di soluzione, possiamo chiudere la nestra semplicemente premendo il tasto (X) che si trova nell angolo in alto a destra della nestra stessa. Usare la nestra dell albero delle de nizioni del modello ( Model De nition Window). MPL ci permette inoltre di vedere tutti gli oggetti de niti nella formulazione del modello in una nestra con una struttura ad albero chiamata Model De nitions Windows. Ogni ramo corrisponde ad una sezione del modello. Se la nestra non è visibile, possiamo aprirla scegliendo Model De nitions nel menù View. Normalmente è una buona idea lavorare con MPL mantenendo la Model De nitions Windows sempre aperta. MPL provvederà automaticamente a mantenere aggiornato il contenuto di questa nestra tutte le volte che risolveremo i vostro modello. La Model De nitions Windows provvede ad un facile accesso a differenti parti del modello e ci permette di selezionare e vedere velocemente le parti della soluzione del modello che ci interessano. Per utilizzare l albero basta eseguire: 1. Accertiamoci che la nestra con l albero sia aperta scegliendo De nitions dal menù View. Model 5

10 2. Sotto l intestazione VARIABLES nella nestra potremo osservare il nome delle variabili in una lista: Produce, Inventory e Sales, che sono le variabili del modello. Davanti all intestazione di ogni sezione, troviamo un quadratino che contiene o un segno più (+) o un segno meno (-). Questo quadratino ci permette di espandere o comprimere velocemente ogni ramo dell albero. 3. Ora selezioniamo la variabile Produce e premiamo il tasto View che si trova sul fondo della nestra. Verrà aperta una nuova View Window con il valore della soluzione per la sola variabile Produce Utilizzare il Sistema di Aiuto in MPL MPL offre agli utenti un sistema di aiuto che contiene informazioni utili su come usare questo software. Accesso agli argomenti di aiuto per MPL. Per aprire la nestra principale di aiuto per MPL, andiamo nel menù Help e scegliamo Topics. Ci verrà mostrata una nestra di aiuto, dove potremo selezionare l argomento che ci interessa. La nestra di dialogo degli argomenti di aiuto di MPL ( MPL Help Topics dialog box) contiene tre bottoni; il bottone Contents, il bottone Index e il bottone Find; fornendoci strade differenti per accedere agli aiuti. Il bottone Contents mostra tutti gli argomenti disponibili in una struttura ad albero. Il bottone Index ci permette di accedere alla lista di tutte le parole chiave contenute nel le di aiuto, oppure ci permette di eseguire delle ricerche per speci che parole chiave. Il bottone Find ci permette di ricercare negli argomenti di aiuto parole speci che o frasi nel testo. Il database di ricerca viene costruito automaticamente dal Find Setup Wizard la prima volta che selezionate Find. 2.2 Caratteristiche generali Vengono qui spiegate alcune caratterisctiche generali del linguaggio MPL. Lunghezza delle righe Ogni riga non può superare i 255 caratteri. I rimanenti verranno ignorati da MPL. 6

11 Commenti In MPL ci sono due tipi di commenti: le parentesi grafe {...} racchiudono commenti in blocco, cioè che possono estendersi anche su più righe { } Commento... il punto esclamativo! termina a ne riga delimita invece l inizio di un commento che x[foods]! dollars of food to be purchased daily Separatori I diversi statement all interno di una sezione (indici, vincoli, etc...) devono essere separati dal carattere ; i = 1..5 ; j = ; Gli elementi di una lista di valori devono essere separati dalla virgola, o da un a capo (questo permette di introdurre dei commenti esplicativi accanto ad ogni valore). nutrients = (Calorie,Protein,Calcium,Iron,Vitamin); Required[nutrients] = ( 3! Calories 70! Protein 0.8! Calcium 12! Iron 75 ) ;! Vitamin Range di un insieme Si può esprimere un insieme di valori con l uso di caratteri speciali: [indice = min.. max] [indice > val] oppure selezionare un singolo indice di valore speci cato ["val"] 7

12 Formule Si possono scrivere espressioni che comprendono le normali operazioni aritmetiche +, -, *, / nonché diverse altre funzioni matematiche: sqr, sqrt, sin, cos, log, ext, power... Esiste inoltre la funzione sommatoria che richiede come primo parametro il nome dell indice su cui iterare e come secondo l espressione da valutare con l indice speci co: Cost = SUM(foods: x); 2.3 Struttura di un programma MPL La struttura di un le MPL è divisa in due parti fondamentali, ognuna delle quali è a sua volta suddivisa in diverse sezioni. La prima parte è di de nizione e comprende: TITLE INDEX DATA DECISION MACRO - Il nome del modello - Gli indici del problema - I dati (scalari, vettori e matrici multidimensionali) - Le variabili del problema - Macro riutilizzabili nelle varie espressioni La seconda parte invece descrive il modello ed è formata dalle seguenti sezioni: MODEL - Descrizione del problema MAX o MIN - Funzione obiettivo SUBJECT TO - Vincoli BOUNDS - Estremi superiori ed inferiori delle variabili FREE - Variabili libere INTEGER - Variabili intere BINARY - Variabili binarie (0/1) END - Fine del modello TITLE Il titolo del modello non è obbligatiorio, ma è buona norma assegnare un titolo ad ogni problema e terminare la riga con il carattere ; INDEX Gli indici de niscono il dominio del problema e la sua dimensione. Devono essere dichiarati con il carattere := e possono essere sia numerici che alfabetici. Per i primi è sufficiente speci care i due valori estremi separati dal carattere... 8

13 month := 1..12; Gli indici alfabetici invece, vengono dichiarati come lista di nomi, separati dalla virgola e racchiusi tra parentesi tonde. Questo secondo tipo è preferibile a primo in quanto rende molto più chiara la lettura di vincoli ed altre espressioni in cui essi vengono usati. nutrients := (Calorie,Protein,Calcium,Iron,Vitamin); Indici alias In MPL è possibile assegnare un nuovo nome ad uno stesso indice senza dover ripeterne la de nizione: i := 1..4; j := i; Indici circolari Per alcuni tipi di indice, in particolare quelli temporali, si ha la necessità di de nire un offset sull indice, ad esempio Stock[month-1]. Se l indice esce dal range assegnato MPL ignora quel particolare valore. Si può invece forzarlo a ripartire dalla parte opposta del range rendendo la lista circolare. Basta aggiungere alla dichiarazione dell indice la parola riservata CIRCULAR. day month := (mon, tue, wed, thu, fri, sat, sun) CIRCULAR; := CIRCULAR; Sottoinsiemi di indici Se si vuole dichiarare un nuovo indice composto da un sottoinsieme di valori di un altro basta usare la seguente sintassi: holiday[day] := (sat, sun); summer[month] := (7..9); dove tra parentesi quadre viene speci cato l insieme di origine. Si possono anche eseguire le normali operazioni sugli insiemi: Differenza con il simbolo: - Negazione con il simbolo: NOT Unione con uno dei simboli: +, OR, UNION Intersezione con uno dei simboli: AND, INTERSECTION 9

14 INDEX plants := (NewYork, Chicago, London, Paris); OpenPlants[plants] := (NewYork, London); EuropePlants[plants] := (London, Paris);! Differenza ClosedPlants[plants] := plants - OpenPlants;! := (Chicago, Paris)! Negazione USPlants[plants] := NOT EuropePlants;! := (NewYork, Chicago)! Unione OpenOrEurope[plants] := OpenPlants OR EuropePlants;! := (NewYork, London, Paris)! Intersezione OpenAndEurope[plants] := OpenPlants AND EuropePlants;! := (London) Indici da le esterno La lista di valori di un indice può anche essere letta da un le esterno in cui i dati sono separati dalla virgola o da uno spazio. Se poi oltre all indice il le contiene anche altri dati, si può speci care quale colonna contiene i valori dell indice. product := INDEXFILE("product.dat", 1); NB: Se i dati sono su un foglio elettronico o un database esterno si può accedere anche direttamente ai dati con opportuni comandi DATA In questa sezione vengono speci cati i valori dei dati da usare nel modello. Anche in questo caso essi possono essere dichiarati direttamente o essere caricati da un le esterno, da un foglio elettronico o da un database, con il comando DATAFILE. I dati possono essere scalari, vettori o matrici multidimensionali. Nel caso scalare il valore assegnato risulta una costante per tutta la risoluzione del modello. Il carattere speciale? serve per chiedere conferma all utente del valore prede nito. NumberOfMonths = 12; NumberOfYears = 4?; In questo caso all utente viene chiesto di confermare o modi care il valore prede nito dello scalare NumberOfYears. 10

15 Per i vettori e le matrici, gli indici sono racchiusi tra parentesi quadre, e separati dalla virgola, mentre i relativi valori, sono racchiusi da parentesi tonde e separati da virgola o a capo. Required[nutrients] = ( 3, 70, 0.8, 12, 5, 2.7, 18, 75 ); A[foods,nutrients] = DATAFILE(nutri.dat)! Nutritive values of foods per dollar expenditure. Nel caso di una matrice, la lista corrisponde alla scansione per riga della matrice stessa. Lo stesso concetto si estende al caso di matrici multidimensionali. I dati possono essere valori semplici o il risultato di espressioni matematiche. A[i] := (2, -4+3, 2*SQR(3)+2, 1/(2+1), last(i)) Se si utilizzano vettori e matrici sparse, si possono inserire solo i valori non nulli; basta sostituire alle normali parentesi tonde quelle quadrate e far precedere ai singoli valori i relativi indici. A[i] := [2: 4.0, 5: 3.0, 6: -4.0] ; ProdCost[plant, machine, product] := [ p1, m11, A1, 73.30, p1, m11, A2, 52.90, p1, m12, A3, 65.40, p1, m13, A3, 47.60, DECISION p2, m21, A1, 79.00, p2, m21, A3, 66.80, p2, m22, A2, 52.00, p3, m31, A1, 75.80, p3, m31, A3, 50.90, p3, m32, A1, 79.90, p3, m32, A2, 52.10, p4, m41, A1, 82.70, p4, m41, A2, 63.30, p4, m41, A3, 53.80]; Nella sezione DECISION vengono dichiarate le variabili del problema che possono essere scalari, vettori o matrici. Il nome completo della sezione 11

16 è DECISION VARIABLES, ma MPL accetta indifferentemente uno delle tre seguenti dichiarazioni: DECISION VARIABLES DECISION VARIABLES Nel caso di vettori o matrici, i relativi indici vanno racchiusi tra parentesi quadre e separati dalla virgola. Production[product,month] Condizioni sulle variabili A volte è necessario limitare le variabili al veri carsi di determinate condizioni. La clausola WHERE seguita dalla condizione, permette di selezionare solo alcune variabili. Production[product,month] WHERE (Demand[product,month] > 0); MACROS Le macro sono una caratteristica importante di MPL. Esse permettono di de nire delle espressioni a cui assegnare un nome speci co da usare poi nella de nizione della funzione obiettivo e dei vincoli. In questo modo si sempli ca il modello rendendolo allo stesso tempo più leggibile. La macro si de nisce con un nome seguito dal simbolo := e dalla sua espressione. Non si possono dichiarare macro indicizzate, ma si possono usare vettori e formule nel calcolo della sua espressione. TotalRevenue := SUM(product,month: price * Sales) ; MODEL La parola chiave MODEL indica l inizio della descrizione del modello vero e proprio. La funzione obiettivo richiede come primo elemento il senso di ottimizzazione: MAXIMIZE o MINIMIZE, che può essere abbreviato in MAX o MIN; segue il nome, il segno di uguaglianza = ed in ne l espressione da valutare. Se non viene indicato alcun nome MPL assegna per de nizione il nome z alla funzione obietttivo. MAX 3x1 + 5x2 ; MIN Cost = SUM(products,months : InventoryCost) ; 12

17 2.3.7 SUBJECT TO Questa è la sezione che descrive i vincoli del problema. È buona abitudine assegnare un nome ad ogni vincolo, ed anteporlo alla sua de nizione. Il nome non può contenere spazi vuoti ed altri caratteri riservati e deve essere seguito dal simbolo :. Se non viene dichiarato alcun nome per il vincolo i-esimo MPL assegna il generico nome ci. Un equazione è composta da due membri separati da uno dei seguenti segni di comparazione: minore o uguale < <= uguale = maggiore o uguale > >= I simboli < e > vengono interpretati come minore o uguale e maggiore o uguale. Per comodità e facilità di lettura sia le variabili che le costanti possono essere scritte in entrambi i lati della relazione. Le variabili possono anche essere ripetute nella stessa formula o nei due lati dello stesso vincolo. Ci pensa poi MPL ad accorpare i coefficienti e spostare tutte le variabili a sinistra e a sommare le costanti in un unico valore da porre sul lato destra della relazione. Ogni vincolo può estendersi anche su più righe e deve essere terminato con il simbolo ; per separarlo dal successivo. Ci sono due tipi di vincoli: semplici e vettoriali. Vincoli semplici I vincoli semplici sono quelli de niti senza indici; sono formati dalla combinazione di variabili semplici, vettori costanti ed eventualmente sommatorie su vettori di variabili purchè tutte le variabili del vettore siano utilizzate. 3 (Sb1 + Co1 + So1) = 2 (Sb2 + Co2 + So2) ; Overtime : Over < 50\% * 170 Workforce ; Production : SUM(shifts: Prod[shifts]) < 3750 ; Vincoli vettoriali I vincoli vettoriali sono quelli indicizzati, cioè vincoli che vengono ripetuti cambiando il valore dell indice ogni volta. Si dichiarano aggiungendo il nome dell indice racchiuso tra parentesi quadre subito dopo il nome del vincolo e prima del simbolo :. Ovviamente l indice del vincolo deve essere compatibile con quello dei vettori di variabili usati nella de nizione del vincolo stesso. MPL poi espande questo singolo vincolo in una serie di vincoli semplici basati sui relativi indici. La de nizione del vincolo avviene nello stesso modo dei vincoli semplici. Si costruiscono equazioni composte da variabili, vettori di variabili, sommatorie e costanti. Non occorre dichiarare l indice dopo ogni variabile, purchè questo sia compatibile con l indice principale del vincolo. 13

18 InventoryBalance[product,period]: Inventory = Inventory[period-1] + Production - Sales ; ProdCap[machine,time] : SUM(tire: ProdRates * Prod) < ProdHours ; Limitare i vincoli vettoriali Si può limitare il range di un indice per un vincolo vettoriale direttamente nella de nizione stessa del vicnolo. InventoryBalance[month=Jan..Nov] :... InventoryBalance[month<=Jun] :... InventoryBalance[month=Dec] :... Oppure si può de nire un vincolo al veri carsi di determinate condizioni InventoryBalance[product,month] WHERE (month > Jan) BOUNDS In questa sezione vengono de niti i limiti inferiori e superiori alle variabili. La maggior parte dei risolutori LP prevede la possibilità di de nire bounds sulle variabili, migliorando l efficienza della loro gestione interna rispetto alla dichiarazione di vincoli espliciti. La de nizione dei bounds ri ette esatamente quella dei vincoli. Il limite può andare sul lato sinistro o destro della relazione e si possono anche de nire vincoli composti del tipo: limiteinf eriore < variabile < limitesuperiore Come per i vincoli anche i bounds possono essere semplici o vettoriali (indicizzati su uno o più indici). Il limite inferiore è per de nizione 0. x < 4*12 ; z_bounds : 2 < z < 8 ; CloseInv : Inventory[December] = ; MaxInv[month<=Nov] : Inventory <= ; Inventory[month=Dec] = ; Sales <= Demand ; 14

19 2.3.9 FREE Questa e le due successive sezioni servono per de nire il tipo di variabili usate e possono essere poste in qualsiasi ordine purchè dopo la sezione di dichiarazione dei vincoli (SUBJECT TO). MPL come la maggior parte dei risolutori LP, assume che le variabili decisionali siano positive o nulle. Per permettere ad una variabile semplice o ad un vettore di variabili di assumere anche valori negativi bisogna dichiararli come liberi. FREE Temperature ; Inventory[month] ; INTEGER e BINARY Allo stesso modo si possono forzare delle variabili ad assumere solamente valori interi; basta anteporre la porola INTEGER alla lista di variabili e/o vettori di variabili. INTEGER Production[month,product] ; Si possono anche forzare alcune variabili ad assumere solamente i valori interi 0 e 1. BINARY ShopOpen ; In entrambi i casi questa forzatura ha effetto soltatno se il pacchetto risolutore supporta questa caratteristica, ossia risolve problemi MIP (Mixed Integer Programming). 15

20 Capitolo 3 Un modello di bilanciamento della produzione In questo capitolo costruiremo un modello di produzione con tre prodotti che verranno chiamati A1, A2 e A3. Per questi prodotti creeremo un indice e, quindi, de niremo un vettore di variabili che rappresenta la necessità di produzione di ogni prodotto. Data la de nizione di questi nuovi termini, indici e vettori, ora dovremo applicarla a un modello di prova. Il modello di bilanciamento della produzione è un problema di distribuzione della forza produttiva tra i prodotti, con lo scopo di determinare il livello di produzione di ogni singolo prodotto per soddisfare una data domanda. Il prezzo di vendita di ogni prodotto è ssato: $ per A1, $ per A2 e $ per A3. Per ogni prodotto, esiste anche un limite massimo di domanda: 4300 per A1, 4500 per A2 e 5400 per A3. La quota di produzione di un prodotto è misurata in quanti pezzi vengono prodotti ogni giorno. In questo problema abbiamo un totale di 22 giorni di produzione disponibili in un mese. Nella tabella seguente sono indicati la quota e il costo di produzione di ogni prodotto. Produzione A1 A2 A3 Costo di Produzione $73.30 $52.90 $65.40 Quota di Produzione Formulazione del Modello Il prossimo passo è quello di prendere il problema appena descritto e formularne un modello per MPL. Qui di seguito riportiamo il codice MPL del modello ( le Planning3.mpl). { Planning3.mpl } 16

21 TITLE Producton_Planning3; INDEX product := (A1, A2, A3); DATA Price[product] := (120.00, , ); Demand[product] := (4300, 4500, 5400); ProdCost[product] := (73.30, 52.90, 65.40); ProdRate[product] := (500, 450, 550); ProdDaysAvail := 22; VARIABLES Produce[product] -> Prod; MACROS TotalRevenue := SUM(product: Price * Produce); TotalCost := SUM(product: ProdCost * Produce); MODEL MAX Profit = TotalRevenue - TotalCost; SUBJECT TO ProdCapacity -> PCap: SUM(product: Produce / ProdRate) <= ProdDaysAvail; BOUNDS Produce <= Demand; END 3.2 Vedere e Analizzare la Soluzione Dopo aver risolto il modello, MPL crea automaticamente un le che contiene in un formato standard vari elementi della soluzione del modello. Questo le include, tra le altre cose, il valore ottimo della funzione obbiettivo, le attività dei costi ridotti delle variabili, i valori di slack e i costi nascosti ( shadow price ) per i vincoli. Il le della soluzione viene creato con lo stesso nome del le del modello, ma con l estensione.sol. Nel nostro caso il le si chiamerà Planning3.sol. 17

22 Dopo aver risolto il modello possiamo visualizzare la soluzione in una nestra cliccando il tasto View che si trova sul fondo della nestra di stato. Questa operazione mostrerà in una nestra ( View Window ) i dati che qui riportiamo. MPL Modeling System - Copyright (c) , Maximal Software, Inc MODEL STATISTICS Problem name: Producton_Planning3 Filename: Planning3.mpl Date: July 8, 2000 Time: 13:53 Parsing time: 0.33 sec Solver: CPLEX 300 Objective value: Iterations: 3 Solution time: 0.60 sec Constraints: 1 Variables: 3 Nonzeros: 3 Density: 100 % SOLUTION RESULT Optimal solution found MAX Profit = MACROS Macro Name Values

23 TotalRevenue TotalCost DECISION VARIABLES VARIABLE Produce[product] : product Activity Reduced Cost A A A CONSTRAINTS PLAIN CONSTRAINTS END Constraint Name Slack Shadow Price ProdCapacity La prima parte del le della soluzione contiene diversi dati statistici del modello come il nome del le, la data e l ora in cui il modello è stato risolto, quale risolutore è stato usato, il valore della funzione obbiettivo e la dimensione del modello. La parte successiva contiene i risultati della soluzione. In questa parte possiamo vedere se la soluzione trovata è ottimale, illimitata oppure impossibile. Inoltre viene mostrato il nome e il valore della funzione obbiettivo. Nella sezione MACROS del le della soluzione possiamo avere la lista di tutte le macros del modello de nite insieme al loro 19

24 valore. Per esempio, nel nostro modello Planning3 le entrate totali sono di 1,298 milioni di dollari, mentre le spese sono circa dollari. Questo corrisponde ad un pro tto di circa $ , che è il valore della funzione obbiettivo. Nella sezione DECISION VARIABLES possiamo trovare la lista di tutte le variabili del modello: vettore di variabili e variabili semplici. Nel nostro caso abbiamo un solo vettore di variabili produzione (Produce) de nito su l indice prodotti. Potremo osservare che per i prodotti A1 e A3 la soluzione suggerisce di produrre rispettivamente 4300 e 5400 pezzi. Questi valori corrispondono alla domanda per questi prodotti. D altro canto per A2 viene suggerito di produrre non più di 1611 pezzi, questo corrisponde ad una produzione inferiore alla domanda. Chiaramente non abbiamo la possibilità di produrre abbastanza da coprire la domanda di tutti i prodotti e il modello scelto consiglia di scegliere la produzione di A1 e A3 no a coprirne la domanda, sacri cando la produzione di A2. Nella sezione CONSTRAINTS è contenuta la lista dei vincoli compresi nel modello: vettori di vincoli e vincoli semplici. Nel nostro modello abbiamo solo un vincolo di tipo semplice chiamato ProdCapacity. Siccome lo slack del vincolo vale zero risulta che la nostra produzione funziona a pieno regime. I costi nascosti ci informano a quanto ammonterebbe il mancato guadagno se ci trovassimo nella necessità di ridurre i limiti dei vincoli di una unità. Dato che la capacità di produzione è espressa in giorni di produzione, la riduzione dei giorni disponibili per la produzione diminuisce i pro tti di $ al giorno. 20

25 Capitolo 4 Esempi di risoluzione di problemi classici della Programmazione Lineare In questo capitolo vengono analizzati alcuni problemi classici di Programmazione Lineare e ne viene fornita la descrizione del modello con il linguaggio MPL. 4.1 Un problema di assegnamento Un azienda deve eseguire N lavori diversi avendo a disposizione N persone. Ognuna impiega un determinato tempo a svolgere un certo incarico secondo la tabella riportata sotto. Sapendo che la ditta paga i suoi dipendenti ad un determinato prezzo orario, come devono essere assegnati gli incarichi alle diverse persone per minimizzare il costo complessivo? Lavoro Bianchi Verdi Rossi Ferrari lavoro A lavoro B lavoro C lavoro D Poichè il costo è direttamente proporzionale al tempo impiegato, è sufficiente minimizzare il tempo totale. Introduciamo le variabili binarie xij con il seguente signi cato: x = 1 se il lavoro i-esimo viene assegnato alla j-esima persona ij 0 altrimenti La funzione da minimizzare sarà quindi: tij xij i,j 21

26 soggetta ai vincoli che ogni persona può svolgere esattamente un lavoro: xij = 1 j = 1.. N i e che ogni lavoro può essere assegnato solamente ad una persona: xij = 1 i = 1.. N j Vediamo ora come si traduce questo modello in MPL. TITLE Problema_di_Assegnamento; INDEX persone = (Bianchi, Verdi, Rossi, Ferrari); incarichi = (lavoroa, lavorob, lavoroc, lavorod); DATA! tempo impiegato dalla persona j a svolgere il lavoro i tempi[persone, incarichi] = ( 12, 15, 9, 5, 13, 16, 11, 6, 6, 8, 5, 3, 5, 7, 4, 3 ); DECISION x[incarichi, persone]! persona che svolge l incarico MODEL MIN tempototale = Sum(persone, incarichi: tempi * x); SUBJECT TO vincolo_incarichi[persone] : Sum(incarichi: x) = 1; vincolo_persone[incarichi] : Sum(persone: x) = 1; BINARY x[persone, incarichi]; END Se si risolve questo modello si avra il seguente assegnamento ottimo: lavoro A ==> Rossi 22

27 lavoro B lavoro C lavoro D ==> Ferrari ==> Bianchi ==> Verdi di tempo totale minimo = Un primo problema dei trasporti Una ditta di trasporto deve trasferire container vuoti dai propri magazzini ai principali porti nazionali. Le disponibilità di container vuoti ai magazzini e le richieste ai porti sono le seguenti: Verona 10 Genova 20 Perugia 12 Venezia 15 Roma 20 Ancona 25 Pescara 24 Napoli 33 Taranto 18 Bari 21 Lamezia 40 I costi di trasporto sono proporzionali al numero di container ed ai chilometri percorsi dai camion, secondo la seguente tabella: Genova Venezia Ancona Napoli Bari Verona Perugia Roma Pescara Taranto Lamezia Si vuole determinare la politica di trasporto di costo complessivo minimo. Cominciamo col de nire le variabili intere xij come segue: xij = numero di container trasferiti dal magazzino ial porto j La funzione obiettivo da minimizzare è il costo complessivo di trasporto: distanzeij xij costo unitario i,j soggetta ai vincoli che ogni magazzino di partenza può spedire tanti container quant è la sua disponibilità: xij dispi i =1.. 6 j 23

28 e che ogni porto di distinazione deve soddisfare la propria richiesta: x rich j =1.. 5 i ij Vediamo come tradurre questo modello in MPL TITLE Problema_di_Trasporto; j INDEX magazzini = ( Verona, Perugia, Roma, Pescara, Taranto, Lamezia ); porti = ( Genova, Venezia, Ancona, Napoli, Bari ); DATA disponibilita[magazzini] = ( 10, 12, 20, 24, 18, 40 ); richiesta[porti] = ( 20, 15, 25, 33, 21 ); distanze[magazzini, porti] = DATAFILE ("Distanze.dat"); costo_unitario = 300;! costo per chilometro DECISION! numero di containter spediti dal magazzino i al porto j x[magazzini, porti] MODEL! funzione obiettivo MIN costototale = Sum(magazzini, porti: distanze * x * costo_unitario); SUBJECT TO vincolo_disponibilita[magazzini] : Sum(porti: x) <= disponibilita; vincolo_richiesta[porti] : Sum(magazzini: x) >= richiesta; INTEGER x[magazzini, porti]; END Per come abbiamo de niti gli INDEX, magazzini e porti, il le Distanze.dat contiene la tabella dei chilometri percorsi esattamente così come è riportata nella pagina precedente. 24

29 { Datafile per TRASPORTI.MPL } Genova Venezia Ancona Napoli Bari \\ Verona \\ Perugia \\ Roma \\ Pescara \\ Taranto \\ Lamezia \\ Risolvendo questo modello con MPL si avrà la seguente con gurazione di trasporto ottimo: Genova Venezia Ancona Napoli Bari Verona Perugia Roma Pescara Taranto Lamezia di costo minimo = Un problema della dieta Una mensa deve piani care gli acquisti di alimenti per la sua attività. Nella formulazione della dieta deve obbedire a requisiti nutrizionali minimi, nonché vincolare le porzioni massime di ogni elemento entro certi limiti. Conoscendo i costi unitari dei vari alimenti, trovare la dieta ottima che minimizzi il costo complessivo rispettando i vincoli imposti. Alimento Costo unitario Quantità massima Pane 2 4 Latte 3 8 Uova 4 3 Carne 19 2 Dolce 20 2 Requisiti nutrizionali minimi Nutrimento Calorie Proteine Calcio requisito 200 cal 50g 700 mg 25

30 Dalle tabelle dietetiche si ricavano i seguenti contenuti di calorie, proteine e calcio per ogni singola porzione di ciascun alimento. Calorie Proteine Calcio Pane Latte Uova Carne Dolce Le variabili di questo problema sono le quantità xi di ogni alimento da inserire nella dieta. La funzione obiettivo da minimizzare è il costo complessivo: costoi xi i Un primo vincolo è quello dell apporto nutrizionale: apportoij richiestej j nutrimenti i alimenti Esiste poi un limite massimo alle quantità dei singoli alimenti. x maxp orz i alimenti i i Questo limite può essere imposto introducendo dei nuovi vincoli oppure, in modo più efficiente, utilizzando degli upper bound. Vediamo come convertire questo modello nel linguaggio MPL. TITLE Dieta_ottima INDEX nutrimenti = (Calorie,Proteine,Calcio) : 10 alimenti = (Pane, Latte, Uova, Carne, Dolce) : 10 DATA richieste[nutrimenti] = ( 2000! Calorie [] 50! Proteine [grammi] 700) ;! Calcio [milligrammi] costo[alimenti] = ( 2! Pane 3! Latte 4! Uova 26

31 Segue il le Nutrimen.dat. 19! Carne 20 ) ;! Dolce maxporz[alimenti] = ( 4! Pane Massimo numero di porzioni 8! Latte tollerato giornalmente 3! Uova 2! Carne 2 ) ;! Dolce apporto[alimenti,nutrimenti] = DATAFILE(nutrimen.dat)! Contenuti di nutrimenti nei diversi alimenti DECISION x[alimenti] -> ""! porzioni di ogni alimento MODEL MIN Cost = SUM(alimenti: costo*x) ; SUBJECT TO BOUNDS END NutrBal[nutrimenti] : SUM(alimenti: apporto*x) > richieste[nutrimenti]; MaxPorzioni : x < maxporz ; { Datafile per DIETA.MPL }! Valori Nutritivi degli alimenti Calorie Proteine Calcio! (cal) (grams) (migrams) Pane Latte Uova Carne

32 Dolce Risolvendo questo modello con MPL si avrà la seguente dieta ottima: Alimento quantitá Pane 4 Latte 8 Uova Carne 0 Dolce 0 di costo minimo = Come si può notare la soluzione ottima prevede un valore non intero per l alimento Uova. Se vogliamo forzare la soluzione ad assumere solo valori interi basterà aggiungere il seguente vincolo di interezza al modello subito dopo gli altri vincoli: INTEGER x;! variabili intere La nuova soluzione intera risulta essere ora: Alimento quantitá Pane 4 Latte 8 Uova 2 Carne 0 Dolce 0 di costo minimo = 40. Il fatto che la soluzione intera sia semplicemente quella lineare con l unica variabili non intera arrotondata per eccesso è puramente casuale. Spesso la soluzione intera e la sua versione rilassata sono assai diverse. 4.4 Un problema di produzione più complesso Un azienda produce 5 diversi tipi di gomma (PVC1, PVC2, PVC3, Gomma1 e Gomma2) con i seguenti costi e ricavi unitari. Prodotto Costo Ricavo PVC PVC PVC Gomma Gomma

33 Sapendo che i costi orari e la disponibilità di ogni macchina è: De niamo per prima cosa le variabili del problema: siano xi le quantità da produrre di ogni prodotto. La funzione obiettivo da massimizzare è il guadagno netto, dato dalla differenza tra ricavi e costi unitari dei singoli prodotti e costi di produzione di ogni macchina in base al loro utilizzo: ( Ricavoi Costoi) xi ( Costo orarioj tempoij x i) / 3600 i j i Vediamo come convertire questo modello nel linguaggio MPL. { Produz.mpl } { Mix ottimale della produzione } TITLE Opt_Mix Produzione; Macchina Costo orario Disponibilità macpvc macgomma Tagliom Pallets Avvolgimento e che i tempi di lavorazione in ore di ciascuna machina per ottenere un unità di prodotto nita sono i seguenti: macchina / prodotto PVC1 PVC2 PVC3 GOMMA1 GOMMA2 macpvc macgomma Taglio Pallets Avvolgi calcolare la quantità ottimale da produrre per ogni prodotto in modo da massimizzare i guadagni. L unico vincolo è che non si superi la disponibilità di utilizzo di ogni macchina: tempoij x i < Of f ertaj j macchina i INDEX prodotto := (PVC1, PVC2, PVC3, Gomma1, Gomma2); 29

34 macchina := (macpvc, macgomma, Taglio, Pallets, Avvolgi); DATA Costo_mat[prodotto] = ( 30! PVC1 (in lire) 45! PVC2 20! PVC3 10! GOMMA1 25 ) ;! GOMMA2 Ricavo[prodotto] = ( 130! PVC1 (in lire) 200! PVC2 120! PVC3 115! GOMMA1 165 ) ;! GOMMA2 Offerta[macchina] = 3600 * ( 60! macpvc 90! macgomma 130! Taglio 70! Pallets 40 ) ;! Avvolgimento Costo_orario[macchina] = 1000 * ( 90! macpvc 100! macgomma 50! Taglio 40! Pallets 30 ) ;! Avvolgimento tempo[macchina,prodotto] = DATAFILE(mixprod.dat)! tempi di ciascuna machina per ottenere un unita di prodotto DECISION x[prodotto] -> ""! quantita di prodotti che conviene produrre MACRO Ricavi := SUM(prodotto: Ricavo * x - Costo_mat * x); MODEL TotaleCosto := SUM(prodotto, macchina : Costo_orario * tempo * x / 3600 ); Max Guadagno = Ricavi - TotaleCosto ; SUBJECT TO 30

35 N[macchina] -> "" : SUM(prodotto: tempo * x) < Offerta[macchina]; END Segue il le mixprod.dat. { Datafile per Produz.MPL }! Tempi di lavorazione in ore di ciascuna machina per ottenere! una unità di prodotto finita PVC1 PVC2 PVC3 GOMMA1 GOMMA2 macpvc macgomma Taglio Pallets Avvolgi La soluzione ottima per la produzione risulta: Prodotto quantità PVC PVC PVC3 0 Gomma Gomma2 0 per un guadagno complessivo di L

36 Capitolo 5 Un Modello di Piani cazione della Produzione a Multi-Periodo In questo capitolo creeremo una formulazione di un modello di piani cazione della produzione a multi-periodo. Partiamo dal modello che abbiamo creato nel capitolo 3 facendo le opportune modi che. In questo nuovo problema abbiamo un periodo di quattro mesi da piani care, da Gennaio a Aprile. Per prima cosa dobbiamo creare un nuovo indice che contiene i quattro mesi in esame, quindi aggiornare il resto del modello aggiungendo gli indici ai vettori già de niti. Come nel problema del capitolo 3, il prezzo di vendita per i prodotti è ancora rispettivamente $120.00, $ e $ Ora, oltre ad avere una domanda diversa per ogni prodotto, abbiamo una domanda differenziata per ogni prodotto e ogni mese. Nella tabella seguente riportiamo i valori. Domanda di Produzione Gen Feb Mar Apr A A A Le quote di produzione e i costi di produzione resteranno gli stessi che sono stati forniti nella tabella del capitolo 3 a pag. 16. Inoltre i giorni di produzione disponibili in un mese varieranno ogni mese: 23 giorni a Gennaio, 20 a Febbraio, 23 a Marzo e 22 a Aprile. Inoltre dovremo introdurre un magazzino nel modello; questo comporta l introduzione di un costo di magazzino per ogni prodotto: A1-$3.50/mese, A2-$4.00/mese e A3-$3.00/mese. Ogni prodotto occupa lo stesso spazio, ma lo spazio totale disponibile nel magazzino è di 800 unità. 32

37 5.1 Formulazione del Modello Il listato seguente è la formulazione del modello di Planning4. Come si può osservare il modello è un estensione di quello presentato nel capitolo 3 a pag. 16. { Planning4.mpl } TITLE Production_Planning4; INDEX product := (A1, A2, A3); month := (Jan, Feb, Mar, Apr); DATA Price[product] := (120.00, , ); Demand[product, month] := (4300, 4200, 6400, 5300, 4500, 5400, 6500, 7200, 5400, 6700, 7800, 8200); ProdCost[product] := (73.30, 52.90, 65.40); ProdRate[product] := (500, 450, 550); ProdDaysAvail[month] := (23, 20, 23, 22); InvtCost[product] := (3.50, 4.00, 3.00); InvtCapacity := 800; VARIABLES Produce[product, month] Inventory[product, month] Sales[product, month] -> Prod; -> Invt; -> Sale; MACROS TotalRevenue := SUM(product, month: Price * Sales); TotalProdCost := SUM(product, month: ProdCost * Produce); TotalInvtCost := SUM(product, month: InvtCost * Inventory); TotalCost := TotalProdCost + TotalInvtCost; MODEL MAX Profit = TotalRevenue - TotalCost; SUBJECT TO ProdCapacity[month] -> PCap: SUM(product: Produce / ProdRate) <= ProdDaysAvail; 33

38 InvtBal[product, month] -> IBal: Produce + Inventory[month-1] = Sales + Inventory; MaxInventory[month] -> MaxI: SUM(product: Inventory) <= InvtCapacity; BOUNDS Sales <= Demand; END 5.2 Risolvere il Modello e Analizzare la Soluzione Il prossimo passo è quello di risolvere il modello Planning4: basta scegliere la voce Solve CPLEX nel menù Run. Se i dati sono stati inseriti correttamente, MPL mosterà il messaggio che la soluzione ottimale è stata trovata ( Optimal Solution Found). Se si presenta un messaggio di errore in una nestra, indicazione di un errore di sintassi, ricontrolliamo la formulazione del modello che abbiamo inserito confrontandola con quella fornita a pag. 33. Dopo aver risolto il modello, MPL crea automaticamente un le chiamato Planning4.sol nel formato standard contenente la soluzione. Possiamo visualizzare il le della soluzione in una nestra con la pressione del tasto View che si trova sul fondo della nestra di stato. Riportiamo qui il listato completo del le della soluzione: MPL Modeling System - Copyright (c) , Maximal Software, Inc MODEL STATISTICS Problem name: Production_Planning4 Filename: Planning4.mpl Date: July 8, 2000 Time: 20:13 Parsing time: 0.22 sec Solver: CPLEX 300 Objective value: Iterations: 0 Solution time: 0.06 sec 34

39 Constraints: 20 Variables: 36 Nonzeros: 69 Density: 10 % SOLUTION RESULT Optimal solution found MAX Profit = MACROS Macro Name Values TotalRevenue TotalProdCost TotalInvtCost TotalCost DECISION VARIABLES VARIABLE Produce[product,month] : product month Activity Reduced Cost A1 Jan A1 Feb A1 Mar A1 Apr A2 Jan

40 A2 Feb A2 Mar A2 Apr A3 Jan A3 Feb A3 Mar A3 Apr VARIABLE Inventory[product,month] : product month Activity Reduced Cost A1 Jan A1 Feb A1 Mar A1 Apr A2 Jan A2 Feb A2 Mar A2 Apr A3 Jan A3 Feb A3 Mar A3 Apr VARIABLE Sales[product,month] : product month Activity Reduced Cost A1 Jan A1 Feb A1 Mar A1 Apr A2 Jan A2 Feb A2 Mar A2 Apr A3 Jan

Soluzione di problemi di ottimizzazione

Soluzione di problemi di ottimizzazione Soluzione di problemi di ottimizzazione Problema di programmazione lineare: Possibili ulteriori vincoli (Es.: x INTERO) Soluzione: Trovare x* tale che per ogni LE.1 Input: Solutori di problemi di PL/PLI

Dettagli

GUIDA AL PORTALE PARTE 1

GUIDA AL PORTALE PARTE 1 GUIDA AL PORTALE PARTE 1 1 L HOME PAGE Al primo ingresso nel portale www.farmaciefvg.it è visualizzata l Home page (letteralmente pagina di casa ma meglio conosciuta come pagina iniziale ) la cui parte

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag. Gentile Cliente, benvenuto nel Portale on-line dell Elettrica. Attraverso il nostro Portale potrà: consultare la disponibilità dei prodotti nei nostri magazzini, fare ordini, consultare i suoi prezzi personalizzati,

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

1 Breve introduzione ad AMPL

1 Breve introduzione ad AMPL 1 Breve introduzione ad AMPL Il primo passo per risolvere un problema reale attraverso strumenti matematici consiste nel passare dalla descrizione a parole del problema al modello matematico dello stesso.

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

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

Introduzione. AMPL Introduzione. F. Rinaldi. Dipartimento di Matematica Università di Padova. Corso di Laurea Matematica. F. Rinaldi AMPL Introduzione Dipartimento di Matematica Università di Padova Corso di Laurea Matematica Outline Introduzione Utilizzo di un Solver Definizione Un solver (o risolutore) è un software che riceve in input una descrizione

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Fogli Elettronici: MS Excel

Fogli Elettronici: MS Excel Fogli Elettronici: MS Excel Informatica - A.A. 2010/2011 - Excel 7.0 Foglio Elettronico Un foglio elettronico (o spreadsheet) è un software applicativo nato dall esigenza di: organizzare insiemi di dati

Dettagli

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti

Dettagli

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL ESERCITAZIONE GUIDATA: LE RENDITE 1. Il montante di una rendita immediata posticipata Utilizzando Excel, calcoliamo il montante di una

Dettagli

Come modificare la propria Home Page e gli elementi correlati

Come modificare la propria Home Page e gli elementi correlati Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO 4.1 PER INIZIARE 4.1.1 PRIMI PASSI COL FOGLIO ELETTRONICO 4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO L icona del vostro programma Excel può trovarsi sul desktop come in figura. In questo caso basta

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014 LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero

Dettagli

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

GESGOLF SMS ONLINE. Manuale per l utente

GESGOLF SMS ONLINE. Manuale per l utente GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Esercitazione in Laboratorio: risoluzione di problemi di programmazione lineare tramite Excel il mix di produzione

Esercitazione in Laboratorio: risoluzione di problemi di programmazione lineare tramite Excel il mix di produzione Esercitazione in Laboratorio: risoluzione di problemi di programmazione lineare tramite Excel il mix di produzione Versione 11/03/2004 Contenuto e scopo esercitazione Contenuto esempi di problema di programmazione

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

L analisi dei dati. Capitolo 4. 4.1 Il foglio elettronico

L analisi dei dati. Capitolo 4. 4.1 Il foglio elettronico Capitolo 4 4.1 Il foglio elettronico Le più importanti operazioni richieste dall analisi matematica dei dati sperimentali possono essere agevolmente portate a termine da un comune foglio elettronico. Prenderemo

Dettagli

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa. La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

Statistica 4038 (ver. 1.2)

Statistica 4038 (ver. 1.2) Statistica 4038 (ver. 1.2) Software didattico per l insegnamento della Statistica SERGIO VENTURINI, MAURIZIO POLI i Il presente software è utilizzato come supporto alla didattica nel corso di Statistica

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

COME CREARE UNA COMUNICAZIONE / NEWSLETTER

COME CREARE UNA COMUNICAZIONE / NEWSLETTER COME CREARE UNA COMUNICAZIONE / NEWSLETTER Benvenuti nella MINI GUIDA di Centrico per la creazione di una nuova Comunicazione o Newsletter. Grazie a questa guida, potrai creare delle comunicazioni ad hoc

Dettagli

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;

Dettagli

Problema del Trasporto. Container vuoti Verona 10 Perugia 12 Roma 20 Pescara 24 Taranto 18 Lamezia 40

Problema del Trasporto. Container vuoti Verona 10 Perugia 12 Roma 20 Pescara 24 Taranto 18 Lamezia 40 Problema del Trasporto Una ditta di trasporto deve trasferire container vuoti dai propri 6 Magazzini, situati a Verona, Perugia, Roma, Pescara, Taranto e Lamezia, ai principali Porti nazionali (Genova,

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

Il foglio elettronico. Excel 2013 3 PARTE

Il foglio elettronico. Excel 2013 3 PARTE Il foglio elettronico Excel 2013 3 PARTE Versione 15/10/2013 Le tabelle PIVOT Tabelle PIVOT Le tabelle pivot sono tabelle interattive che consentono all'utente di raggruppare e riassumere grandi quantità

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Stampa Unione per lettere tipo

Stampa Unione per lettere tipo per lettere tipo Con Stampa Unione è possibile creare lettere tipo, etichette per indirizzi, buste, elenchi indirizzi e liste per la distribuzione via posta elettronica e fax in grandi quantitativi. Lo

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1 Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

developed by Emanuele De Carlo

developed by Emanuele De Carlo developed by Emanuele De Carlo WorkGym è un Software sviluppato in JAVA pensato per migliorare la gestione di piccole e grandi palestre. Il suo principale scopo è quello di mantenere un DataBase contenente

Dettagli

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine

Dettagli

INTRODUZIONE. Cplex è un software per la risoluzione di Problemi di Programmazione Lineare e Lineare Intera;

INTRODUZIONE. Cplex è un software per la risoluzione di Problemi di Programmazione Lineare e Lineare Intera; INTRODUZIONE Cplex è un software per la risoluzione di Problemi di Programmazione Lineare e Lineare Intera; L interfaccia con il quale viene utilizzato è Microsoft Excel 1 Installazione CPLEX Dopo aver

Dettagli

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Modelli di Programmazione Lineare e Programmazione Lineare Intera Modelli di Programmazione Lineare e Programmazione Lineare Intera 1 Azienda Dolciaria Un azienda di cioccolatini deve pianificare la produzione per i prossimi m mesi. In ogni mese l azienda ha a disposizione

Dettagli

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo - la durata del mutuo in anni - l importo del mutuo

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA MANUALEDIUTILIZZO MODULO CRM POSTVENDITA INDICE INTRODUZIONE INSERIMENTO CHIAMATA CHIAMATE Dettaglio Chiamate Macchine Coinvolte Documenti Riepilogo MACCHINE Dettaglio Macchine Documenti Interventi MACCHINE

Dettagli

Ottimizzazione Multi Obiettivo

Ottimizzazione Multi Obiettivo Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

MODULO 4: FOGLIO ELETTRONICO (EXCEL) MODULO 4: FOGLIO ELETTRONICO (EXCEL) 1. Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei Personal computer. Essi

Dettagli

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER.

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER. STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER. Windows 7 e 8 strumenti per l ipovisione. Windows Seven/8 offrono ottimi strumenti per personalizzare la visualizzazione in caso di ipovisione: - una lente di

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Login All apertura il programma controlla che sia stata effettuata la registrazione e in caso negativo viene visualizzato un messaggio.

Dettagli

Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine:

Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine: 1.1 Pianificazione degli investimenti. Una banca deve investire C milioni di Euro, e dispone di due tipi di investimento: (a) con interesse annuo del 15%; (b) con interesse annuo del 25%. Almeno 1 di C

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011 Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011 (CLASSI NON CAMPIONE) Prova nazionale 2010 11 1 A.S. 2010 11 Pubblicato

Dettagli

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE 1. Proporzionalità diretta e proporzionalità inversa Analizziamo le seguenti formule Peso Lordo = Peso Netto + Tara Ricavo = Utile + Costo Rata = Importo + Interesse

Dettagli

Potenzialità statistiche Excel

Potenzialità statistiche Excel Potenzialità statistiche Excel INTRODUZIONE A MS EXCEL Prof. Raffaella Folgieri Email folgieri@mtcube.com Fogli di calcolo MS Excel Prof. Folgieri 1 I Fogli Elettronici (Microsoft Excel) Sono strumenti

Dettagli

(Tasto Svuota file) Il tasto Svuota file elimina tutti i record presenti nel database.

(Tasto Svuota file) Il tasto Svuota file elimina tutti i record presenti nel database. www.pgx3.it PWX tractor PWX è un software in grado di raccogliere in completa autonomia le informazioni relative alle anagrafiche dei clienti presenti sul Database di Pagine Bianche. PWX vi permette di

Dettagli

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

FtpZone Guida all uso Versione 2.1

FtpZone Guida all uso Versione 2.1 FtpZone Guida all uso Versione 2.1 La presente guida ha l obiettivo di spiegare le modalità di utilizzo del servizio FtpZone fornito da E-Mind Srl. All attivazione del servizio E-Mind fornirà solamente

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

LA CORRISPONDENZA COMMERCIALE

LA CORRISPONDENZA COMMERCIALE LA CORRISPONDENZA COMMERCIALE GLI ELEMENTI ESSENZIALI DELLA LETTERA COMMERCIALE Intestazione Individua il nome e il cognome o la ragione sociale di chi scrive; contiene inoltre l indirizzo e i recapiti

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

MANUALE BREVE PER IL DOCENTE TUTOR

MANUALE BREVE PER IL DOCENTE TUTOR MANUALE BREVE PER IL DOCENTE TUTOR INDICE ARGOMENTO PAGINA Descrizione ruolo svolto 2 Note 2 RUOLO TUTOR Modalità di accesso 3 FUNZIONI SOTTO COMUNICA: Messaggeria 5 FUNZIONI SOTTO STRUMENTI: AGENDA 10

Dettagli

Il foglio elettronico 5/06/2013

Il foglio elettronico 5/06/2013 Il foglio elettronico 5/06/2013 Che cos'è un foglio elettronico Quando dobbiamo eseguire dei calcoli, rappresentare tabelle, fare disegni, siamo portati naturalmente a servirci di fogli a quadretti perché

Dettagli

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

USO DI EXCEL CLASSE PRIMAI

USO DI EXCEL CLASSE PRIMAI USO DI EXCEL CLASSE PRIMAI In queste lezioni impareremo ad usare i fogli di calcolo EXCEL per l elaborazione statistica dei dati, per esempio, di un esperienza di laboratorio. Verrà nel seguito spiegato:

Dettagli

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE Il software ideale per la gestione delle prenotazioni GUIDA UTENTE Presentazione... 2 Installazione... 3 Prima esecuzione... 6 Registrazione del programma... 8 Inserimento Immobile... 9 Inserimento proprietario...

Dettagli

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Ricerca Operativa 2. Modelli di Programmazione Lineare Modelli di programmazione lineare Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Sotto queste ipotesi (come

Dettagli

Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici

Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici Prerequisiti Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici L opzione Multimagazzino è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione L opzione Multimagazzino

Dettagli

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013] MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire

Dettagli

Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311

Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311 Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311 INDICE 1. INTRODUZIONE... 3 1.1 SCADENZA... 3 1.2 CAUSALE DA UTILIZZARE... 3 2. MODALITÀ OPERATIVE DI COMUNICAZIONE DATI... 4

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

INTRODUZIONE A EXCEL ESERCITAZIONE I

INTRODUZIONE A EXCEL ESERCITAZIONE I 1 INTRODUZIONE A EXCEL ESERCITAZIONE I Corso di Idrologia e Infrastrutture Idrauliche Prof. Roberto Guercio Cos è Excel 2 Foglio di calcolo o foglio elettronico è formato da: righe e colonne visualizzate

Dettagli

Prof.ssa Paola Vicard

Prof.ssa Paola Vicard DISTRIBUZIONE DI FREQUENZE PER CARATTERI QUALITATIVI Questa nota consiste per la maggior parte nella traduzione (con alcune integrazioni) da Descriptive statistics di J. Shalliker e C. Ricketts, 2000,

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli