Dado trabalhos , cada trabalho exige tempo para completar.
Cada trabalho deve ser pré-processado e pós-processado por uma única máquina M que pode lidar com apenas 1 trabalho por vez e as duas fases requerem 1 unidade de tempo. Depois de ser pré-processados, trabalho é enviado para uma máquina com poder ilimitado (que pode lidar em paralelo um número ilimitado de postos de trabalho) e ele vai estar pronto a tempo , então ele deve ser enviado ( imediatamente ) a máquina M novamente para pós-processamento.
O problema de decisão associado é:
Entrada: O processamento tempos de N postos de trabalho, um inteiro K ≥ 2 N Pergunta: podemos processar todos os postos de trabalho em tempo ≤ K
usando o modelo acima "gargalo"?
Esse problema tem um nome?
Qual é a sua complexidade? (está em ou está em N P cheio de ?)
ATUALIZAÇÃO 29 de março:
Como percebido corretamente por M.Cafaro em sua resposta, o problema é semelhante ao
Problema de tempo mínimo sem restrição (UMFT) (consulte o Capítulo 17 do
Manual de programação de algoritmos ), que é duro (comprovado em W. Kern e W. Nawijn, "Planejando trabalhos de multi-operação com tempo atrasado em uma única máquina", University of Twente, 1993). Como posso ver, existem algumas diferenças, porque no meu modelo:
- o tempo de pré / pós-processamento é constante (1 unidade de tempo)
- assim que o trabalho for concluído, ele deverá ser imediatamente pós-processado (o modelo UMFT permite atrasos)
Não encontrei a prova de Kern & Nawijn on-line, então ainda não sei se as restrições acima alteram a dificuldade do problema.
Finalmente, você pode pensar em todo o processo como um único robô de cozinha com um grande forno; o robô pode preparar diferentes tipos de alimentos, um de cada vez (todos exigem o mesmo tempo de preparação), colocá-los no forno e, assim que estiverem cozidos, deve removê-los do forno e adicionar alguns ingredientes frios ... o " problema do robô de cozinha " :-)
Respostas:
A questão é comprovada como NP-difícil em "Minimizar o tempo de fabricação em uma oficina de fluxo de duas máquinas com atrasos e operações de unidade de tempo é NP-difícil" por W. Yu, H. Hoogeveen e JK Lenstra (2004). Isso é comprovado na seção 9 do artigo:
O modelo exato estudado aqui é que o trabalho consiste em duas operações que levam tempo unitário separado por algum tempo de atraso T iEu TEu . O problema é fortemente NP-completos tanto quando o valor exato do atraso é especificado para cada trabalho, e quando algum tempo atraso mínimo é especificado para cada trabalho.TEu
fonte
Parece o chamado modelo de programação mestre-escravo introduzido por Sahni . Em particular, seu problema se enquadra nos sistemas mestre-escravo de mestre único. Você pode distinguir vários casos:
1) Se você não adicionar nenhuma restrição adicional à ordem de execução da tarefa (como no seu caso), o problema será chamado de problema de tempo mínimo de término irrestrito (UMFT) e tem sido demonstrado ser NP-hard;
2) Mesmas ordens de pré e pós-processamento: é possível projetar um algoritmo para construir uma ordem, preservando o tempo mínimo de acabamentoO ( n logn ) (OPMFT);
Portanto, no caso 1, seu problema é duro, enquanto estiver emNP P
Problemas relacionados adicionais são:
3) Pós-processamento de ordem inversa: para qualquer permutação de pré-processamento, , é possível construir um cronograma de ordem inversa, conhecido como cronograma canônico de ordem inversa (CROS). Dada uma permutação de pré-processamento σσ σ , o CROS correspondente é único. É fácil estabelecer que todo cronograma mínimo de ordem inversa de término no tempo (ROMFT) é um CROS.
4) restrição no-wait-in-process:
a) [MFTNW] Minimize o tempo de conclusão, sujeito à restrição de não espera no processo; b) [OP-MFTNW] Esta é a versão de preservação de ordem do MFTNW. Ou seja, minimize o tempo de acabamento, sujeito às restrições de não espera no processo e de preservação da ordem; c) [RO-MFTNW] Minimize o tempo de término, sujeito às restrições de não espera no processo e ordem inversa.
Detalhes adicionais no Manual de Agendamento , capítulo 17.
fonte