web-dev-qa-db-fra.com

Quels sont les paradigmes algorithmiques?

Nous parlons généralement de paradigmes de programmation comme fonctionnel, procédural, orienté objet, impératif, etc., mais que dois-je répondre lorsque je suis interrogé sur les paradigmes des algorithmes?

Par exemple, le problème du vendeur de voyage, l'algorithme de chemin de trajectoire de Dijkstra, l'algorithme Euclid GCD, la recherche binaire, l'arbre minimum de Kruskal, la tour des paradigmes algorithmiques de Hanoi? Ou peut-être les paradigmes sont-ils les structures de données que je utiliserais pour concevoir ces algorithmes?

8
Vaibhav Agarwal

les paradigmes algorithmiques sont :

Approche générale de la construction de solutions efficaces aux problèmes

Toute approche de base et couramment utilisée dans la conception d'algorithmes pourrait être considérée comme un paradigme algorithmique :

Diviser et conquérir

Idée: diviser l'instance de problème en sous-instances plus petites du même problème, résoudre ces problèmes de récursivement, puis mettre des solutions ensemble à une solution de l'instance donnée.

Exemples: Mergesort, Quicksort, Algorithme de Strassen, FFT.

algorithmes gourmands

Idée: Trouvez une solution en faisant toujours le choix qui a l'air optimal pour le moment - ne regardez pas d'avenir, ne jamais revenir en arrière.

Exemples: algorithme de PRIM, algorithme de Kruskal.

Programmation dynamique

Idée: transformer la récursion à l'envers.

Exemple: algorithme Floyd-Warshall pour le problème de chemin le plus court tous les paires.

Le mot paradigme se traduit par exemple, mais ce n'est pas comment c'est utilisé dans un contexte scientifique . Vos exemples sont tous des exemples d'algorithmes (à l'exception du problème du vendeur itinérant, qui est un problème durs NP), dont aucun n'est assez trivial d'être considéré comme un paradigme algorithmique.

9
yannis