Que sont les algorithmes informatiques et comment fonctionnent-ils?

Table des matières:

Que sont les algorithmes informatiques et comment fonctionnent-ils?
Que sont les algorithmes informatiques et comment fonctionnent-ils?

Vidéo: Que sont les algorithmes informatiques et comment fonctionnent-ils?

Vidéo: Que sont les algorithmes informatiques et comment fonctionnent-ils?
Vidéo: LES PIRES CV DE MES ABONNÉS ! - YouTube 2024, Avril
Anonim
À moins que vous ne maîtrisiez les mathématiques ou la programmation, le mot «algorithme» pourrait être grec, mais c’est l’un des éléments constitutifs de tout ce que vous utilisez pour lire cet article. Voici une brève explication de ce qu’ils sont et de leur fonctionnement.
À moins que vous ne maîtrisiez les mathématiques ou la programmation, le mot «algorithme» pourrait être grec, mais c’est l’un des éléments constitutifs de tout ce que vous utilisez pour lire cet article. Voici une brève explication de ce qu’ils sont et de leur fonctionnement.

Clause de non-responsabilité: je ne suis pas un professeur de mathématiques ou d’informatique, je n’utilise donc pas tous les termes techniques. C’est parce que j’essaie d’expliquer tout ce qui est écrit en anglais clair pour les gens qui ne sont pas très à l’aise avec les mathématiques. Cela étant dit, certains calculs sont nécessaires et c’est inévitable. Math geeks, n'hésitez pas à corriger ou à mieux expliquer dans les commentaires, mais s'il vous plaît, gardez les choses simples pour ceux qui sont mathématiquement peu enclins.

Image par Ian Ruotsala

Qu'est-ce qu'un algorithme?

Le mot «algorithme» a une étymologie semblable à «algèbre», sauf qu’il fait référence au mathématicien arabe lui-même, al-Khwarizmi (un détail intéressant). Un algorithme, pour les non-programmeurs parmi nous, est un ensemble d'instructions qui prennent une entrée, A, et fournissent une sortie, B, qui modifie les données impliquées d'une manière ou d'une autre. Les algorithmes ont une grande variété d'applications. En mathématiques, ils peuvent aider à calculer des fonctions à partir de points dans un ensemble de données, parmi des choses beaucoup plus avancées. Outre leur utilisation dans la programmation elle-même, ils jouent un rôle majeur dans des domaines tels que la compression de fichiers et le cryptage des données.

Un ensemble d'instructions de base

Supposons que votre ami vous rencontre dans une épicerie et que vous le guidiez vers vous. Vous dites des choses comme «entrez par les portes de droite», «passez la section des poissons à gauche» et «si vous voyez la laiterie, vous m'avez dépassée». Les algorithmes fonctionnent de la sorte. Nous pouvons utiliser un organigramme pour illustrer les instructions en fonction de critères que nous connaissons à l’avance ou les découvrir au cours du processus.

(image intitulée «Icebreaking Routine» EDIT: avec la permission de Trigger et Freewheel)
(image intitulée «Icebreaking Routine» EDIT: avec la permission de Trigger et Freewheel)

Dès le début, vous vous dirigez vers le bas du chemin et, en fonction de ce qui se passe, vous suivez le «flux» vers un résultat final. Les organigrammes sont des outils visuels qui peuvent, de manière plus compréhensible, représenter un ensemble d’instructions utilisées par les ordinateurs. De même, les algorithmes aident à faire la même chose avec plus de modèles basés sur les mathématiques.

Graphiques

Utilisons un graphique pour illustrer les différentes manières de donner des instructions.

Nous pouvons exprimer ce graphique comme un lien entre tous ses points. Afin de reproduire cette image, nous pouvons donner un ensemble d'instructions à quelqu'un d'autre.
Nous pouvons exprimer ce graphique comme un lien entre tous ses points. Afin de reproduire cette image, nous pouvons donner un ensemble d'instructions à quelqu'un d'autre.

Méthode 1

