Lezione 1 · Canale 1 · mercoledì 23 settembre 2026

Introduzione alla programmazione matematica

Programmazione Matematica

Dalla retta a Rn\mathbb{R}^n

Lo studio delle funzioni di una variabile reale si estende alle funzioni di più variabili, definite su Rn\mathbb{R}^n con nn arbitrario:

R ⟶ Rn\mathbb{R}\ \longrightarrow\ \mathbb{R}^n

In R\mathbb{R} il grafico dà un sostegno intuitivo. In Rn\mathbb{R}^n non c'è con la stessa semplicità, quindi il passaggio si fa per astrazione: si parte da ciò che si conosce in R\mathbb{R} e si alza il livello di generalità, finché si vede quali differenze sono davvero tecniche. Sono pochissime: riguardano soprattutto la notazione e un po' di tecnica, e l'intuizione generale cambia poco.

L'estensione comprende le derivate parziali, le derivate seconde e i massimi e minimi di funzioni di più variabili.

Perché massimi e minimi

La massimizzazione e la minimizzazione di funzioni di più variabili sono alla base di molti ambiti. Di fronte a un problema la domanda utile è: quale funzione f(x)f(x) si vuole massimizzare o minimizzare? È il punto di partenza dei modelli di programmazione matematica.

Dal problema a parole al modello

Un problema nasce quasi sempre descritto a parole da chi lo vive. Da quel racconto bisogna estrarre tre cose:

  • le variabili decisionali x1,x2,…,xnx_1, x_2, \ldots, x_n, cioè le decisioni da prendere;
  • i vincoli, cioè le restrizioni che le decisioni devono rispettare;
  • l'obiettivo, cioè ciò che si vuole minimizzare o massimizzare.

Si traducono in un linguaggio matematico che porta a un problema risolvibile con un algoritmo numerico. Questo passaggio dal linguaggio informale a quello matematico è una parte centrale della programmazione matematica.

Struttura del modello e algoritmi

La struttura di un modello dipende da due cose.

  • La natura delle variabili: continue, discrete o binarie.
  • La natura delle funzioni in gioco: lineari o non lineari, convesse o non convesse.

A ciascuna struttura corrispondono classi di algoritmi. Conoscere la struttura matematica del problema serve a scegliere l'algoritmo giusto e a sviluppare algoritmi specifici per l'istanza da risolvere. Per progettare algoritmi efficaci bisogna conoscere la natura matematica del problema.

Il percorso: non lineare, lineare, intero

  1. Ottimizzazione non lineare. Le funzioni in gioco sono non lineari: è il caso più difficile, e si parte da qui.
  2. Apprendimento automatico. Dietro ogni modello di apprendimento automatico c'è un modello di programmazione matematica, e algoritmi di ottimizzazione, molto spesso non lineare, che addestrano il modello. Lo studio metodologico si specializza poi su questi modelli.
  3. Ottimizzazione lineare. Una classe ampia e importante di problemi in cui tutte le funzioni sono lineari, con semplificazioni matematiche e algoritmiche.
  4. Programmazione lineare intera. Si impone che alcune variabili siano intere.

Il punto di vista è soprattutto algoritmico: il progetto concettuale di algoritmi che risolvano in modo efficiente problemi di natura diversa.

Esempio: il calendario di un campionato

Il calendario di una stagione regolare di pallavolo, con gironi di andata e ritorno a 14 squadre, ammette un numero di soluzioni dell'ordine di dieci miliardi. Le richieste da rispettare sono i vincoli delle società (non giocare in casa in una certa data, evitare una certa trasferta in un certo giorno), gli impegni nelle competizioni europee e le regole di base del calendario.

Costruito a mano, il calendario richiede lunghe consultazioni fra le società. Un modello di programmazione matematica e un algoritmo che lo risolve ne calcolano una soluzione in modo più rapido ed efficiente: un modello di questo tipo fu adottato per la Serie A 2016-2017 e usato per circa dieci anni.

Il modello era costruito sulla simmetria fra andata e ritorno: vale per calendari simmetrici, non per quelli asimmetrici, in cui il ritorno differisce dall'andata.

Apprendimento automatico in medicina

Modelli e algoritmi di apprendimento automatico possono dare informazioni di supporto a una decisione medica, senza sostituire il giudizio dello specialista. Due esempi:

  • distinguere, da immagini, se tumori polmonari ricorrenti hanno la stessa origine (forma metastatica) o origini diverse. La risposta cambia prognosi e trattamento, e ci sono casi in cui gli indicatori noti non bastano a decidere;
  • stimare con una rete neurale convoluzionale, da elettrocardiogrammi non patologici, se una persona ha tra 20 e 30 anni o tra 60 e 70. L'accuratezza è del 93%: la rete usa caratteristiche del segnale che gli indicatori clinici consolidati non evidenziano. Per questo si studiano modelli interpretabili, che dicano quali parti del segnale la rete estrae.

I livelli dell'astrazione

La matematica si può paragonare a una scalinata: il gradino da cui guardare dipende dall'obiettivo. Per ritrovare delle chiavi perse nel piazzale davanti alla scalinata conviene stare sui primi gradini, da cui si vede il piazzale. Per godere del panorama bisogna salire.

Allo stesso modo, nell'usare strumenti matematici occorre saper salire o scendere fra livelli diversi di astrazione. Salire richiede studio, ma da più in alto si raggiungono obiettivi che dai gradini bassi non si raggiungono.

Gli obiettivi

Due obiettivi tengono insieme il corso:

  • Una matematica per l'ingegneria: il passaggio da R\mathbb{R} a Rn\mathbb{R}^n, per sviluppare la capacità di astrarre, in modo graduale.
  • Leggere la realtà come un modello: con variabili decisionali, vincoli e obiettivi. Anche l'intelligenza artificiale si riconduce a un modello di programmazione matematica, e parlarne in questi termini rende più chiaro che cosa c'è dietro.

Conoscere gli algoritmi permette inoltre di interpretare e validare i risultati prodotti dagli strumenti di intelligenza artificiale. L'ottimizzazione si studia prima in forma generale e poi si applica ai modelli e agli algoritmi dell'apprendimento automatico.

Formulario

Passaggio a più variabili

R ⟶ Rn\mathbb{R}\ \longrightarrow\ \mathbb{R}^n

Variabili decisionali

x1,x2,…,xnx_1,x_2,\ldots,x_n

Il modello ha

  • variabili: le decisioni
  • vincoli: le restrizioni
  • obiettivo: da minimizzare o massimizzare

Variabili

  • continue, discrete, binarie

Funzioni

  • lineari o non lineari
  • convesse o non convesse

Percorso

  1. ottimizzazione non lineare
  2. apprendimento automatico
  3. ottimizzazione lineare
  4. programmazione lineare intera