FA-PAIO
  • Project on AI & Opti.
  • Plan du module
  • Jeux et Évaluation
    • Le jeu 421
    • Le jeu Risky
    • Rendus Attendus
  • Agir et apprendre à agir
    • Introduction
    • Apprendre le 421
    • (Q-learning en Python)
    • Convergence au 421
    • Model-Based Learning
    • Passer à l'échelle
  • Heuristiques
    • Introduction
    • Rappel (1/2)
    • Rappel (2/2)
    • Stratégie
    • Étude des heuristiques (1/4)
    • Étude des heuristiques (2/4)
    • Étude des heuristiques (3/4)
    • Étude des heuristiques (4/4)
    • Propriétés des heuristiques
    • Qualité des heuristiques (1/2)
    • Qualité des heuristiques (2/2)
    • Production d'heuristiques
  • Théorie des jeux
    • Introduction
Powered by GitBook
On this page
  • Search Cost
  • Effective Branching Factor (EBF)
  • La Domination (en tout bien, tout honneur)

Was this helpful?

  1. Heuristiques

Qualité des heuristiques (2/2)

PreviousQualité des heuristiques (1/2)NextProduction d'heuristiques

Last updated 3 years ago

Was this helpful?

La notion de qualité d'une heuristique est multi-dimensionnelle ; elle dépend du prisme par lequel on la regarde (gain en temps, en espace, qualité des solutions...). De plus, comme on l'a vu, il est souvent difficile de s'assurer de l'optimalité d'une heuristique pour notre problème.

De fait, les critères qui quantifient cette notion de qualité sont variées ; parmi celles-ci, j'en ai vu trois de manière récurente.

Search Cost

Il s'agit d'un terme "global", et du plus facile à appréhender. Cela consiste à faire intervenir différents critères dans la qualité. Par exemple, le temps pris par l'algorithme pour résoudre le problème, ou encore l'espace mémoire pris lors de la résolution.

C'est une métrique assez facile à mettre en oeuvre.

Effective Branching Factor (EBF) b∗b*b∗

L'EBF s'appuie sur la notion de branching factor et de la simplification qu'une heuristique permet de faire lors de l'exploration du problème.

Concrètement, si pour une solution de profondeur ddd, et NNN le nombre total de noeuds générés pendant l'exploration, alors b∗b*b∗ est le branching factor qu'une arbre uniforme de profondeur ddd aurait afin de contenir N+1N+1N+1 noeuds, tel que :

N+1=1+b∗+(b∗)2+⋯+(b∗)dN + 1 = 1 + b* + (b*)^2 + \dots + (b*)^dN+1=1+b∗+(b∗)2+⋯+(b∗)d

Par exemple, si A* trouve une solution de profondeur 5 en dépliant 52 noeuds, alors l'EBF est de b∗=1.92b* = 1.92b∗=1.92.

Le point intéressant avec l'EBF est qu'il est relativement constant entre les différentes instances d'un problème, et l'on peut donc conduire des expérimentations pour mesurer empiriquement b∗b*b∗ est étudier la qualité de notre heuristique.

Si on prend deux heuristiques pour la résolution du taquin, h1h_1h1​ et h2h_2h2​, respectivement le nombre de tuiles mal placées et la somme des distances de leur position à leur position respective, on a ce tableau récapitulatif de l'EBF, via un A*:

La constance de l'EBF survient principalement si le problème est suffisament complexe (NP-C / NP-H ++). Autrement, la mesure n'est pas forcément fiable.

Une bonne heuristique possède un EBF proche de 1.

La Domination (en tout bien, tout honneur)

Si une heuristique hxh_xhx​ est, pour n∈Nn \in Nn∈N, toujours meilleur qu'une autre heuristique hyh_yhy​, alors on dit que hxh_xhx​ domine hyh_yhy​.

Le principe de domination est étroitement lié à la notion d'efficacité d'une heuristique. En sélectionnant toujours les heuristiques les plus dominantes, on obtient ainsi la ou les meilleurs heuristiques pour résoudre le problème.

Pour définir la domination de hxh_xhx​ sur hyh_yhy​, il faut soit étudier mathématiquement le problème, soit empiriquement. Dans le dernier cas, il ne s'agit qu'une domination partielle effectuée sur le domaine de valeur testé. Il convient de s'assurer que le sous-échantillonnage utilisé soit représentatif des cas que l'on veut tester.

Il est possible de créer des scripts automatiques qui lancent vos algorithmes et classent automatiquement les heuristiques, puis définis quelles heuristiques utilisés en fonction de la difficulté de votre problème.

Dans des problèmes très difficiles, trouver des heuristiques dominantes peut faire la différence.

Par exemple, dans le tableau ci-dessus, suite aux tests effectués, on peut dire que h2h2h2 domine h1h1h1 : il est donc plus intéressant d'implémenter une fonction de distance de pièces mal placées pour le taquin que le nombre de tuiles mal placées.

Effective Branching Factor de deux heuristiques différentes, par pas de 2 en profondeurs. IDF est l'approche sans heuristique