C ++ (Structures de données et algorithmes) 76: --- algorithme glouton (algorithme glouton)

  • Aussi connu comme l'algorithme glouton algorithme glouton

Tout d'abord, le problème d'optimisation

  • Cet article décrit l'algorithme et des exemples sont derrière le « problème d'optimisation » . Chacun contient un ensemble de problèmes d'optimisation « conditions restreintes » et une « fonction d'optimisation » . Faites connaissance avec les contraintes du programme de résolution de problèmes appelé « solution réalisable » . La meilleure valeur possible de la fonction d'optimisation pour parvenir à une solution réalisable est appelée « solution optimale »

En second lieu, l'idée d'algorithme glouton

  • Dans l'algorithme glouton, nous avons besoin de construire progressivement une solution optimale . Chaque étape, nous sommes certains critères pour prendre une décision optimale. Chaque étape de la prise de décision, et non être modifiés dans une étape ultérieure. décisions standard sont basées que l' on appelle des lignes directrices de la cupidité

En troisième lieu, la pratique de la recherche de changement

description du problème

  • Les clients qui utilisent dollars pour acheter des bonbons vendeur espérant trouver un enfant de changer avec le nombre de pièces de monnaie. Supposons qu'il y ait une valeur nominale de 25 cents, 10 cents, 5 cents et pièces de 1 cent, mais le nombre ne se limite pas
  • Chaque fois que vous sélectionnez un assistant magasin de pièces, constituent à la recherche de changement. Le choix est basé sur des critères de cupidité: sans plus que le nombre total de pièces recherchent, chaque fois que la plus grande pièce possible d'entrevue de sélection , jusqu'à ce que le nombre total de pièces pour compenser le nombre total de equal're à la recherche de changement
  • Description du problème: en supposant queclients recherchent 67 cents

algorithme glouton pour résoudre l'étape

  • Supposons aux clients à la recherche de 67 cents:
    • Les deux premières étapes ont choisi deux 25 $ pièce (troisième étape ne peut être sélectionnée à 25 $, sinon le total à plus de 67 cents)
    • Étape 10 cent sélection de pièces
    • La quatrième étape de sélection 5 cent pièces de monnaie
    • La dernière étape est deux pièce de 1 cent
  • algorithme glouton nous donne un sentiment: ce Grattez changement lâche, ou du moins proche du nombre minimum de pièces

En quatrième lieu, l'application pratique de la planification de la machine

Analyse d'application

  • Il y a n nombre de tâches, la machine ne se limite pas à, le traitement des tâches sur la machine. Heure de début de chaque tâche est Si, tâche temps d'achèvement Fi, Si <Fi. [Si, Fi] est la tâche i période de traitement
  • La duplication des tâches: deux tâcheschevauchent i et j, si et seulement si la période de traitementchevauchent deux tâches. Par exemple période [1, 4] avec une période [2,4] chevauchement, et [1,4] ettemps [4,7] nechevauchent
  • Une tâche schéma d'allocation est réalisable: fait référence à deux périodes sans dédoublertâches assignées à la même machine,savoir chaque machine au plusseule tâche à tout traitement en temps
  • L' allocation optimale: il se réfère à l'utilisation de la machine avecplan de distribution minimale viable

La description réelle du problème

  • Supposons que n = 7 tâches, numérotées de a à g, le temps de traitement de celui-ci comme indiqué ci-dessous:

  • Description du problème: la machine nelimite pas, il devrait être affecté à cette tâche 7 sur le fonctionnement demachine, et le nombre total de machines est minime utilisé (temps non requis)

algorithme glouton pour résoudre l'étape

  • Directives Greed étapes: selon l'heure de début de la tâche, si les machines « anciens » sont disponibles, la tâche assignée. Dans le cas contraire, la tâche est assignée à une machine « nouvelle »
    • Les anciens moyens de la machine: qui a été utilisé
    • Les nouvelles machines: à nouveau la machine n'a pas été utilisé
  • L'heure de début et de fin de la tâche, le résultat final d'exécution illustré ci-dessous, toutes les tâches dans la mise en œuvre globale du processus, trois machines ont été utilisées

En cinquième lieu, l'application pratique du chemin le plus court

description du problème

  • Pour un réseau tel que représenté ci-dessous, la distance entre les deux numéros de figure représentent les noeuds
  • Maintenant , il y a une telle demande: du début à atteindre un certain point à un autre, chaque étape sur le chemin de joindre un ordre. Il suppose que le chemin actuel a atteintsommet q, mais n'a pas encore atteint la fin. Lorsque la demande d'une sélection de chemin: Sélectionnez un q récemment associé, et le sommet en cours est pas dans le chemin

algorithme glouton pour résoudre l'étape

  • En supposant que a atteint un pic à partir du sommet 1 5, avide algorithme solution est la suivante :
    • Étape 1. Sélectionnez 1-> 3 la longueur du trajet de 2
    • Étape 3 Sélectionnez> 2 la longueur du trajet de 2
    • La troisième étape est de sélectionner 4-> 2 longueur de trajet de 1
    • Etape quatrième sélection 2-> 5 de la route, une longueur de 5
    • Ainsi, une longueur totale de 10
  • Note (clé): Selon la description du problème et algorithme glouton, le choix final de la voie est10, mais pas le plus court chemin (pas optimale). Peut être réalisée, par exemple, 1-> 4-> 5 cette voie, une longueur totale de 6. Donc algorithme glouton est pas nécessairement la solution optimale

Six autres cas

  • Par exemple, l'algorithme d'arbre de Huffman ( https://blog.csdn.net/qq_41453285/article/details/103649092 ), en utilisant l' étape de pondération n-1 pour établir la longueur du trajet externe minimum d'un arbre binaire, chaque étape sera de deux arbres binaires combinés en un seul. algorithme glouton L'algorithme utilisé est: à partir de la composition est une arbre plus petit arbre binaire de poids disponible les deux arbres
  • Par exemple, les règles de planification de LPT ( https://blog.csdn.net/qq_41453285/article/details/103649089 aussi un algorithme gourmand). Il est utilisé pour les étapes de programme n n opérations. Tout d' abord, la durée du travail triée par le temps. La tâche suivante est assignée comme une machine alors chaque étape est. critère Greedy est basé sur: le calendrier actuel le plus court de temps. La nouvelle fin d' un travail programmé première machine ( à savoir, la première machine à vide). Notez que ce problème, l'algorithme glouton ne garantit pas la solution optimale

Sept autres appartiennent au concept de

  • Peut connaître à travers quelques - uns des problèmes ci - dessus, la règle gourmande ne garantit pas des solutions optimales (telles que le problème du plus court chemin ci - dessus), mais il est toujours proche de la solution optimale dans des circonstances normales. Ceci est une règle de base. Les résultats obtenus sont généralement proches de la solution optimale, cet algorithme est appelé « heuristiques »
  • Si entre heuristiques et la meilleure attaque il y a une relation limitée, nous nous appelons cette méthode heuristique a « capacité limitée »
  • Avoir un heuristiques défini des propriétés définies appelées « Approximation Algorithm »

Huit, l'application pratique de l'algorithme glouton

Publié 1525 articles originaux · louange won 1085 · Vues 450000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_41453285/article/details/104439879
conseillé
Classement