Tech

Qu'est-ce que l'algorithme A*, et comment de meilleures heuristiques l'accelerent-elles ?

Hacker Newsil y a 2 h
Une carte en grille abstraite avec des lignes de trajet
Une carte en grille abstraite avec des lignes de trajetPhoto: kdadan97 / Pexels

Vous etes-vous deja demande ce qui permet a un personnage de jeu video de trouver le chemin le plus court sur une carte, ou a un robot d'entrepot de naviguer efficacement entre les rayonnages ? La reponse est souvent un seul algorithme, developpe en 1968, encore largement utilise aujourd'hui : A*, prononce "A etoile".

A* est un algorithme de recherche concu pour trouver le chemin le plus court entre un point de depart et un objectif. Son idee centrale est d'eviter de parcourir aveuglement tous les chemins possibles et de guider intelligemment la recherche a l'aide d'une "fonction heuristique" qui estime a quel point un point donne est proche de la destination.

La qualite de cette fonction heuristique determine directement la vitesse de l'algorithme. Une estimation grossiere pousse l'algorithme a explorer beaucoup plus de chemins que necessaire, tandis qu'une estimation precise mais encore "optimiste" peut orienter la recherche vers l'objectif bien plus rapidement.

Les heuristiques les plus simples reposent generalement sur des calculs de distance a vol d'oiseau, comme la distance euclidienne, mais elles ont tendance a sous-estimer la distance reelle des qu'une carte comporte des murs, des obstacles ou des chemins sinueux.

Les heuristiques differentielles abordent ce probleme differemment : en precalculant et en stockant les distances reelles vers quelques points de repere fixes sur la carte, l'algorithme peut utiliser cette information pendant la recherche pour produire des estimations bien plus precises.

Le compromis est que cette approche necessite de la memoire supplementaire et un temps de preparation en amont pour le precalcul ; mais sur de grandes cartes complexes, le gain de vitesse obtenu pendant la recherche elle-meme peut largement compenser ce cout.

La pertinence pratique d'A* depasse largement le developpement de jeux video : la navigation robotique, la planification d'itineraires logistiques, le routage reseau et meme certains systemes de planification en IA reposent sur une logique de recherche similaire.

Le fait que l'algorithme reste utilise depuis plus d'un demi-siecle illustre de maniere frappante la durabilite possible d'une idee fondatrice en informatique ; la recherche actuelle continue de trouver de nouvelles facons d'ameliorer ses performances.

Pour les developpeurs, la conclusion pratique est claire : choisir la bonne heuristique peut parfois produire une difference de performance bien plus importante que de changer l'algorithme lui-meme.

Ce type d'ameliorations finement ajustees continue de fonctionner discretement derriere les systemes de recherche d'itineraires utilises aujourd'hui sur des milliards d'appareils ; chaque fois qu'une application de cartographie calcule un trajet, ou qu'un personnage de jeu contourne un obstacle, une variante d'A* est probablement a l'oeuvre.

Cet article est un résumé éditorial assisté par IA basé sur Hacker News. L'image est une photo d'archive de kdadan97 sur Pexels.

À lire ensuite

Une interface de navigateur web sur l'écran d'un ordinateur portable
Tech

Pourquoi Microsoft Edge s'apprête à bloquer les anciens bloqueurs de publicité

Microsoft Edge met fin à la prise en charge de la plateforme d'extensions Manifest V2, comme l'avait fait Google Chrome plus tôt cette année, ce qui désactivera le bloqueur de publicité uBlock Origin et d'autres similaires. L'impact sera limité pour la plupart des utilisateurs, mais ce changement s'inscrit dans une transformation plus large de l'écosystème des extensions de navigateur.

The Vergeil y a 1 j