Dal 2010 · Oltre 2 milioni di utilizzi degli strumenti ogni mese
Dal 2010
Aggiungi a Chrome

La Mia Cassetta Degli Attrezzi

Modalità Automatica

Nessuno strumento salvato.

Aggiorna alla Versione Premium
Strumenti correlati
Graficatore di Sistema di DisequazioniCalcolatrice cinematicaCalcolatore della Resa PercentualeCalcolatore di Spaziatura Piante
Pagina Iniziale > Matematica > Operazioni matematiche avanzate
 

Risolutore di Programmazione Lineare

Risolve problemi di programmazione lineare col metodo del simplesso. Supporta obiettivi di massimo o minimo, vincoli misti e fino a otto variabili, e per problemi a due variabili disegna la regione ammissibile con l'ottimo evidenziato.

Utilizzo gratuitoSenza registrazioneRisultati istantanei
Risolutore di Programmazione LineareProvalo ora — gratis ▼
La prima riga è l'obiettivo (Massimizza o Minimizza …). Ogni riga successiva è un vincolo lineare. Usa <=, >=, o =. Scorciatoia: x, y >= 0 dichiara la non-negatività per più variabili. Fino a 8 variabili e 20 vincoli.

Embed Risolutore di Programmazione Lineare Widget

Risolutore di Programmazione Lineare

Il Risolutore di Programmazione Lineare è un calcolatore online che trova il massimo o il minimo di una funzione obiettivo lineare soggetta a un sistema di disuguaglianze o uguaglianze lineari. Utilizza il metodo del simplesso (variante Big-M) in modo che i vincoli <=, >= e = possano essere mischiati liberamente e, per i problemi a 2 variabili, disegna un grafico interattivo della regione ammissibile con ogni vertice e l'ottimo evidenziati.

Cos'è la programmazione lineare?

Un problema di programmazione lineare (PL) chiede di:

Massimizzare (o minimizzare): Z = c1 x1 + c2 x2 + … + cn xn soggetto a: a11 x1 + … + a1n xn (≤, ≥, o =) b1 a21 x1 + … + a2n xn (≤, ≥, o =) b2 … am1 x1 + … + amn xn (≤, ≥, o =) bm x1, x2, …, xn ≥ 0

L'insieme dei punti che soddisfano ogni vincolo è chiamato regione ammissibile, un poliedro convesso. Il Teorema Fondamentale della Programmazione Lineare afferma che se la PL ha un ottimo finito, esso viene raggiunto in un vertice (punto estremo) di questo poliedro. Questo è il motivo per cui il metodo del simplesso — che cammina da vertice a vertice — è così efficace.

Come funziona il metodo del simplesso

Partendo da un vertice ammissibile, il metodo del simplesso migliora ripetutamente l'obiettivo ruotando verso un vertice vicino con un valore migliore. La meccanica:

  1. Forma standard: converte la PL in max cTx soggetta a Ax = b, x ≥ 0. Per i vincoli <=, aggiunge variabili slack (scarto); per >=, sottrae un surplus e aggiunge una variabile artificiale con una grande penalità −M; per le uguaglianze, aggiunge un'artificiale.
  2. Tableau iniziale: la base consiste di slack e artificiali, il che fornisce un vertice di partenza ovvio.
  3. Variabile entrante: sceglie la variabile non di base con il costo ridotto positivo più grande \( c_j - z_j \). Se non esiste tale variabile, la soluzione attuale è ottimale.
  4. Variabile uscente: dalla colonna entrante, esegue il test del rapporto minimo — divide l'RHS di ogni riga per il suo coefficiente positivo nella colonna entrante e sceglie la riga con il rapporto più piccolo. Se non esiste alcun coefficiente positivo, la PL è illimitata.
  5. Pivot: usa l'eliminazione gaussiana per rendere la colonna entrante un vettore unitario, con 1 nella riga uscente.
  6. Ripete fino a quando il criterio di arresto non è soddisfatto.

