Alguém tem exemplos da vida real em que resolve regularmente problemas completos ou complexos de NP (por heurística ou buscando uma solução subótima ou o que seja) em seu trabalho? Sei que eles ocorrem no planejamento, planejamento, design VLSI etc., mas estou tentando ter uma idéia das principais indústrias que hoje empregam programadores ou engenheiros que fazem isso regularmente. Se alguém desenvolvesse conhecimento ou uma biblioteca, por exemplo, otimização combinatória, onde alguém poderia usá-lo como parte de um trabalho de programação?
Alguma conta pessoal?
algorithms
optimization
alta largura de banda
fonte
fonte
Respostas:
Algumas das coisas em que consigo pensar (na maioria delas, mais ou menos):
Existem muitos exemplos padrão, como encontrar a rota mais curta, agendar enfermeiros, etc. mas se você gosta de otimização combinatória, sabe tudo sobre esses :)
fonte
Utilizei o recozimento simulado com restrição de tempo para resolver um problema de vendedor ambulante na fabricação de painéis de toque. A cada milissegundo que podíamos barbear a partir do tempo de ciclo da gravação a laser de cada painel aumentava a taxa de transferência, a utilização e, portanto, a lucratividade da máquina, por isso dediquei muito esforço a minimizar o tempo morto (caminhos sem riscas) entre os caminhos de riscagem (que obviamente não poderia ser otimizado).
Usei um algoritmo com limite de tempo para contornar a dureza NP do problema, pois não podíamos arcar com o risco de o cálculo da otimização demorar mais do que o tempo economizado pelo caminho mais otimizado. Enquanto a máquina estava movendo o painel da posição de carregamento para a posição em que a cabeça do laser estava no canto mais próximo, tive tempo para executar algumas simulações. O algoritmo quase nunca chegou a ser concluído dentro das poucas centenas de milissegundos da mudança, mas quase sempre retornava um caminho de gravação melhor do que qualquer um dos modelos simples e não adaptativos que sempre usamos antes (como caminhos em espiral ou cobra).
fonte
Estou trabalhando (agora, na verdade) no problema de bioinformática do alinhamento de várias seqüências de DNA local. O ponto disso é que, se muitas seqüências de genes com alguma propriedade comum (perfil de expressão semelhante ou a mesma ligação do fator de transcrição em um experimento com chip ChIP) se alinham fortemente em algum momento, então você provavelmente já encontrou a razão de sua propriedade. Por outro lado, estou mais interessado nos aspectos estatísticos do problema. Mesmo que seja NP-difícil, você não perde muito usando heurísticas na prática. A parte interessante do problema, IMHO, é um problema de relação sinal / ruído.
fonte
Realmente não sei o que significa NP completo / difícil, mas acho que o planejamento automático de suprimentos é um tipo disso.
Você tem um plano de demanda daqui a 90 dias para 100 SKUs de produtos: cerveja! O SKU de 100 produtos vem de:
Existem "linhas" de máquinas para cada operação: da fabricação de cerveja à embalagem. As máquinas podem realizar mais operações, digamos, algumas máquinas de embalagem podem fabricar 6 pacotes e 3 pacotes, mas outras podem fazer apenas 6 pacotes. Existem restrições, por exemplo, velocidade, ou a chaleira grande para fazer cerveja min. 6000, máx., 8000 l de cerveja (mas se o tipo de cerveja for leve, o mínimo é 5000 le o máximo é 7000 l). E assim por diante, em todos os níveis.
A tarefa: como mencionei, há um plano de demanda para o tipo 100 do nível 5 (o material engarrafado e embalado). Faça um plano de fabricação ideal para todos os 5 níveis, todas as máquinas. Minimize as trocas de máquinas (por exemplo, engarrafar .5, .5, .5, .3, .3, .3 é melhor que .3, .5, .3, .5, .3, .5, há menos swithc, menos tempo morto para as máquinas de engarrafamento). Priorizar pelo cliente: alguns clientes precisam enviar a cerveja apenas com mais de 50% do tempo de validade restante. Etc etc.
Descubra gargalos (eh), faça planos alternativos com a adição de máquinas inexistentes a esses pontos; então, o melhor cenário virtual pode ser usado para sugerir a compra de novas máquinas.
Já é difícil o suficiente, ou devo lhe dizer como funciona uma fábrica têxtil ?
(Observação pessoal: a web, o banco e a logística são áreas desafiadoras, mas são brinquedos para bebês em comparação com os problemas de fabricação.)
Isenção de responsabilidade: os números são distorcidos por motivos de segurança, a ordem de magnitude é real.
fonte