Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> ingegneria del Software >> .

Come utilizzare programmazione lineare intera

programmazione lineare intera è la scienza della modellazione di un problema che o minimizza o massimizza una funzione obiettivo lineare , con una serie di vincoli espressi come disuguaglianze lineari . Quando completamente risolto , la soluzione del programma lineare intero garantisce la soluzione ottimale al problema. Tuttavia, la complessità del problema bilance esponenzialmente con grandezza problema . Pertanto, si può richiedere molto tempo per arrivare alla soluzione finale . Alternativamente , il problema può essere risolto in parte differenti euristiche e può essere esplorata per ottenere una soluzione non ottimale in un tempo più breve . Cose che ti serviranno
lineare programmazione solutore
computer con sufficiente memoria e potenza di elaborazione
Mostra più istruzioni
formulare e risolvere programmi lineari
1

decidere se il problema è un problema di " massimizzazione " o un problema di " minimizzazione " . Un problema di massimizzazione cerca di trovare una soluzione tale dove è massimizzata la funzione obiettivo . Un problema di minimizzazione cerca di trovare una soluzione in cui è minimizzata la funzione obiettivo . Per esempio , il problema di trovare il percorso più breve tra due punti è un problema di minimizzazione . D'altra parte , il problema di confezionare i massimi ciottoli di dimensioni diverse numerici in una bottiglia è un problema di massimizzazione .
2

decidere le variabili necessarie per la formulazione . Scegliendo il giusto insieme di variabili è necessario per minimizzare la complessità del problema , e corrispondentemente arrivare alla soluzione più veloce . In genere , ogni entità il cui valore influenza la soluzione finale è una variabile .
3

modello la funzione obiettivo . La funzione obiettivo è modellata come una somma di prodotti di variabili e il loro impatto sulla soluzione finale . Ad esempio, se il problema è quello di minimizzare la distanza tra due nodi di un grafo , ogni connessione tra due nodi sarà una variabile che assume il valore 0 o 1 , e il suo contributo alla funzione obiettivo sarà la distanza tra i nodi . In questo caso , la variabile può essere chiamato "X (i, j ) , " dove " i" e " j " sono dei due nodi del grafo , e la distanza tra i due nodi possono essere " V (i, j ) ". X (i , j ) sarà 1 se il collegamento è parte del percorso finale tra i due nodi . Quindi , la funzione obiettivo sarà quello di minimizzare la somma di V (i, j ) * X (i , j ) , dove la somma è sopra tutte le connessioni .
4

Impostare i vincoli. I vincoli devono catturare tutte le restrizioni imposte dal problema . Per il più breve percorso di esempio , ci sono i seguenti vincoli :

X ( i, j ) può essere o 0 o 1 . Quindi , X (i , j ) deve essere maggiore o uguale a 0 , e X (i, j ) deve essere minore o uguale a 1 .

Connessione X (i , j ) è scelto, esattamente un collegamento dal nodo " j " per qualche altro nodo diverso "i" dovrebbe essere scelto . Quindi , X (i , j ) deve essere maggiore o uguale alla somma di tutte le variabili di tipo X ( j , k ) , dove " k" non è uguale a "i ".

Una connessione dal dovrebbe essere selezionato il nodo iniziale . Quindi , somma di X ( n, k ) dovrebbe essere 1 , dove " n" è il nodo di partenza. Allo stesso modo , somma di X (k , m ) dovrebbe essere 1 , dove " m" è il nodo finale.
5

modello il problema sia nel sistema di programmazione matematica ( MPS ) formato , o il lineare ( LP ) formato di programmazione .
6

o acquistare un solutore commerciale come FICO o CLPEX , o scaricare un solutore gratuito come GLPK . Si noti i solutori liberi sono molto più lento delle solutori commerciali e possono non essere adatte per risolvere problemi di grandi dimensioni .
7

Se il solutore non converge alla soluzione definitiva in tempi ragionevoli , prova euristica . Una soluzione potrebbe essere quella di rimuovere i vincoli interi sulle variabili e approssimative le variabili all'intero più vicino per ottenere una soluzione sub-ottimale .

 

software © www.354353.com