Programma lineare per modellare un dato problema
Ecco il problema che sto cercando di risolvere:
"Un'azienda produce tre prodotti, denominati prodotto A, prodotto B e prodotto C. L'azienda ha 4 lavoratori disponibili e i lavoratori hanno tariffe diverse mentre lavorano su ciascuno dei tre prodotti. Inoltre, a causa della natura dei loro contratti, i lavoratori addebitano un importo diverso a seconda del prodotto su cui stanno lavorando. Il tempo impiegato dal lavoratore i per produrre sul prodotto del tempo A, B o C, e l'importo addebitato a seconda del prodotto, sono riassunti nelle due tabelle dato.
Tabella 1: tempo in minuti impiegato dal lavoratore i per realizzare un'unità di prodotto j.
Tabella 2: Importo pagato dall'azienda per un'ora di lavoratore i quando lavora sul prodotto j.
(Non sono in grado di creare le tabelle effettive qui, ma è abbastanza facile avere un'idea di quale sia la struttura delle tabelle dalle descrizioni delle tabelle sopra)
Supponiamo che ogni lavoratore lavori per 40 ore ogni settimana. A causa degli impegni dell'azienda nei confronti dei clienti esistenti, l'azienda deve produrre almeno 100 unità di prodotto A, 150 unità di prodotto B e 100 unità di prodotto C.Scrivere un programma lineare che indicherà all'azienda come assegnare ogni lavoratore in modo che la domanda per ogni widget è soddisfatta e il costo per l'azienda è ridotto al minimo.
Quindi, devi indicare quali sono le variabili di decisione, e poi qual è il vettore corrispondente alla funzione obiettivo, la matrice corrispondente ai vincoli, ecc. "
Ho passato ore a cercare di formularlo come un programma lineare e l'unico approccio a cui potevo pensare era di minimizzare il costo totale rendendolo della forma min CX dove ogni elemento di C cioè C (i) (j) denota l'importo che il lavoratore addebita per lavorare sul prodotto j per unità di tempo e ogni elemento di X, cioè X (i) (j) denota il tempo totale che il lavoratore spende per lavorare sul prodotto j. Ma questo ovviamente non è l'approccio giusto poiché C e X dovrebbero essere vettori. Ho provato a cercare problemi che potrebbero essere simili a questo ma non sono riuscito a trovarne nessuno.
Risposte
Sei sulla strada giusta. Puoi schiacciare il file$C$ e $X$matrici in vettori. Ad esempio, supponi di avere due lavoratori e tre prodotti, quindi$C$ e $X$sono 2x3 matrici. Permettere$c=(C_{11}, C_{12}, C_{13}, C_{21}, C_{22}, C_{23})$ e lascia $x = (X_{11}, \dots, X_{23})$. Ora hai i vettori.
Consideriamo un periodo di pianificazione di 1 settimana. Ogni lavoratore lavora 8 ore al giorno e 5 giorni alla settimana, in modo che la quantità di tempo disponibile per lavorare alla settimana sia pari a$40$ ore $= 2,400$minuti. Lasciate introdurre$4 \cdot 3 = 12 $ variabili intere positive designate come $x_{i,j}$ dove $i=1,2,3,4$ e $j=1,2,3$.
$x_{i,j}$ rappresenta la quantità di j-esimo prodotto realizzato dall'i-esimo lavoratore, chiaramente dovrebbe essere un numero intero positivo.
$a_{i,j}$ è il tempo in minuti impiegato dal lavoratore i per realizzare un'unità di prodotto j.
$b_{i,j}$ è il costo pagato dall'azienda per un'ora di lavoratore i quando lavora sul prodotto j
Vogliamo soddisfare la domanda settimanale dei tre prodotti, spendendo il minimo possibile.
La funzione obiettivo può essere adeguatamente formulata come
$ \min \sum_{i=1}^4 \sum_{j=1}^3 (a_{i,j}/60) \cdot b_{i,j} \cdot x_{i,j} $
soggetto a $\left\{ \begin{array}{l} \sum_{i=1}^4 x_{i,1} \geq 100 \\ \sum_{i=1}^4 x_{i,2} \geq 150 \\ \sum_{i=1}^4 x_{i,3} \geq 100 \\ \sum_{j=1}^3 a_{1,j} x_{1,j} \leq 2,400 \\ \sum_{j=1}^3 a_{2,j} x_{2,j} \leq 2,400 \\ \sum_{j=1}^3 a_{3,j} x_{3,j} \leq 2,400 \\ \sum_{j=1}^3 a_{4,j} x_{4,j} \leq 2,400 \\ x_ij \in N \forall i=1,2,3,4 \forall j=1,2,3 \\ \end{array} \right. $
$ \sum_{i=1}^4 x_{i,j} \geq c_j $ designa il vincolo sulla domanda settimanale per il prodotto j-esimo dove $c_j $ è la domanda per il prodotto j-esimo.
$ \sum_{j=1}^3 a_{i,j} x_{i,j} $ è il tempo di lavoro impiegato dal lavoratore i-esimo, quindi $ \sum_{j=1}^3 a_{i,j} x_{i,j} \leq 2,400 $ indica il vincolo sulla quantità totale di minuti disponibili per i-esimo lavoratore in una settimana.