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