Introduzione a Python e Gurobi

Documenti analoghi
Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Matematica con Python

Lezione 6 Introduzione al C++ Mauro Piccolo

Assegnazione di una variabile

Laboratorio Programmazione Anno Lezione 3

Programmazione in Python. Moreno Marzolla

Ing. Lorenzo Vismara

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Programmazione web lato client con JavaScript. Marco Camurri 1

Caratteristiche generali del linguaggio Visual Basic

laboratorio di python

Laboratorio di Informatica I

Corso di Linguaggi di Programmazione

Corso di Informatica

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Le basi del linguaggio Java

Laboratorio di Python

EXCEL software Excel .xlxs, La cella intestazione della colonna intestazione di righe l indirizzo della cella testo numeri formule

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Elementi di Base. Introduzione a Python.

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Istruzioni di Controllo in C. Emilio Di Giacomo

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione in Java (I modulo)

Qualsiasi programma in C++ segue lo schema:

Programmazione con il linguaggio LibreOffice Basic

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py.

Calcolare il massimo di una lista

Struttura di un. Struttura dei programmi C

Risoluzione di un problema

3. Matrici e algebra lineare in MATLAB

Usare Python in Linux

Foglio Elettronico Lezione 1

Primo programma in C

Matrici Vettori di stringhe

Laboratorio di Python

Elementi di Informatica A. A. 2016/2017

LEZIONE 1 LE BASI DEL LINGUAGGIO C

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

STRUTTURE DI CONTROLLO DEL C++

Matrici Vettori di stringhe

Sviluppo di programmi

Funzioni, Stack e Visibilità delle Variabili in C

4. I moduli in Access 2000/2003

Laboratorio di Python

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

L AMBIENTE CODE BLOCKS E L IO

Laboratorio di programmazione

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

La sintassi del C APPENDICE H

Corso di JavaScript. M. Malatesta 4-Funzioni e strutture di controllo-03

Selezioni scolastiche 2018

Avviate l interprete Python selezionandolo dal menu dei programmi. Una volta avviato, l interprete presenta un cursore in cui inserire comandi

Fondamenti di Informatica T-1

Strutture di Controllo

Laboratorio di Python

Introduzione a Matlab

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Strutture di controllo condizionali in Matlab

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Dichiarazione di variabili

Laboratorio di Python

Laboratorio di Python

Programmazione orientata agli oggetti: le classi

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Italiano

Esercitazione 4. Comandi iterativi for, while, do-while

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