Se al termine dell'algoritmo rimane in base una variabile artificiale con valore positivo, la PL originale è impossibile.

Metodo grafico (per 2 variabili)

Per i problemi a due variabili, la regione ammissibile è un poligono convesso 2D. Poiché l'ottimo è sempre in un vertice, enumerare ogni vertice e valutare l'obiettivo lì è sufficiente per risolvere il problema. Questo calcolatore esegue tale enumerazione intersecando ogni coppia di confini dei vincoli, mantenendo solo le intersezioni che soddisfano tutti gli altri vincoli e ordinandole in senso antiorario per la visualizzazione.

Sintassi di input

Scrivi l'obiettivo sulla prima riga, poi un vincolo per riga. I nomi delle variabili possono essere qualsiasi identificatore (x, y, x1, profitto…). Gli operatori sono <=, >= e =. La non-negatività può essere scritta come x, y >= 0 come scorciatoia.

Massimizza 3x + 5y x + y <= 10 2x + y <= 16 x + 3y <= 18 x, y >= 0

Le righe vuote e i commenti che iniziano con # vengono ignorati. Il risolutore accetta fino a 8 variabili decisionali e 20 vincoli.

Esempio svolto

Considera un laboratorio di mobili che costruisce tavoli e sedie. Ogni tavolo produce 3 \$ di profitto e richiede 1 unità di legno e 2 unità di lavoro. Ogni sedia produce 5 \$ di profitto e richiede 1 unità di legno, 1 unità di lavoro e 3 unità di vernice. Disponibili: 10 legno, 16 lavoro, 18 vernice. Con x = tavoli e y = sedie, la PL è:

Massimizza Z = 3x + 5y x + y <= 10 (legno) 2x + y <= 16 (lavoro) x + 3y <= 18 (vernice) x, y >= 0

La regione ammissibile è un pentagono. Valutando Z in ogni vertice:

Vertice (x, y)Z = 3x + 5yAmmissibile?
(0, 0)0
(8, 0)24
(6, 4)38 ← ottimo
(0, 6)30

Quindi il laboratorio dovrebbe costruire 6 tavoli e 4 sedie per un profitto massimo di 38 \$. I vincoli di legno e lavoro sono attivi (equivalgono al loro RHS all'ottimo); la vernice ha uno slack di 0 (anch'essa attiva in questo caso), il che significa che tutte e tre le risorse sono esaurite.

Errori comuni e cosa rileva il risolutore

SituazioneSintomoCome risolvere
PL Illimitata Il risolutore riporta "Illimitato" Aggiungi un limite superiore mancante. L'obiettivo può crescere senza limiti perché la regione ammissibile si estende all'infinito nella direzione del miglioramento.
PL Impossibile Il risolutore riporta "Impossibile" I vincoli si contraddicono tra loro (es. x >= 10 con x <= 5). Rivedi ogni coppia di limiti.
Ottimi alternativi Badge di avviso; vertice ottimale unico ma Z è raggiunto lungo un lato Accade quando il vettore obiettivo è parallelo a un vincolo attivo. Qualsiasi combinazione convessa dei due vertici su quel lato è anch'essa ottimale.
Degenerazione / cicli Il simplesso itera senza migliorare Z Raro nei problemi scolastici; può essere risolto con la regola di Bland o la perturbazione. Questo risolutore limita le iterazioni per evitare loop infiniti.

Applicazioni

