Les algorithmes sont le fondement et le cadre de tous les programmes informatiques. Ils sont la séquence d'instructions précises données à un ordinateur pour obtenir une sortie désirée. Les algorithmes sont à des programmes informatiques ce que l'esprit est pour le corps humain. Beaucoup de modèles de conception algorithmiques ou paradigmes existent comme les algorithmes gloutons, des algorithmes diviser pour régner, les algorithmes de programmation dynamique et les algorithmes de traçage. Chaque classe d'algorithmes a sa propre structure de design unique.
Instructions
Algorithmes gloutons sont des algorithmes qui fournissent des décisions basées sur les informations disponibles sans aucune clairvoyance. Ils fonctionnent mieux dans les problèmes d'optimisation et sont faciles à mettre en œuvre. Les étapes générales pour leur conception sont:
Créer une collection (liste, jeu, etc.) des candidats (C)
Trouver un sous-ensemble (S) à partir de la collection de candidats (C)
Préciser les critères que S doit satisfaire.
Si elle répond que les critères (faisable), aller de l'avant pour optimiser S
- Optimisation S signifie sélectionnant à minimiser ou maximiser, selon le problème particulier. Dans le processus, nous pouvons choisir la solution plus grand ou plus petit.
Diviser pour régner algorithmes suivent une approche top-down dans la conception de l'algorithme. Ils sous-diviser le problème en plusieurs petits problèmes et enfin remonter les solutions à la composante problems.The étapes générales pour leur conception sont:
Définir le problème
Créer une instance du problème
Divisez cette instance en petits sous-instances du même problème
Résoudre chacun des sous-instances de sa propre
Intégrer et combiner les solutions des sous-cas, de manière à obtenir une solution de l'instance d'origine. Algorithmes de programmation dynamiques sont une variante de l'algorithme de diviser pour régner. Alors que les algorithmes diviser pour régner qui sont récursive suivent une approche top-down à résoudre des problèmes d'optimisation, la programmation dynamique suit une technique bottom-up. Les étapes générales pour leur conception sont:
Définir le problème
Créer des instances du problème
Construire un tableau de tous les sous-occurrences
Commencez par les plus petits sous-occurrences
Continuer avec l'augmentation de la taille des sous-exemple en ajoutant les résultats des entrées déjà calculés
Continuer jusqu'à la dernière sous-exemple. La solution finale obtenue est la solution au problème défini initialement.Cette méthode est itérative tandis que l'approche diviser pour régner est récursive.
L'algorithme de backtracking recherche systématiquement une solution parmi les options disponibles, sur l'hypothèse qu'il existe une solution. Les étapes générales pour leur conception sont:
Commencez avec un vecteur vide
Que la solution soit représenté par des vecteurs (Vi ...... Vm)
Traverse les vecteurs, étendant les vecteurs partiels avec une nouvelle valeur
Backtrack si un vecteur ne peut pas représenter une solution partielle
Retirer la valeur de fuite à partir du vecteur
Ensuite, passez à étendre le vecteur des valeurs alternatives
Continuer le processus jusqu'à ce qu'une solution soit trouvée. Conseils & Avertissements
- Essayez de trouver le type d'algorithme qui résout le mieux votre problème avant de commencer la conception d'algorithmes.
- Conception algorithme est addictif mais une belle expérience. Ne pas démarrer si vous avez d'autres choses urgentes à faire bientôt.