Nous pouvons représenter cela comme une série de points, et les informations suivraient la forme standard de graph = {(x1, y1), (x2, y2),…, (xn, yn)}.

graph = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)}

Il est assez facile de tracer chaque point, l’un après l’autre, et de les relier au point précédent. Cependant, imaginez un graphique avec mille points ou plusieurs segments allant dans tous les sens. Cette liste aurait beaucoup de données, non? Et puis avoir à connecter chacun d'eux, un à la fois, peut être une douleur.

Méthode 2

Une autre chose que nous pouvons faire est de donner un point de départ, la pente de la ligne entre elle et le prochain point, et d’indiquer où il faut s’attendre au prochain point en utilisant la forme standard du graphe = {(point de départ}, [m1, x1, h1 ],…, [Mn, xn, hn]}. Ici, la variable 'm' représente la pente de la ligne, 'x' représente la direction dans laquelle il faut compter (si x ou y), et 'h' vous indique comment Vous pouvez également penser à tracer un point après chaque mouvement.

graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [-3,x,1], [-3,x,1]}

Vous allez vous retrouver avec le même graphique. Vous pouvez voir que les trois derniers termes de cette expression sont les mêmes, alors nous pourrons peut-être réduire cela en disant simplement «répéter cela trois fois» d'une manière ou d'une autre. Disons que chaque fois que vous voyez la variable "R" apparaître, cela signifie de répéter la dernière chose. Nous pouvons le faire:

graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}

Que faire si les points individuels n’ont pas vraiment d’importance, et que seul le graphique l’a? Nous pouvons consolider ces trois dernières sections comme suit:

graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}

Cela raccourcit un peu les choses par rapport à ce qu'elles étaient auparavant.

Méthode 3

Essayons de le faire d’une autre manière.

y=0, 0≤x≤3 x=0, 0≤y≤3 y=x, 3≤x≤5 y=2.5x-7.5, 5≤x≤7 y=-3x+29, 7≤x≤8 y=-3x+29, 8≤x≤9 y=-3x+29, 9≤x≤10

Nous l’avons ici en termes algébriques purs. Encore une fois, si les points eux-mêmes n’importent pas et que seul le graphique l’a, nous pouvons consolider les trois derniers éléments.

y=0, 0≤x≤3 x=0, 0≤y≤3 y=x, 3≤x≤5 y=2.5x-7.5, 5≤x≤7 y=-3x+29, 7≤x≤10

Maintenant, quelle méthode vous choisissez dépend de vos capacités. Peut-être que vous êtes doué avec les mathématiques et les graphiques, alors vous choisissez la dernière option. Peut-être êtes-vous doué pour la navigation et choisissez-vous la deuxième option? Dans le domaine des ordinateurs, cependant, vous effectuez de nombreux types de tâches et les capacités de l’ordinateur ne changent pas vraiment. Par conséquent, les algorithmes sont optimisés pour les tâches qu'ils effectuent.

Un autre point important à noter est que chaque méthode repose sur une clé. Chaque ensemble d'instructions est inutile à moins que vous sachiez quoi faire avec. Si vous ne savez pas que vous êtes supposé tracer chaque point et relier les points, la première série de points ne signifie rien. Si vous ne savez pas ce que chaque variable signifie dans la deuxième méthode, vous ne saurez pas comment les appliquer, un peu comme la clé d’un chiffre. Cette clé fait également partie intégrante de l'utilisation des algorithmes et se trouve souvent dans la communauté ou via un "standard".

Compression de fichier

Lorsque vous téléchargez un fichier.zip, vous en extrayez le contenu pour que vous puissiez utiliser ce qui se trouve à l'intérieur.De nos jours, la plupart des systèmes d'exploitation peuvent plonger dans les fichiers.zip comme s'il s'agissait de dossiers normaux, tout en arrière-plan. Sur ma machine Windows 95 il y a plus de dix ans, je devais tout extraire manuellement avant de pouvoir voir plus que les noms de fichiers à l'intérieur. C'est parce que ce qui était stocké sur le disque en tant que fichier.zip n'était pas sous une forme utilisable. Pensez à un canapé-lit. Lorsque vous souhaitez l'utiliser comme lit, vous devez retirer les coussins et les déplier, ce qui prend plus de place. Lorsque vous n'en avez pas besoin ou si vous souhaitez le transporter, vous pouvez le replier.