Corso di Fondamenti di Programmazione canale E-O ... Un esempio per iniziare. printf) Altri cenni su printf() Esercizi 8. (printf(

La Programmazione. Cos è la programmazione? Concetti preliminari

Programmazione in Java (I modulo)

Estrazione di dati da una matrice

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

Laboratorio di Programmazione

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

2 Operatori matematici e costrutto if

Transcript:

Introduzione a Python e Gurobi

Introduzione Python è un linguaggio di programmazione ad alto livello, rilasciato pubblicamente per la prima volta nel 1991 dal suo creatore Guido van Rossum, programmatore olandese attualmente operativo in Dropbox. Ultime Versioni: Python 2.7 Python 3.6

Python Jupyter Notebook -> Scrivere e eseguire codice, scrivere testo, commentare il codice... Aprire il Terminal /opt/anaconda/bin/jupyter notebook Python Notebook

Jupyter Notebook New-> Notebooks - Python

Sintassi di Base Funzione di Stampa Gli elementi separati da virgole sono stampati con uno spazio nel mezzo. Operatori come \n o \t indicano una nuova riga o uno spazio di tabulazione.

Sintassi di Base I commenti sono contrassegnati dal simbolo # Generalmente, i programmatori chiamano le variabili con dei nomi significativi, in modo da documentare a cosa servono. Possono contenere sia lettere che numeri, ma non possono iniziare con un numero. In Python esistono alcune parole chiave riservate, che non si possono utilizare come nomi di variabili.

Tipi di Variabili Cinque tipi di variabili diverse: numeri, stringhe, liste, tuple e dizionari. Istruzioni di assegnazione

Tipi di Variabili Stringhe: Una stringa è una sequenza di caratteri.

Tipi di Variabili Liste: Come una stringa, una lista è una sequenza di valori. Gli elementi sono separi da virgole e racchiusi tra parentesi quadre [ ]

Tipi di Variabili Funzione: sum([cosa sommare] [iterazione]) Se vogliamo sommare la lista p= [4 6 7]

Tipi di Variabili Per creare una lista vuota di 5 elementi. Per creare una matrice vuota di 5 colonne e 3 righe. Per accedere ad ogni elemento L[i][j].

Tipi di Variabili Python contiene una serie di funzioni per convertire i valori da un tipo a un altro. A stringa str() A intero int() A numeri I virgola mobile float()

Operatori di Base Operatori Aritmetici + Somma / Divisione - Sostrazione % Modulo * Moltiplicazione ** Potenza Operatori di confronto a==b a è uguale a b a<b a è minore di b a!=b a è diverso da b a>=b a è maggiore o uguale a b a>b a è maggiore di b a<=b a è minore o uguale a b

Operatori di Base Operatori di assegnazione a=b Assegna il valore di b ad a a*=b Moltiplica a con b, assegna il risultato ad a a+=b a-=b Aggiunge b ad a, assegna il risultato ad a Sottrae b ad a,, assegna il risultato ad a Operatori Logici and or not a/=b Divide a con b, assegna il risultato ad a a**=b a^b e, assegna il risultato ad a

IF / ELSE Esecuzione Condizionale Esempio:

Iterazione Tipo while for Descrizione Ripete un gruppo di istruzioni se la condizione è vera. Esegue un gruppo di istruzioni un numero specificato di volte. while:

Iterazione Tipo while for Descrizione Ripete un gruppo di istruzioni se la condizione è vera. Esegue un gruppo di istruzioni un numero specificato di volte. for:

For: Iterazione

Iterazione Controllo. Istruzione break Descrizione Termina il loop.

Input da Tastiera I programmi che abbiamo scritto finora non accettano dati in ingresso da parte dell utente, ed eseguono sempre le stesse operazioni. Testo = input()

Numeri casuali Import random ll modulo random contiene delle funzioni che generano numeri pseudocasuali. La funzione randint richiede due parametri interi, uno inferiore e uno superiore, e restituisce un intero casuale nell intervallo tra i due parametri (entrambi compresi) Random.randint(5,10)

Esercizio Creare un codice che genera un numero casuale tra 1 e 10. Chiede all utente di indovinare questo numero. L utente ha tre opportunità per indovinare il numero.

Gurobi È un solver commerciale. Si chiama cosí per i creatori: Zonghao Gu, Edward Rothberg and Robert Bixby. La installazione si fa mediante la pagina www.gurobi.com e si può chiedere una licenza accademica gratuita.

Esempio LP

Esempio LP Chiamiamo il modulo gurobi Definiamo il modelo con Model. Dentro la parentesi si aggiunge il nome del modello. E la variabile m sarà usata da Python ogni volta che ci riferiamo al modello.

Esempio LP Si creano le varibili con model.addvar() model.addvar(), prende i seguenti argomenti vtype può essere GRB.BINARY, GRB.CONTINUOUS, GRB.INTEGER, GRB.SEMICONT o GRB.SEMIINT

Esempio LP Per integrare le variabili dobbiamo aggiornare il modelo, model.update() Definiamo la funzione obbiettivo con model.setobjective( EXPRESION, SENSE ) GRB.MAXIMIZE e GRB.MINIMIZE

Esempio LP Aggiungiamo i vincoli con model.addconstr( LHS, sense, RHS, name= ) o con model.addconstr( expression, name ) GRB.EQUAL, GRB.LESS_EQUAL or GRB.GREATER_EQUAL

Esempio LP Scriviamo la formulazione in un file.lp con model.write() Alla fine risolviamo il problema con model.optimize()

Esempio LP Una volta risolto il problema possiamo accedere: Al valore della funzione obbiettivo m.objval m.objval Ai valori delle variabili m.getvars()

Esercizio