Algorithme

En mathématiques, en informatique et dans d'autres doctrines apparentées, l' algorithme est défini comme un ensemble de préceptes établis et sans équivoque, trouvés de manière méthodique et limitée, qui permettent de faire des calculs, de traiter certaines informations, de résoudre des problèmes et d'effectuer diverses activités. . Une fois qu'un état initial et une entrée sont démarrés, en suivant les procédures requises, l'état final est atteint et un résultat est obtenu. Les algorithmes font l'objet d'une enquête sur l'algorithme, et bien que beaucoup ne le croient pas, ils peuvent également être utilisés dans tous les aspects de la vie quotidienne.

Algorithme

Qu'est-ce qu'un algorithme

En informatique, il est généralement délimité comme une succession d' instructions séquentielles, dans lesquelles certains processus sont effectués afin de répondre à certaines décisions ou à certains besoins. De la même manière, les algorithmes sont fréquemment utilisés en logique et en mathématiques, tout en étant à la base de l'élaboration de manuels d'utilisation, de brochures illustratives, entre autres. L'un des plus distingués en mathématiques est celui attribué au géomètre Euclide pour obtenir le plus grand diviseur commun de deux entiers positifs et la fameuse "méthode de Gauss" pour déterminer les systèmes d'équations linéaires.

En ce qui concerne l'informatique, ce calcul peut être connu comme la séquence de directives à suivre pour déterminer un problème à l'aide d'un ordinateur.

Par conséquent, l'algorithmique est comprise comme une discipline qui se concentre sur l'analyse et la conception d'algorithmes. En considération de la première, nous cherchons à examiner des propriétés telles que leur exactitude et leur efficacité en termes de temps et d'espace, afin de comprendre les problèmes qui peuvent être résolus de manière algorithmique. Quant au second, il cherche à étudier les paradigmes établis et propose de nouveaux exemples.

L'algorithme est situé au centre de la progression du calcul et est important dans les différents domaines de celui-ci. De cette façon, il serait impossible pour des services aussi performants que Facebook et Google de gérer l'ampleur des informations qu'ils possèdent sans la collaboration d'algorithmes ou de structures de données spécialisées. Cependant, dans la vie quotidienne, des algorithmes sont également utilisés, un exemple en est l'éclairage du poêle, car il commence au moment où la personne va à la cuisine, l'observe et se termine, lorsqu'elle procède à l'allumer. .

Caractéristiques d'un algorithme

Algorithme

En dépit du fait que l'algorithme est connu comme l'ensemble ordonné et fini de diverses étapes conduisant à la résolution d'un problème, la nature de ces difficultés varierait selon le contexte dans lequel elles se trouvent. De cette manière, il y a des problèmes chimique, mathématique, philosophique, entre autres. Ainsi, on peut dire que sa nature est variée et que son exécution via l'ordinateur n'est pas nécessaire. Au-delà de tout ce qui a été expliqué précédemment, les algorithmes ont des caractéristiques élémentaires pour déterminer ce qu'ils sont aujourd'hui et seront mentionnés ci-dessous.

  • Les directives contenues dans un algorithme doivent être spécifiques pour éviter de laisser de la marge dans tout type de confusion, cela signifie que les instructions correspondantes doivent être suivies de manière appropriée ou, au contraire, la représentation graphique du flux dans lequel vous vous inscrivez ne facilitera pas la solution. correct.
  • Il doit être en parfaite définition, en essayant autant que possible de le suivre autant de fois que nécessaire, afin d'obtenir le même résultat et dans le cas contraire, l'algorithme ne sera pas fiable et ne servira pas de guide lors de toute prise de décision.
  • Ils sont connus pour la particularité d'être finis, ils se terminent généralement à un moment donné et plus tard ils donnent un résultat à la fin de chaque étape. Si l'algorithme est étendu indéfiniment, revenant à un point de départ qui ne peut jamais être résolu, il y a présence d'un paradoxe ou de la "boucle" bien connue des répétitions.
  • Enfin, il est dit que la lisibilité des algorithmes est l'élément clé, car si leur argument est incompréhensible, les instructions correspondantes n'ont pas pu être suivies, de plus, cela implique une formulation directe, claire et laconique du texte trouvé dans chacun d'eux.

Parties d'un algorithme