Les algorithmes de compression sont ajustés et optimisés spécifiquement pour les types de fichiers auxquels ils sont destinés. Les formats audio, par exemple, utilisent chacun une manière différente de stocker des données qui, une fois décodées par le codec audio, donneront un fichier son similaire à la forme d'onde d'origine. Pour plus d'informations sur ces différences, consultez notre article précédent, Quelles sont les différences entre tous ces formats audio? Les formats audio sans perte et les fichiers.zip ont une chose en commun: ils fournissent tous les deux les données originales dans leur forme exacte après le processus de décompression. Les codecs audio avec pertes utilisent d'autres moyens pour économiser de l'espace disque, tels que le réglage des fréquences qui ne peuvent pas être entendues par une oreille humaine et le lissage de la forme d'onde par sections pour éliminer certains détails. En fin de compte, bien que nous ne puissions peut-être pas vraiment entendre la différence entre une piste MP3 et une piste CD, il existe clairement un déficit d'informations dans la première.

Cryptage de données

Les algorithmes sont également utilisés lors de la sécurisation des données ou des lignes de communication. Au lieu de stocker les données de manière à utiliser moins d'espace disque, elles sont stockées de manière indétectable par d'autres programmes. Si quelqu'un vole votre disque dur et commence à l'analyser, il peut récupérer des données même lorsque vous supprimez des fichiers, car les données elles-mêmes sont toujours présentes, même si l'emplacement de transfert vers ce dernier a disparu. Lorsque les données sont cryptées, tout ce qui est stocké ne ressemble pas à ce que c'est. Cela semble généralement aléatoire, comme si la fragmentation s'était accumulée au fil du temps. Vous pouvez également stocker des données et les faire apparaître sous un autre type de fichier. Les fichiers image et les fichiers musicaux sont bons pour cela, car ils peuvent être assez volumineux sans laisser de soupçon, par exemple. Tout cela est fait en utilisant des algorithmes mathématiques, qui prennent un type d’entrée et le convertissent en un autre type de sortie très spécifique. Pour plus d'informations sur le fonctionnement du cryptage, consultez HTG Explains: qu'est-ce que le cryptage et comment fonctionne-t-il?
Les algorithmes sont également utilisés lors de la sécurisation des données ou des lignes de communication. Au lieu de stocker les données de manière à utiliser moins d'espace disque, elles sont stockées de manière indétectable par d'autres programmes. Si quelqu'un vole votre disque dur et commence à l'analyser, il peut récupérer des données même lorsque vous supprimez des fichiers, car les données elles-mêmes sont toujours présentes, même si l'emplacement de transfert vers ce dernier a disparu. Lorsque les données sont cryptées, tout ce qui est stocké ne ressemble pas à ce que c'est. Cela semble généralement aléatoire, comme si la fragmentation s'était accumulée au fil du temps. Vous pouvez également stocker des données et les faire apparaître sous un autre type de fichier. Les fichiers image et les fichiers musicaux sont bons pour cela, car ils peuvent être assez volumineux sans laisser de soupçon, par exemple. Tout cela est fait en utilisant des algorithmes mathématiques, qui prennent un type d’entrée et le convertissent en un autre type de sortie très spécifique. Pour plus d'informations sur le fonctionnement du cryptage, consultez HTG Explains: qu'est-ce que le cryptage et comment fonctionne-t-il?

Les algorithmes sont des outils mathématiques offrant diverses utilisations en informatique. Ils travaillent pour fournir un chemin cohérent entre un point de départ et un point d'arrivée et fournissent les instructions pour le suivre. En savoir plus que ce que nous avons souligné? Partagez vos explications dans les commentaires!

Conseillé: