web-dev-qa-db-fra.com

NP complet ou NP problèmes difficiles dans la vie réelle

Quelqu'un a-t-il des exemples de vie réels où ils résolvent régulièrement NP compléter ou NP problèmes de difficultés (par heuristique ou une solution sous-optimale ou autre) dans leur travail? Je sais qu'ils se produisent dans la planification, la planification, la conception de VLSI, etc., mais j'essaie d'avoir une idée des principales industries employant des programmeurs ou des ingénieurs aujourd'hui qui le font régulièrement. Si l'on développait une expertise ou une bibliothèque, par exemple, Optimisation combinatoire où pourrait-on utiliser cela dans le cadre d'un emploi de programmation?

Des comptes personnels?

17
highBandWidth

Certaines des choses que je peux penser (la plupart d'entre elles ont été impliquées dans plus ou moins):

  • Environnements de développement pour les langues et les compilateurs. Des questions telles que: Cette grammaire génère-t-elle une langue ambiguë? (Ce problème est en réalité indéciable!)
  • Récupération de données. Remontage des paquets de données partiellement perdus ou de la récupération de fichiers fragmentés. (Complexité factorielle)
  • Sécurité logicielle. Évaluation de tous les chemins d'exécution possibles via un logiciel pour déterminer si un comportement observé peut lui être attribué. (Arrêt du problème?)
  • Logistique. Optimisation de l'utilisation des transports basés sur des paquets pour transporter, leur taille et où ils doivent aller. (Au moins exponentiel)

Il existe de nombreux exemples standard tels que la recherche de la route la plus courte, la planification des infirmières, etc., mais si vous êtes en optimisation combinatoire, vous savez tout à propos de ceux :)

8
Deckard

J'ai utilisé le temps contraint du recuit simulé pour résoudre un salemier itinérant comme un problème dans la fabrication du panneau tactile. Chaque milliseconde que nous pourrions raser de la durée du cycle de la gravure au laser de chaque panneau augmenterait le débit, l'utilisation et ainsi la rentabilité de la machine, donc je mets beaucoup d'efforts pour minimiser le temps mort (pistes non raccords) entre les chemins de griffonnage (qui évidemment ne pouvait pas être optimisé).

J'ai utilisé un algorithme délimité par le temps pour contourner le NP Durée du problème, car nous ne pouvions pas nous permettre le risque que le calcul d'optimisation puisse prendre plus de temps que le temps enregistré par le chemin le plus optimal. Tandis que la machine déplaçait le panneau de la position de chargement vers la position où la tête laser était au-dessus du coin le plus proche, j'ai eu le temps de lancer des simulations. L'algorithme n'a presque jamais couru à l'achèvement dans quelques centaines de millisecondes du mouvement, mais presque Toujours renvoyé un meilleur chemin de scribe que n'importe lequel des modèles simples et non adaptatifs que nous avions toujours utilisés auparavant (comme une spirale ou des chemins de serpent).

9
Mark Booth

Je travaille (en ce moment, en réalité) sur le problème de la bioinformatique de plusieurs alignements de séquence d'ADN locale. Le point de ceci est que si beaucoup de séquences de gènes avec une même propriété commune (profil d'expression similaire ou la même liaison de facteur de transcription dans une expérience à puce de puce) alignent fortement à un moment donné, vous avez probablement trouvé la raison de leur commun. biens. Là encore, je suis plus intéressé par les aspects statistiques du problème. Même si c'est NP-Hard, vous ne perdez pas grand chose en utilisant des heuristiques dans la pratique. La partie intéressante du problème, IMHO, est un problème de ratio de bruit.

7
dsimcha

Je ne sais pas vraiment, qu'est-ce que NP complet/dur signifie, mais je pense, approvisionnement AutoPlanning est une sorte de ça.

Vous avez une demande de demande 90 jours en avant pour 100 produits SKUS: la bière! Le SKU de 100 produits vient de:

  • il y a 10-15 types de trucs bruts brusques de niveau 1 de niveau 1, ils sont brassés en milliers de bigans litres, et cela prend une journée;
  • après la brassage, certains matériaux doivent être ajoutés (levain?), et il doit être reposer pendant 10-15 jours, puis vous avez 15-20 types de trucs de niveau-2;
  • enfin, quand il est prêt, des matériaux doivent être ajoutés, c'est le niveau de niveau 3, appelé bière buvable, il y a cc. 30 types de bières;
  • la bière peut être embouteillée sous forme de 3 dl, 5 dl, parfois il devient spécial collier (niveau 4), puis il peut être emballé comme une boîte 5x4, 6 pack (niveau 5).

Il y a des "lignes" de machine pour chaque opération: de brasser à l'emballage. Les machines peuvent effectuer plus d'opérations, disent que certaines machines à emballage peuvent effectuer 6 paquets et 3 pack, mais d'autres ne peuvent faire que 6 paquets. Il y a des contraintes, par exemple La vitesse ou la grande bouilloire brassée est pour brasser min. 6000, max, 8000 L de bière (mais si le type de bière est léger, alors le min. Est de 5000 l et le max. Est de 7 000 l). Et ainsi de suite, à tous les niveaux.

La tâche: comme je l'ai mentionnée, il y a un plan de demande, pour les 100 types de niveau 5 (la bouteille, des trucs emballés). Faire un plan de fabrication optimal pour tous les niveaux, toutes les machines. Minimiser les commutateurs de la machine (par exemple, la mise en bouteille .5, 0,5, .5, .3, .3, .3 est meilleur que .3, 0,3, 0,3, .5, .5, .5, .5,. moins de temps mort pour les machines d'embouteillage). Prix ​​par le client: Certains clients nécessitent d'expédier la bière qu'avec plus de 50% du temps d'expiration restent. Etc.

Découvrez des goulots d'étranglement (EH), effectuez des plans alternatifs avec Ajout des machines non existantes à ces points, puis le meilleur scénario virtuel peut être utilisé pour suggérer d'acheter un nouvelles machines.

Est-ce assez difficile, ou devrais-je vous dire comment une usine textile fonctionne?

(Remarque personnelle: Le Web, la banque et la logistique sont des domaines difficiles, mais ils sont des jouets pour bébés comparés à la fabrication de problèmes.)

Disclaimer: les chiffres sont déformés pour une raison de sécurité, l'ordre de grandeur est réel.

3
ern0