Chaque opération algorithmique a trois parties différentes qui sont soumises à la structure de base d'un système et ce sont:

  • Entrée: aussi appelée en-tête ou point de départ, c'est l'instruction initiale qui représente la genèse de l'algorithme et qui motive sa lecture.
  • Processus: aussi appelé déclaration, c'est l'élaboration précise que propose l'algorithme et c'est fondamentalement le tronc de ses clés pour la formulation des instructions.
  • Sortie: dans cette dernière phase sont les instructions spécifiques déterminées par l'algorithme, exemple, ses commandes ou résolutions.

Exemples d'algorithmes

Parmi les exemples les plus courants de calculs mathématiques figurent 2 + 3 = 5 en plus et 15-9 = 6 en soustraction . Une autre façon de visualiser des algorithmes simples est dans les recettes de cuisine, car elles décrivent un processus spécifique et ordonné, par exemple, "vous devez d'abord mettre une demi-casserole d'eau à chauffer, puis ajouter une pincée de sel et enfin le poivre va être divisé pour extraire les graines et les nerfs. » Dans ce modèle, un début, un processus et une fin sont présentés, qui sont essentiellement ce qui définit les algorithmes.

Types d'algorithmes

Algorithme

Parmi les différents types d'algorithmes dans le monde, l'accent est mis sur ceux qui sont classés selon un système de signes et d'autres qui correspondent à leur fonction. L'algorithme est fondamentalement la solution la plus connue pour résoudre un problème particulier et selon ses stratégies et fonctions, il existe différents types de ceux-ci, parmi lesquels dynamique, inverse, force brute, opportuniste, marquage, aléatoire, etc. En plus des algorithmes susmentionnés, il y en a des milliers qui conviennent pour résoudre les difficultés dans n'importe quel domaine.

Selon son système de signes

Qualitatif et quantitatif sont classés dans cette catégorie.

  • Les algorithmes qualitatifs se caractérisent par des éléments verbaux, dont les instructions ou les «étapes par étapes» reconnues qui sont conférées oralement, comme les recettes pour les arts culinaires ou les procédures pour effectuer un travail manuel.
  • Les algorithmes quantitatifs sont à l'opposé du qualitatif, en raison de la présence de certains éléments numériques et de l'utilisation des mathématiques pour effectuer des calculs, par exemple, lorsque la racine carrée est trouvée ou que les équations sont résolues.

Cette classification comprend également des algorithmes informatiques et non informatiques . Les calculs sont effectués au moyen d'un ordinateur et se caractérisent par leur complexité au point d'exiger qu'une machine puisse être exécutée, en plus de cela, ce sont des algorithmes quantitatifs optimisables. Les applications non informatiques n'ont pas l'obligation d'être exécutées via une machine ou un ordinateur; Un exemple clair de cela est la programmation d'un téléviseur.

Selon sa fonction

Les éléments suivants sont situés dans cette classification.

1. Algorithme de marquage

Cela se caractérise par l'utilisation de l' automatisation pour établir les prix avec diligence, en se concentrant sur des facteurs tels que le comportement des utilisateurs et est également connu comme la capacité de déterminer automatiquement les prix des composants dévalués, afin d'augmenter les bénéfices de vendeurs. Il a joué un rôle très important dans les pratiques courantes des industries aériennes depuis le début des années 90.

L'algorithme de marquage se distingue en étant l'une des pratiques les plus courantes dans les industries hautement compétitives, se référant aux agences de voyages ou à ces établissements en ligne. Ce type d'algorithme peut être extrêmement complexe ou relativement simple, car dans de nombreux cas, il est à noter qu'ils sont optimisés ou auto-appris avec la continuité de certains tests. Au-delà de tout cela, les algorithmes de marquage peuvent également devenir impopulaires auprès des clients car les individus ont tendance à valoriser à la fois la stabilité et l'équité.

2. Algorithmes probabilistes

Ce sont ceux dans lesquels la manière dont les résultats sont obtenus dépendent des probabilités, ceux-ci sont communément appelés algorithmes aléatoires.

Dans certaines applications, la gestion de ce type d'opération est courante, comme lors de la simulation du comportement d'un système existant ou conçu au fil du temps, ce qui donne une solution fortuite . Dans d'autres circonstances, le problème à résoudre est généralement déterministe mais il est possible de le transformer en un cas fortuit, afin de le résoudre en appliquant l'algorithme de probabilité. La chose positive au sujet des aléatoires est que leur application n'a pas besoin d'études mathématiques très sophistiquées.

