Les partenaires publicitaires:

Comment comprendre algorithmes

Un algorithme est tout simplement un ensemble de règles à suivre dans une situation spécifique. Les humains utilisent des algorithmes tout le temps: par exemple, au moment de quitter la maison, vous pouvez suivre un algorithme qui pourrait être exprimée en "Vérifiez si le ciel est gris-Si oui, prenez parapluie. Vérifiez si le soleil shining- Si oui, prendre des lunettes de soleil. Laissez maison." Toutes les applications informatiques se résument à un ou plusieurs algorithmes, dont chacun porte une tâche particulière.

Caractéristiques des algorithmes

  • Le point d'un algorithme définissant est qu'il ne laisse pas de place à la subjectivité ou de jugement. Un algorithme gère les données et prend des mesures résultant d'une manière fixe en fonction de son ensemble de règles. Dans sa forme la plus pure, chaque fois que vous mettez les mêmes entrées dans un algorithme, vous obtiendrez le même résultat. Un ordinateur en utilisant un algorithme a l'avantage sur l'homme en ce qu'il sera toujours effectuer les actions pertinentes correctement et les humains rapidement- ont l'avantage en ce qu'ils peuvent modifier et même à abandonner algorithmes si cela est avantageux dans une situation particulière - une compétence vous pourriez décrire comme "bon sens."

En comparant Algorithmes



  • En supposant un algorithme est correctement conçu pour donner le résultat souhaité dans une situation particulière, le principal point de comparaison entre les deux résultats est la vitesse. Le site Topcoder note que les algorithmes sont normalement évalués sur la base du temps qu'il faudrait pour mener à bien une tâche particulière avec l'ensemble des entrées qui rend le processus plus compliqué et chronophage. Par exemple, lorsque vous essayez de faire correspondre un morceau de données avec quelque chose dans une longue liste, l'algorithme pourrait il suffit de cocher la liste un élément à la fois. Toutefois, une meilleure solution est de mettre la liste dans l'ordre, comme alphabétique ou numérique, puis de comparer les données avec l'entrée du milieu et voir si elle est "supérieur ou inférieur." En utilisant ce résultat, l'algorithme peut éliminer la moitié des entrées comme des non-matchs de suite, puis répétez le processus jusqu'à ce qu'il trouve une correspondance, probablement en bien moins d'étapes que la vérification de la liste au complet.

Approximations & Heuristique




  • Certains problèmes sont particulièrement difficiles pour un algorithme à résoudre. Un exemple classique est le scénario d'un voyageur de commerce qui a besoin de visiter plusieurs villes et trouver la route avec la plus courte durée totale du voyage. Le nombre d'options possibles rend ce une telle tâche compliquée que cela prendrait un algorithme trop long à explorer toutes les possibilités et arriver à la réponse parfaite. Au lieu de cela, la réponse est de refléter le comportement humain en prenant la première solution possible qui répond à un niveau acceptable de variation de l'itinéraire optimal - en d'autres termes, la première réponse qui est assez bon, plutôt que parfaite. Ce concept de l'aide d'algorithmes pour obtenir un résultat qui favorisent pratiques sur la perfection est parfois connu comme l'analyse heuristique.

Clé de la compréhension

  • Jonathan Cutrell, directeur de la technologie au Tableau blanc, fait valoir que l'apprentissage tout simplement le code nécessaire d'écrire un algorithme dans un langage de programmation particulier ne suffit pas pour obtenir les meilleurs résultats. Au lieu de cela les programmeurs ont besoin de prendre le temps de comprendre le but de chaque composant du code d'un algorithme, en se concentrant sur le comment et le pourquoi plutôt que de simplement l'Que. Cette approche permettra d'adapter et d'améliorer les algorithmes pour des situations particulières. Cutrell note également l'importance de comprendre comment un algorithme particulier interagit avec d'autres éléments logiciels tels que les applications et même un système d'exploitation. Ces interactions peuvent changer l'approche la plus efficace pour un algorithme par rapport à l'approche que vous souhaitez prendre lors de la conception dans l'isolement.

» » » » Comment comprendre algorithmes