Pour démontrer l’importance des algorithmes (par exemple pour les étudiants et les professeurs qui ne pratiquent pas la théorie ou qui viennent même de domaines totalement différents), il est parfois utile de disposer d’une liste d’exemples où des algorithmes centraux ont été déployés dans les secteurs commercial, gouvernemental, etc. ou logiciel / matériel largement utilisé.
Je recherche de tels exemples qui répondent aux critères suivants:
Le logiciel / matériel utilisant l'algorithme devrait être largement utilisé maintenant.
L'exemple devrait être spécifique. Veuillez donner une référence à un système spécifique et à un algorithme spécifique.
Par exemple, dans "l'algorithme X est utile pour le traitement d'image", le terme "traitement d'image" n'est pas assez spécifique; dans "La recherche Google utilise des algorithmes graphiques", le terme "algorithmes graphiques" n'est pas suffisamment spécifique.L'algorithme doit être enseigné dans des programmes de premier cycle ou de doctorat typiques. classes d'algorithmes ou de structures de données. Idéalement, l'algorithme est traité dans des manuels d'algorithmes typiques. Par exemple, "le système X connu utilise l'algorithme Y peu connu" n'est pas bon.
Mise à jour:
Merci encore pour les bonnes réponses et les liens! Certaines personnes font remarquer qu'il est difficile de satisfaire aux critères, car les algorithmes centraux sont tellement omniprésents qu'il est difficile d'indiquer une utilisation spécifique. Je vois la difficulté. Mais je pense que cela vaut la peine de proposer des exemples spécifiques car, selon mon expérience, je disais aux gens: "Regardez, les algorithmes sont importants parce qu'ils sont un peu partout !" ne marche pas.
Réponses:
Les algorithmes qui sont le moteur principal d’un système sont, à mon avis, plus faciles à trouver dans les cours autres que les algorithmes, pour la même raison, les théorèmes ayant des applications immédiates sont plus faciles à trouver dans les mathématiques appliquées que dans les cours de mathématiques pures. Il est rare qu'un problème pratique ait la structure exacte du problème abstrait dans une conférence. Pour argumenter, je ne vois aucune raison pour que le matériel de cours d'algorithmes à la mode tel que la multiplication de Strassen, le test de primalité AKS ou l'algorithme de Moser-Tardos soit pertinent pour les problèmes pratiques de bas niveau liés à la mise en oeuvre d'une base de données vidéo, d'un compilateur d'optimisation, d'un système d'exploitation , un système de contrôle de congestion de réseau ou tout autre système. La valeur de ces cours est d’apprendre qu’il existe des moyens complexes d’exploiter la structure d’un problème pour trouver des solutions efficaces. Les algorithmes avancés sont également des endroits où l'on rencontre des algorithmes simples dont l'analyse est non triviale. Pour cette raison, je ne rejeterais pas les algorithmes aléatoires simples ou le PageRank.
Je pense que vous pouvez choisir n’importe quel gros logiciel et y trouver des algorithmes de base et avancés. En guise d’étude de cas, j’ai fait cela pour le noyau Linux et ai montré quelques exemples de Chromium.
Structures de données de base et algorithmes dans le noyau Linux
Les liens sont vers le code source sur github .
B + Arbres avec des commentaires vous indiquant ce que vous ne pouvez pas trouver dans les manuels.
Listes de tri prioritaires utilisées pour les mutex , les pilotes , etc.
Les arbres Radix sont utilisés pour la gestion de la mémoire , les recherches liées à NFS et les fonctionnalités liées au réseau.
Priorité tas , qui est littéralement une implémentation de manuel, utilisée dans le système de groupe de contrôle .
Les fonctions de hachage , avec une référence à Knuth et à un papier.
Certaines parties du code, telles que ce pilote , implémentent leur propre fonction de hachage.
Les tableaux de bits , utilisés pour traiter les drapeaux, les interruptions, etc., sont décrits dans Knuth Vol. 4
Sémaphores et verrous
La recherche binaire est utilisée pour la gestion des interruptions , la recherche de cache de registre , etc.
Recherche binaire avec arbres B
Profondeur première recherche et variante utilisée dans la configuration du répertoire .
La largeur de la première recherche est utilisée pour vérifier l'exactitude du verrouillage au moment de l'exécution.
Le tri par fusion sur les listes chaînées est utilisé pour la récupération de place , la gestion du système de fichiers , etc.
Le tri à bulles est étonnamment implémenté aussi, dans une bibliothèque de pilotes.
Correspondance de chaîne Knuth-Morris-Pratt ,
Correspondance des motifs de Boyer-Moore avec des références et recommandations pour savoir quand préférer l'alternative.
Structures de données et algorithmes dans le navigateur Web Chrome
Les liens sont vers le code source sur le code Google . Je ne vais en énumérer que quelques-uns. Je suggérerais d'utiliser la fonction de recherche pour rechercher votre algorithme ou structure de données préféré.
Bibliothèques de langages de programmation
Je pense qu'ils valent la peine d'être considérés. Les concepteurs de langages de programmation ont estimé que certains ingénieurs avaient intérêt à consacrer du temps et des efforts à la mise en œuvre de ces structures de données et de ces algorithmes afin que d'autres n'en aient pas besoin. L’existence de bibliothèques est une des raisons pour lesquelles nous pouvons trouver des structures de données de base réimplémentées dans un logiciel écrit en C mais moins pour les applications Java.
Algorithmes d'allocation et d'ordonnancement
Je trouve cela intéressant parce que même si elles s'appellent des heuristiques, la politique que vous utilisez dicte le type d'algorithme et la structure de données nécessaires. Vous devez donc connaître les piles et les files d'attente.
Utilitaires de base dans les systèmes * nix
Algorithmes Cryptographiques
Cela pourrait être une très longue liste. Les algorithmes cryptographiques sont implémentés dans tous les logiciels pouvant effectuer des communications ou des transactions sécurisées.
Compilateurs
Compression et traitement d'image
Apprentissage par clause axée sur les conflits
Depuis l'an 2000, la durée d'exécution des solveurs SAT sur des points de repère industriels (généralement issus du secteur du matériel, bien que d'autres sources soient également utilisées) a diminué chaque année de manière presque exponentielle. Une partie très importante de ce développement concerne l’ algorithme d’ apprentissage par clause axé sur les conflits , qui associe l’algorithme booléen de contrainte dans l’article original de Davis Logemann et Loveland à la technique d’apprentissage par clause issue de la programmation par contraintes et de la recherche en intelligence artificielle. Pour la modélisation industrielle spécifique, la SAT est considérée comme un problème facile ( voir la présente discussion).). Pour moi, il s’agit de l’une des plus grandes réussites de la période récente, car elle combine des avancées algorithmiques étalées sur plusieurs années, des idées ingénieuses en matière d’ingénierie, une évaluation expérimentale et un effort collectif concerté pour résoudre le problème. L' article de CACM par Malik et Zhang est une bonne lecture. Cet algorithme est enseigné dans de nombreuses universités (j'ai assisté à quatre où c'était le cas) mais généralement dans un cours de logique ou de méthodes formelles.
Les applications des solveurs SAT sont nombreuses. IBM, Intel et de nombreuses autres entreprises ont leurs propres implémentations de solveur SAT. Le gestionnaire de paquets dans OpenSUSE utilise également un solveur SAT.
la source
PageRank est l'un des algorithmes les plus connus. Développé par le cofondateur de Google, Larry Page, et ses co-auteurs, ce logiciel a été à la base du moteur de recherche original de Google et est largement réputé pour l’avoir aidé à obtenir de meilleurs résultats de recherche que leurs concurrents de l’époque.
Nous imaginons un "surfeur aléatoire" commençant sur une page Web et cliquant de manière répétée sur un lien aléatoire pour l'emmener sur une nouvelle page. La question est: "Quelle fraction du temps le surfeur passera-t-il sur chaque page?" Plus le surfeur passe de temps sur une page, plus la page est considérée comme importante.
la source
Je mentionnerais le logiciel CPLEX (ou similaire), largement utilisé, de la méthode / algorithme Simplex pour résoudre les problèmes de programmation linéaire. C'est l'algorithme (?) Le plus utilisé dans la recherche économique et opérationnelle.
"Si l'on prenait des statistiques sur le problème mathématique qui utilise le plus de temps informatique dans le monde, alors (sans compter les problèmes de manipulation de base de données tels que le tri et la recherche), la réponse serait probablement une programmation linéaire. " (L. Lovász, Un nouveau algorithme de programmation linéaire - meilleur ou pire que la méthode simplex? Math. Intelligencer 2 (3) (1979/80) 141-146.)
L'algorithme Simplex a également une grande influence en théorie; voir, par exemple, la conjecture de Hirsch (polynomiale) .
Je suppose qu'un étudiant typique de premier cycle ou de doctorat class in algorithmics traite de l'algorithme Simplex (y compris les algorithmes de base de l'algèbre linéaire comme Gauss Elimination Method).
(D'autres algorithmes réussis, y compris Quicksort pour le tri, sont répertoriés dans Algorithmes du livre .)
la source
Si je comprends bien, le national de jumelage des résidents n’a été pendant longtemps qu’une application directe de l’ algorithme de Gale-Shapley au problème du mariage stable. Depuis, il a été légèrement mis à jour pour traiter certains détails supplémentaires tels que les assignations de conjoint (ou "problème à deux corps"), etc ...
la source
Si vous incluez également un programme de niveau doctorat, de nombreux programmes (parmi la plupart?) De troisième cycle comprennent un cours sur la théorie du codage. Si vous suivez un cours de théorie des codes, vous allez certainement aborder le code de Reed-Solomon qui fait partie intégrante du fonctionnement des disques compacts et le codage Huffman utilisé dans les formats de fichier JPEG, MP3 et ZIP. En fonction de l'orientation du cours, vous pouvez également couvrir Lempel-Ziv, utilisé au format GIF. Personnellement, j'ai eu Lempel-Ziv dans un cours d'algorithme de premier cycle, mais je pense que cela pourrait être atypique.
la source
GNU grep est un outil de ligne de commande permettant de rechercher dans un ou plusieurs fichiers d’entrée des lignes contenant une correspondance avec un motif spécifié. Il est bien connu que grep est très rapide! Voici une citation de son auteur Mike Haertel (prise d' ici ):
la source
Plus généralement, le prix Kanellakis est décerné par l'ACM pour précisément ces découvertes théoriques qui ont eu un impact majeur dans la pratique.
le prix de 2012 concerne le hachage tenant compte des localités , qui est devenu une méthode de choix pour la réduction de la dimensionnalité dans l'exploration de données en cas de problèmes de voisinage (et est relativement facile à enseigner - du moins pour l'algorithme lui-même)
la source
leε fraction près de la "masse" totale de tous les éléments (la masse est le premier ou le second moment de le vecteur de fréquence). Cela suffit pour trouver des éléments "tendances", ce dont vous avez besoin dans de nombreuses applications.
Voici quelques exemples d'utilisations industrielles de ces structures de données:
Voici également un site qui collecte des informations sur les applications de CountMin.
En ce qui concerne l'enseignement, je sais que les techniques de dessin de base sont enseignées à Princeton dans des cours de mathématiques discrets de premier cycle. On m'a appris le sketch CountMin lors de mon premier cours d'algorithmes. Quoi qu'il en soit, l'analyse de CountMin est plus simple que celle de presque tous les autres algorithmes randomisés: il s'agit d'une application simple de l'indépendance par paire et de l'inégalité de Markov. Si ce n'est pas le matériel standard dans la plupart des cours d'algorithmes, je pense que c'est pour des raisons historiques.
la source
Au cours de la dernière décennie, des algorithmes ont été utilisés pour augmenter le nombre (et la qualité, je pense?) Des greffes de rein par le biais de divers programmes de jumelage de donneurs. J'ai eu du mal à trouver les dernières nouvelles à ce sujet, mais voici au moins quelques indications:
En 2007, l’Alliance for Paired Donation utilisait un algorithme d’ Abraham, de Blum et de Sandholm. . Ils l'utilisent peut-être encore, mais je n'ai pas pu le savoir en effectuant une recherche en ligne. Bien que cet algorithme ne soit presque certainement pas traité dans les cours "standard", il combine plusieurs idées fondamentales enseignées dans ces cours afin de fournir un algorithme assez bon pour un problème généralement NP-complet (une variante de Cycle Cover )
Le registre national des reins utilise également certains algorithmes standard, notamment CPLEX (à un moment donné). Cela a conduit à une chaîne de transplantations réellement exécutée reliant 60 personnes .
C’est l’un de mes exemples préférés, non seulement du succès des algorithmes, mais aussi de l’importance de l’étude des algorithmes pour les problèmes NP-complets. Ils peuvent littéralement sauver des vies et l’ont déjà fait!
la source
L'algorithme de Viterbi, qui est encore largement utilisé dans la reconnaissance vocale et de nombreuses autres applications: http://en.wikipedia.org/wiki/Viterbi_algorithm L'algorithme lui-même est une programmation dynamique de base.
From Wikipedia: "L’algorithme de Viterbi a été proposé par Andrew Viterbi en 1967 en tant qu’algorithme de décodage pour les codes convolutifs sur des liaisons de communication numériques bruyantes. [1] L’algorithme a trouvé une application universelle dans le décodage des codes convolutifs utilisés à la fois dans les réseaux numériques cellulaires numériques CDMA et GSM. modems d'accès distant, satellites, communications en espace lointain et réseaux locaux sans fil 802.11. Il est également couramment utilisé aujourd'hui pour la reconnaissance vocale, la synthèse vocale, la recherche de mots clés, la linguistique computationnelle et la bioinformatique, par exemple dans la synthèse vocale reconnaissance), le signal acoustique est traité comme la séquence d'événements observée et une chaîne de texte est considérée comme la "cause cachée" du signal acoustique. L'algorithme de Viterbi recherche la chaîne de texte la plus probable en fonction du signal acoustique. "
la source
la source
Découvrez le projet BonnTools for Chip Design de Jens Vygen. http://www.or.uni-bonn.de/~vygen/projects.html J'ai entendu des exposés à ce sujet et j'ai également examiné certains de leurs documents. Ils utilisent l’arrondissement aléatoire de style Raghavan-Thompson ainsi que la méthode de mise à jour multiplicative du poids pour la résolution de LP à flux de production multiples à grande échelle. Cependant, comme dans tout grand projet, ils doivent aussi faire de l'ingénierie, mais la méthodologie repose beaucoup sur des algorithmes bien connus.
la source
C'est drôle que j'ai vu cette question aujourd'hui et que, par coïncidence, j'ai cliqué sur ce lien pour consulter les nombreuses utilisations de la transformation de Fourier .
la source
Je suis plutôt surpris de voir que, avec tous les algorithmes sophistiqués ci-dessus, personne ne mentionne la vénérable famille d'algorithmes de compression Lempel-Ziv (inventée en 1977/78).
Mise à jour
Apparemment, cela a déjà été mentionné brièvement.
la source
La décomposition en valeurs singulières (SVD) est étroitement liée à l' analyse factorielle statistique ou à l' analyse en composantes principales et est compréhensible dans une classe d'algèbre linéaire ou de statistiques de premier cycle et possède de nombreuses propriétés théoriques importantes. il joue également un rôle dans les algorithmes de compression d'images. il a joué un rôle clé dans les entrées gagnantes du concours Netflix d'un million de dollars (l'un des plus grands concours de datamining au monde) et est désormais implémenté sur leur site pour prédire le nombre d'utilisateurs. il est également connu pour être étroitement lié aux réseaux de neurones auto-organisateurs de Hebbian, qui trouvent leur origine dans la théorie biologique.
il existe également un lien avec la descente de gradient qui est largement utilisée dans les réseaux de neurones artificiels et d’ apprentissage automatique , ainsi qu’en tant que technique d’optimisation très universellement appliquée, la méthode de Newton étant une forme 2D de base. il existe un algorithme de descente de gradient pour obtenir le SVD.
la source
La recherche d'un chemin eulérien est à la base de l'assemblage du génome - une tâche couramment effectuée lorsque l'on travaille avec des génomes complets (en bioinformatique, en médecine, en criminalistique, en écologie).
MISE À JOUR Oubliée celle évidente: UPS, FedEx et USPS doivent résoudre chaque soir de grandes instances de problème lié au vendeur itinérant. Cela leur permet d'économiser beaucoup de temps et d'argent pour envoyer les chauffeurs sur un itinéraire optimal.
UPDATE2 Le minimum de vertex de retour est utilisé pour la résolution des blocages dans de nombreux systèmes d'exploitation.
la source
J'aime ce système qui permet de sauver un maximum de vies au Royaume-Uni grâce aux greffes de rein, basé sur des algorithmes d'appariement maximum: don de rein apparié et altruiste . Ils mettent en correspondance des personnes ayant besoin d'un rein et dont un ami / un parent ne correspondant pas est disposé à faire un don, avec d'autres personnes se trouvant dans la même situation, de manière maximale. Puis le jour du don, tous les donneurs font un don en même temps, suivi d'un transport rapide des reins à travers le pays jusqu'aux destinataires.
la source
Ce livre relativement nouveau mérite d'être considéré comme une réponse complète / détaillée à la question sous une forme pratique, étendue / collectée, et qui pourrait être utilisé comme matériel supplémentaire pour une classe d'algorithmes. [certains d’entre eux ont déjà été mentionnés; le fort chevauchement est remarquable.]
Neuf algorithmes qui ont changé l'avenir: les idées ingénieuses qui animent les ordinateurs d' aujourd'hui par MacCormick
Une autre référence quelque peu similaire mais plus théorique, Le meilleur du 20ème siècle: Nom de l' éditeur - Top 10 Algorithms Cipra / SIAM.
la source
La recherche de chaînes Knuth-Morris-Pratt est largement utilisée, spécifique et enseignée dans les étudiants de premier cycle et de deuxième cycle.
la source
En pensant à des algorithmes très basiques
C'est bien de montrer qu'ils apparaissent dans la vie réelle:
A. De nombreux groupes utilisent une sorte d’algorithme d’arbre de couverture pour communiquer en divisant les listes téléphoniques de manière hiérarchique entre les personnes B. Les voitures situées à une intersection utilisent généralement un algorithme alternatif (de manière volontaire) C. La plupart des lieux, comme des banques et des hôpital, organisent leurs clients dans un algorithme FIFO
la source
Un problème algorithmique fascinant se pose dans les applications médicales du scanner. En tomographie informatisée (CT), le corps est exposé aux rayons X sous différents angles. Les émetteurs de rayons X se trouvent à une extrémité du scanner et les capteurs à l’autre extrémité. À partir d'une telle série de numérisations, une image est reconstruite pour que le médecin puisse l'examiner!
L' algorithme de rétroprojection filtré est la base de la reconstruction d'une image à partir d'un ensemble de numérisations. Cet algorithme est en fait une forme de problème d’approximation dans lequel le "signal" est échantillonné en dessous du taux de Nyquist. Cet algorithme est utilisé "en coulisse" dans tous les hôpitaux et la rétroprojection filtrée de base utilise des mathématiques de premier cycle telles que les transformations de Fourier pour réaliser le théorème de la tranche de Fourier .
la source
Un exemple de FFT
Une fois, j'ai aidé à porter un algorithme FFT dans une autre langue système.
L'algorithme était utilisé pour déterminer les coupures de lignes dans la livraison coaxiale de la télévision par câble / Internet / téléphone. En gros, un technicien demande à ce qu'un signal soit envoyé à la boîte du client, tout en obtenant un affichage en temps réel des statistiques relatives à un client spécifique, telles que la qualité de service, le dB, ... Le technicien peut utiliser les données et un graphique pour déterminer à quelques pas de distance entre la maison et le pôle où il existait une rupture partielle (ou de multiples ruptures, comme on me l'avait dit).
Comme mentionné ci-dessus, la FFT est largement utilisée, mais c’est l’une des plus flagrantes et évidentes (en termes de pourquoi et de comment) que j’ai vu dans la pratique.
Désolé j'ai dû garder un haut niveau.
la source
L'algorithme de ligne de Bresenham est l'algorithme le plus utile que j'ai rencontré. Facile à comprendre, je l’ai utilisé pour de nombreuses applications allant du dessin de ligne à un répartiteur complexe pour le moteur de diffusion 3D au rendu complexe de polygones, ainsi que pour des utilisations complexes en animation et en redimensionnement.
la source
Planification d'itinéraire personnalisable (Daniel Delling, Andrew V. Goldberg, Thomas Pajor et Renato F. Werneck) http://research.microsoft.com/apps/pubs/default.aspx?id=145688
pouvoirs de Bing Maps: http://www.bing.com/blogs/site_blogs/b/maps/archive/2012/01/05/bing-maps-new-routing-engine.aspx
la source
Wikipedia possède une collection décente d'algorithmes / applications classés plus ou moins dans une liste . Microsoft fournit les articles les plus cités, mais sans aucune explication explicite du domaine de l'informatique ni de l'application. Il existe également une liste chronologique de différentes conférences CS _http: //jeffhuang.com/best_paper_awards.html_ compilée par le professeur Huang.
Le regroupement spectral est un algorithme de regroupement élégant, connu sous le nom d' algorithme de coupes normalisées introduit par Jianbo Shi et Jitendra Malik pour la segmentation d'images. Il a également été bien développé dans les applications de clustering de données, constituant une bonne intersection entre les deux communautés.
la source
Deux autres exemples de prédilection personnels bien ancrés dans l’informatique, mais que les théoriciens de l’abstraction ont peut-être facilement laissés de côté. Ils ont connu d’énormes progrès / transformations et ont eu un impact pratique / appliqué considérable à massif dans la vie quotidienne au cours des dernières décennies. déjà une génération entière a grandi sans connaître le monde sans eux. essentiellement la catégorie de la modélisation et de la simulation .
algorithmes de simulation de physique . principalement en utilisant les lois de Newtons mais en utilisant d’autres lois (comme la dynamique des fluides). utilisé dans une grande variété d'applications allant des applications d'ingénierie aux jeux vidéo, et parfois aux films. Ceci est également responsable de l'amélioration significative de la sécurité, de l'efficacité ou de la fiabilité des voitures et des avions, par exemple, en soumettant les conceptions virtuelles / de test à des contraintes simulées. un important domaine de recherche connexe en cours de la bioinformatique avec des implications énormes en biologie, par exemple conception de médicaments, prévention des maladies, etc.: repliement des protéines / prévision de la structure . Notez également que cette année, le prix Nobel de chimie a été attribué à Karplus, Levitt, Warshel pour la simulation de la chimie . les algorithmes de simulation de physique sont fortement impliqués dans la sûreté / les essais d'armes nucléairespar exemple dans les laboratoires de Los Alamos.
Raytracing / algorithmes CGI . Ce sujet de recherche a commencé il y a à peine quelques décennies [un ami a obtenu son diplôme de maîtrise en algorithmes de gravure de rayons en écriture CS], mais il est devenu très utilisé dans les jeux et l'industrie du cinéma, atteignant des niveaux extraordinaires de vraisemblance qui est à l'origine de nombreuses effets spéciaux dans les films. ces industries ont littéralement investi des milliards de dollars et misent sur ces algorithmes, et des grandes entreprises entières les exploitent, par exemple Pixar . Cette technique est maintenant tellement répandue qu’elle est utilisée couramment, même dans les films "typiques". par exemple récemment The Great Gatsby s’appuie beaucoup sur les effets CGI pour dessiner des environnements convaincants ou stylisés, retoucher le film / les personnages, etc.
la source
Rosetta Code répertorie les algorithmes appliqués par tâche de programmation (692) et par langage de programmation (518) avec Semantic MediaWiki.
la source
Peut-être que tous les principaux algorithmes / préférés d'intérêt pour ce public ont été mentionnés à ce stade. cependant, quelques autres méritent d'être mentionnés pour leur exhaustivité. & une analyse de ce qui est considéré comme un algorithme significatif est pertinente ici.
Dans les domaines de la CS & IT, il semble y avoir un phénomène observé il y a longtemps dans l'IA appelé "déplacer les poteaux de but" . Il s’agit d’un phénomène psychologique dans lequel le domaine progresse relativement rapidement mais où les gens s’adaptent rapidement à la «nouvelle normalité» et prennent des avancées réelles, voire révolutionnaires, comme banales ou non, rétrospectivement, après avoir accompli, c’est-à-dire minimisées ou minimisées. Cette question rend bien compte de la façon dont les algorithmes passent de la recherche et développement au "déploiement". citant l'auteur de la question dans des commentaires ultérieurs:
mais ceci est problématique et constitue fondamentalement une redéfinition du mot "algorithme" centrée sur le TCS. vraisemblablement les algorithmes intéressants sont avancés. cela signifie-t-il que si un problème est réduit à un algorithme avancé, ce n'est plus "intéressant"? et "avancé" est clairement une cible en mouvement. il existe donc un moyen de définir les "algorithmes" de manière étroite ou large . il semble que la définition du TCS change en fonction du contexte, mais il convient de noter que même dans le TCS, il existe une tendance à la définition large, par exemple dans ce qu'on appelle "l'objectif algorithmique" .
Parfois, les algorithmes les plus répandus sont aussi les plus négligés! Internet et WWW constituent un vaste environnement / quasi-écologie pour les algorithmes. encore relativement jeune et âgé d’environ 2 décennies (inventé en 1991), il a connu une croissance massive et exponentielle en peu de temps. La croissance du site WWW a probablement même dépassé la célèbre loi exponentielle Moores.
Internet / WWW sont supportés par de nombreux algorithmes sophistiqués. Internet possède des algorithmes de routage complexes intégrés dans les routeurs (alimentant à nouveau des entreprises de plusieurs milliards de dollars, telles que Cisco). une théorie avancée y est applicable, par exemple dans les algorithmes de routage . ces algorithmes ont fait l’objet de recherches émergentes, avancées / à la pointe de la technologie il y a plusieurs décennies, mais ils sont maintenant tellement ajustés et bien compris que c’est un peu invisible.
il ne faut pas oublier de si tôt qu'il y a plusieurs décennies, des chercheurs renommés n'étaient même pas certains du fonctionnement ou de l'impossibilité du monde de l'internet (comme le montrent les premières recherches sur la commutation de paquets, un nouveau modèle de conception radicalement différent de celui qui existait auparavant), et Il y a quelques années encore, on craignait que le système échoue à un moment donné et commence à échouer en raison de pics de volume énormes.
il utilise également une détection / correction d'erreur sophistiquée . Internet est probablement le plus grand système, le plus tolérant aux pannes jamais construit par les humains, toujours en croissance.
Ensuite, il existe des arguments solides en faveur de l’avancée des algorithmes qui alimentent le WWW. Les serveurs HTTP et Web sont hautement optimisés et utilisent également des protocoles de sécurité / cryptage avancés (HTTPS). la logique de rendu d'une page Web est devenue extrêmement avancée en HTML5 et CSS3 , avec le Javascript langage de programmation .
Le CSS relativement nouveau repose sur divers principes similaires à ceux de la programmation orientée objet, tels que la réutilisabilité et l'héritage. en parlant de composition, TeX est un système de composition scientifique important, complexe en interne (pas si différent d’un langage de programmation) inventé par Knuth et qui peut maintenant être rendu sur des pages Web (et est utilisé dans des centaines de milliers d’articles scientifiques ou plus).
Un autre domaine relativement nouveau d’algorithmes reposant sur l’Internet et qui reposent toujours sur l’ intelligence collective . Le logiciel stackexchange lui-même est un exemple de système sophistiqué d’intelligence collective. les réseaux sociaux présentent également les caractéristiques clés de l'intelligence collective et des fonctionnalités sont ajoutées en permanence pour augmenter cette intelligence (par exemple, les "Likes" de Facebook ne datent que de quelques années). le domaine des systèmes de notation repose sur des algorithmes de filtrage collaboratif et continue d'évoluer en fonction de nouvelles recherches et applications.
Bref, tous les succès révolutionnaires transformant l'expérience humaine quotidienne vont bien au-delà des «objectifs de terrain». comme l'indique le titre de la question, tous les principaux algorithmes sont déployés . maintenant si omniprésent et invisible qu’il ressemble à l’expression «informatique», «une partie de la plomberie».
la source
Un algorithme (matériel) étonnamment réussi est la réinitialisation à la mise sous tension.
Sans un système dans lequel un ordinateur est dans un état connu lors de la mise sous tension, rien d'autre ne se passe bien .
La réinitialisation à la mise sous tension explique pourquoi tout fonctionne avec un processeur, qu’il soit considéré intégré ou non.
La prochaine fois que vous rencontrerez des difficultés pour les programmeurs et les informaticiens, soulevez votre verre de soda à la réinitialisation à la mise sous tension.
la source