En outre, au sein de ce groupe, il existe trois principaux types connus sous le nom de numérique, Monte Carlo et Las Vegas.

  • Les algorithmes numériques peuvent fournir un résultat approximatif du problème et sont généralement appliqués en ingénierie.
  • Les algorithmes de Monte Carlo peuvent donner la bonne ou la mauvaise solution et avoir une certaine marge d'erreur et durer.
  • Les algorithmes de Las Vegas se distinguent en ne laissant jamais de réponse incorrecte, en fait, ils trouvent la bonne solution ou simplement vous informent de l'échec possible.

La programmation dynamique fait référence à la méthode dans laquelle l'algorithme calcule les résultats. Parfois, les solutions de certains éléments qui ont des problèmes dépendent des résultats d'autres problèmes plus petits. Ainsi, pour la résolution de ceux-ci, les mêmes valeurs doivent être recalculées afin de résoudre les plus petits sous-problèmes, cependant, cela peut créer une perte de cycles. Pour corriger cela, une programmation dynamique peut être utilisée et dans ce cas, la solution de chaque sous-problème est mémorisée, pour utiliser cette même valeur au lieu de la répéter plusieurs fois.

3. Algorithmes heuristiques

Ils se distinguent par la recherche de solutions et ne garantissent toujours pas que les meilleures réponses seront trouvées, c'est pourquoi ils peuvent être considérés comme des algorithmes approximatifs . Ceux-ci peuvent être utilisés lorsqu'il est jugé impossible de trouver une solution par une voie normale. L'heuristique fournit les utilisations qui seront expliquées ci-dessous. En planification, ils sont utilisés pour la programmation d'activités dans un court laps de temps, en conception, ils sont utilisés pour délimiter des systèmes électriques ou numériques, et en simulation, ils sont utilisés pour vérifier certaines procédures.

4. Algorithmes rétrogrades

Ils sont connus comme des stratégies récursives qui résolvent des problèmes tels que des puzzles, des labyrinthes ou des pièces similaires, dans lesquels une recherche approfondie est effectuée pour trouver une solution possible. Son nom fait référence au fait que dans les recherches effectuées pour trouver un résultat, on revient toujours au point précédent afin de tester des alternatives. Celles-ci sont généralement révoquées pour observer leur impact sur l'économie, sur les marchés, sur le marquage des prix, sur certaines opérations et même sur la société elle-même.

5. Algorithme vorace

Il est connu comme le destructeur ou la dent sucrée et il est applicable dans les problèmes d'optimisation, à chaque étape de cet algorithme, un choix logique et optimal est fait pour se terminer avec la meilleure des solutions globales. Cependant, il faut tenir compte du fait qu'une fois le procès atteint, absolument rien ne peut être fait pour le corriger ou le changer à l'avenir. Cette opération porte ce nom car à chaque étape la meilleure fraction capable de "gober" est choisie sans se soucier de ce qui se passera plus tard.

Propriétés d'un algorithme

Algorithme

Divers auteurs ont tenté de définir des algorithmes de manière formelle en utilisant des modèles mathématiques. Cependant, ces spécimens sont étroitement liés à un type particulier d'informations qui comprend des nombres, des symboles et certains graphiques, tout en fonctionnant sur une grande quantité de distribution de données. En général, la participation commune de chacune des définitions est résumée dans les trois propriétés suivantes:

Énoncé du problème

La résolution de problèmes au moyen d'un ordinateur peut consister en ce processus dans lequel un problème est décrit et il est permis de développer un programme capable de le résoudre. Ce processus nécessite l'analyse du problème, la conception d'un algorithme et sa transformation en programme, en plus de sa réalisation et de sa validation. Les deux premières étapes sont les plus complexes de ce processus, mais une fois que vous avez examiné le problème et obtenu un algorithme capable de le résoudre, votre tâche consiste principalement à le traduire dans le langage de programmation souhaité.

Analyse de la solution générale

Une fois le problème défini, il est temps d'analyser les éléments suivants:

  • Les informations des billets qu'ils nous fournissent.
  • Les résultats souhaités.
  • Le domaine du travail, des déclarations ou d'autres éléments nécessaires.

L'analyse d'algorithmes est connue comme la partie la plus importante de la théorie plus large de la complexité de calcul, car elle fournit des calculs théoriques pour les ressources dont tout algorithme a besoin pour résoudre un problème de calcul donné. Lors d'une enquête théorique, il est courant de calculer ses complications au sens asymptotique pour obtenir une taille d'entrée suffisamment grande. La borne supérieure asymptotique ainsi que les notations thêta et oméga sont utilisées à cette fin, et il convient de noter que la mesure non asymptotique peut devenir informatisée.

