Programa linear para modelar determinado problema
Aqui está o problema que estou tentando resolver:
"Uma empresa fabrica três produtos, denominados produto A, produto B e produto C. A empresa tem 4 trabalhadores disponíveis e os trabalhadores têm taxas diferentes à medida que trabalham em cada um dos três produtos. Além disso, devido à natureza dos seus contratos, os trabalhadores cobram uma quantia diferente dependendo do produto em que estão trabalhando. O tempo que leva para o trabalhador i fazer no produto de tempo A, B ou C, e o valor que eles cobram dependendo do produto, estão resumidos nas duas tabelas dado.
Tabela 1: Tempo em minutos que o Trabalhador i leva para fazer uma unidade do produto j.
Tabela 2: Valor pago pela empresa por uma hora de Trabalhador i no trabalho no produto j.
(Não consigo criar as tabelas reais aqui, mas é muito fácil ter uma ideia de como é a estrutura das tabelas a partir das descrições acima)
Suponha que cada trabalhador trabalhe 40 horas por semana. Devido aos compromissos da empresa com os clientes existentes, a empresa deve produzir pelo menos 100 unidades do produto A, 150 unidades do produto B e 100 unidades do produto C. Escreva um programa linear que dirá à empresa como atribuir cada trabalhador para que a demanda por cada widget é atendida e o custo para a empresa é minimizado.
Assim, você deve indicar quais são as variáveis de decisão e, em seguida, qual é o vetor correspondente à função objetivo, a matriz correspondente às restrições, etc. "
Passei horas tentando formular isso como um programa linear e a única abordagem que consegui pensar foi minimizar o custo total, tornando-o na forma min CX, onde cada elemento de C, ou seja, C (i) (j) denota a quantidade que o trabalhador i cobra para trabalhar no produto j por unidade de tempo e cada elemento de X, ou seja, X (i) (j) denota o tempo total que o trabalhador i gasta trabalhando no produto j. Mas esta obviamente não é a abordagem certa, já que C e X são considerados vetores. Tentei pesquisar problemas semelhantes a este, mas não consegui encontrar nenhum.
Respostas
Você está no caminho certo. Você pode esmagar o$C$ e $X$matrizes em vetores. Por exemplo, suponha que você tenha dois trabalhadores e três produtos, de modo que$C$ e $X$são matrizes 2x3. Deixei$c=(C_{11}, C_{12}, C_{13}, C_{21}, C_{22}, C_{23})$ e deixar $x = (X_{11}, \dots, X_{23})$. Agora você tem vetores.
Vamos considerar um período de tempo de planejamento de 1 semana. Cada trabalhador trabalha 8 horas por dia e 5 dias por semana, de forma que a quantidade de tempo disponível para trabalhar por semana seja igual a$40$ horas $= 2,400$minutos. Vamos apresentar$4 \cdot 3 = 12 $ variáveis inteiras positivas designadas como $x_{i,j}$ Onde $i=1,2,3,4$ e $j=1,2,3$.
$x_{i,j}$ representa a quantidade de j-ésimo produto feito pelo i-ésimo trabalhador, claramente deve ser um número inteiro positivo.
$a_{i,j}$ é o tempo em minutos gasto pelo Trabalhador i para fazer uma unidade do produto j.
$b_{i,j}$ é o custo pago pela empresa por uma hora de trabalhador i ao trabalhar no produto j
Queremos atender a demanda semanal dos três produtos, gastando o mínimo possível.
A função objetivo pode ser adequadamente formulada como
$ \min \sum_{i=1}^4 \sum_{j=1}^3 (a_{i,j}/60) \cdot b_{i,j} \cdot x_{i,j} $
sujeito 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 a restrição na demanda semanal por j-ésimo produto, onde $c_j $ é a demanda por j-ésimo produto.
$ \sum_{j=1}^3 a_{i,j} x_{i,j} $ é o tempo de trabalho gasto pelo i-ésimo trabalhador, então $ \sum_{j=1}^3 a_{i,j} x_{i,j} \leq 2,400 $ designa a restrição na quantidade total de minutos disponíveis para o i-ésimo trabalhador em uma semana.