Come usare questo calcolatore

  1. Digita la tua PL nella casella di testo. La prima riga deve iniziare con Massimizza o Minimizza. Ogni riga successiva è un vincolo, uno per riga.
  2. Usa la scorciatoia x, y >= 0 per dichiarare la non-negatività per tutte le variabili elencate contemporaneamente.
  3. Clicca su Risolvi problema di PL. Il risolutore riporta il valore ottimale Z, i valori ottimali di ogni variabile decisionale, un elenco di vincoli attivi e, per le PL a 2 variabili, un grafico interattivo della regione ammissibile.
  4. Passa il mouse su un vertice nel grafico per vedere le sue coordinate e il valore Z. L'ottimo è evidenziato con una stella.
  5. Rivedi i tableau del simplesso per vedere ogni pivot e tracciare come il metodo migliora Z. La colonna entrante è evidenziata in ambra; la riga uscente in rosso.

Domande frequenti

Cos'è un problema di programmazione lineare?

Un problema di programmazione lineare (PL) richiede il massimo o il minimo di una funzione obiettivo lineare su un insieme di variabili decisionali che soddisfano un sistema di disuguaglianze o uguaglianze lineari. Il set ammissibile è un poliedro convesso e l'ottimo è sempre raggiunto in uno dei suoi vertici — il fatto chiave sfruttato dal metodo del simplesso.

Come funziona il metodo del simplesso?

Il metodo del simplesso si sposta lungo i vertici del poliedro ammissibile. Ogni passaggio (un "pivot") scambia una variabile nella base con un'altra, spostandosi verso un vertice vicino con un obiettivo strettamente migliore. L'algoritmo si ferma quando nessun pivot può migliorare Z — il vertice corrente è quindi ottimale. Questo strumento utilizza la variante Big-M in modo che i vincoli <=, >= e = possano essere mischiati.

Cos'è la regione ammissibile?

La regione ammissibile è l'insieme di tutti i valori delle variabili che soddisfano contemporaneamente ogni vincolo. Per 2 variabili è un poligono convesso 2D; per n variabili è un poliedro n-dimensionale. Un poliedro vuoto significa che la PL è impossibile; un poliedro che si estende all'infinito nella direzione del miglioramento significa che la PL è illimitata.

Cosa significa "illimitato" nella programmazione lineare?

Una PL è illimitata quando la regione ammissibile si allunga all'infinito in una direzione in cui l'obiettivo continua a migliorare. Ad esempio, Massimizza x soggetto solo a x ≥ 0 non ha un massimo finito. Le PL del mondo reale che risultano illimitate di solito rivelano un vincolo mancante — spesso un limite superiore su una risorsa o variabile.

Cosa significa "ottimi alternativi"?

Gli ottimi alternativi si verificano quando più di un punto raggiunge lo stesso miglior valore obiettivo. Geometricamente, l'obiettivo è parallelo a un lato attivo del poligono, quindi ogni punto lungo quel lato — e ogni combinazione convessa dei suoi estremi — è ottimale. Il risolutore lo segnala quando una variabile decisionale non di base ha un costo ridotto pari a zero al termine.

Quante variabili e vincoli accetta il risolutore?

Fino a 8 variabili decisionali e 20 vincoli. Il grafico interattivo della regione ammissibile viene disegnato solo per problemi a 2 variabili; con 3 o più variabili ottieni comunque la soluzione numerica completa del simplesso, i tableau passo dopo passo e il rapporto sui vincoli attivi.

Ulteriori letture

Cita questo contenuto, pagina o strumento come:

"Risolutore di Programmazione Lineare" su https://MiniWebtool.com/it/risolutore-di-programmazione-lineare/ di MiniWebtool, https://MiniWebtool.com/

dal team di miniwebtool. Aggiornato: 21 apr 2026

Puoi anche provare il nostro Risolutore di Matematica AI GPT per risolvere i tuoi problemi matematici attraverso domande e risposte in linguaggio naturale.

Operazioni matematiche avanzate:

Strumenti popolari e aggiornati:

Risolutore di Sistemi di Equazioni LineariRisolutore di Equazioni LineariRisolutore del Problema del Matrimonio StabileVedi tutti →
Pagina Iniziale > Matematica > Operazioni matematiche avanzate > Risolutore di Programmazione Lineare