Des mesures d'efficacité précises sont vraiment utiles pour ceux qui utilisent réellement des algorithmes, car ils ont plus de précision et cela leur permet de déterminer le temps qu'il faudra pour exécuter. Pour certains individus comme les créateurs de jeux vidéo, la constante cachée peut signifier une grande différence entre le succès et l'échec. Les évaluations du temps peuvent dépendre de la façon dont une certaine étape est définie et pour que l'analyse ait un sens, il faut s'assurer que le temps est nettement limité par une constante.

Elaboration de l'algorithme

Pour mener à bien le développement d'une opération, il est important qu'une série de procédures soit mise en œuvre pour respecter la résolution d'un problème donné. Pour commencer, une analyse préalable de la difficulté doit être effectuée et cela se fait à travers une étude qui démontre le vrai fonctionnement du problème bien avant qu'un algorithme ne soit effectué. Par conséquent, la définition des exigences est évaluée, dans cette étape, l'idée de ce que les problèmes à résoudre doivent être, que ce soit clair, que ce soit l'ajout de deux nombres, la commande d'une liste de nombres, etc.

Plus tard, l'identification du module respectif est exécutée, car la mise en œuvre correcte des algorithmes en dépend pour fournir des solutions possibles aux exigences identifiées ci-dessus.

Enfin, le calcul est implémenté dans un langage de programmation compréhensible par un ordinateur afin qu'il soit capable de comprendre les instructions qu'il modélise lui-même et ainsi de les réaliser en atteignant le résultat attendu. Dans cette dernière procédure, vous pouvez déjà parler d'un programme qui est composé d'une série d'instructions qui sont disposées les unes après les autres et parviennent à résoudre les exigences établies.

Algorithme

Il est important de mentionner qu'en temps séquentiel, les algorithmes remplissent leur fonction en temps discrétisé et cherchent à définir les séquences d'états de calcul dans chaque entrée considérée comme valide . A l'état abstrait, ces opérations sont des éléments indépendants et on considère que les structures d'ordre primordial peuvent y devenir invariantes sous isomorphisme. Dans l'exploration bornée, les transitions d'un état à un autre sont entièrement établies par une explication permanente et finie, dans laquelle entre un état et le suivant, seule la quantité limitée des termes de l'état actuel est prise en compte.

Il ne faut pas non plus oublier que les algorithmes sont souvent exprimés à travers des langages de programmation "pseudocode", le langage commun et même des organigrammes bien connus. De même, il est important de mentionner que les algorithmes jouent un rôle fondamental dans le calcul en raison de leur représentation des données sous forme de séquences de bits. Sous un autre angle, un programme est défini comme l'algorithme qui exprime à l'ordinateur les étapes spécifiques qu'il doit suivre pour mener à bien certaines activités. D'un autre côté, apprendre à écrire du pseudocode facilite la programmation et sera donc expliqué plus loin.

Langages de programmation, connus comme un langage formel ou artificiel pour avoir des règles grammaticales bien définies, il a la capacité de fournir au programmeur la capacité de textualiser une série d'instructions ou de séquences de réglementations sous forme d'algorithmes afin En maintenant le contrôle du comportement physique et logique de l'ordinateur, vous pouvez ainsi accéder aux différents types d'informations. Cet ensemble de préceptes écrits au moyen d'un langage de programmation est désigné comme un programme .

Les langages de programmation sont généralement constitués d'un ensemble de symboles et de règles grammaticales et sémantiques qui définissent les structures actuelles du langage et sa signification. Dans une autre perspective, les langages informatiques englobent également les langages de programmation, un exemple clair de cela est HTML, qui respecte certaines instructions pour réaliser le contenu de différents documents. Le langage de programmation peut permettre de spécifier précisément les données qui doivent être exploitées par un logiciel spécifique dans un large éventail de circonstances.

D'autre part, le pseudocode est le langage de description algorithmique qui utilise les conventions élémentaires d'un vrai langage de programmation, mais qui est conçu pour la lecture humaine au lieu de la lecture machine, en conservant son indépendance par rapport à tout autre type de langage de programmation . Le pseudocode ignore les détails qui ne sont pas considérés comme essentiels à la compréhension humaine de l'algorithme, tels que les codes spécifiques au système, les déclarations de variables et même certains sous-programmes. De cette façon, le langage de programmation cherche à se compléter par des descriptions précises en langage naturel ou par des notations mathématiques compactes.

Recommandé

Éclat d'Okazaki
2020
Redondance
2020
Personne juridique
2020