dimanche 7 décembre 2014

Mathématiques pour ordinateurs

Mon enquête sur big data m'a fait recroiser le chemin de la "programmation linéaire". Ce qui m'a rappelé ma lointaine jeunesse. Et les constatations que j'avais faites à l'époque où je m'occupais d'algorithmes pour Dassault Systèmes. 

Comme tout ce qui est théorique, la programmation linéaire pose beaucoup de problèmes. En particulier, elle fait appel à des heuristiques. J'ai constaté qu'avec les ordinateurs, il fallait être "bestial". 
  • Il n'y a pas de cas général, que des cas particuliers. Appliquer la formule du livre de cours ou de l'article scientifique ne marche pas. (C'est l'équivalent du copier / coller d'Hervé Kabla.) Il faut tirer parti des particularités de la réalité. Il faut refuser le diktat des livres. 
  • Une formule mathématique ne signifie rien. Et cela pose de gros problèmes : comment savoir si la solution trouvée (forcément approximative) est "suffisamment" proche de la bonne solution ? Pour s'en tirer, il faut en revenir à la réalité. Alors, les écarts deviennent des distances, et l'on peut savoir si l'on respecte ou non les "tolérances". Surtout, on a souvent une idée assez bonne d'où chercher le point de départ de l'itération qui permettra d'atteindre son objectif rapidement. Pour cela, d'ailleurs, on peut utiliser des méthodes bestiales, comme les dichotomies, qui sont lentes, mais qui convergent à tous les coups. (Ce qui n'est pas le cas des algorithmes les plus sophistiqués.)
  • Et, il paie d'être encore plus bestial. En combinant l'intuition humaine et la puissance du calculateur, on n'a même pas besoin d'algorithmes sophistiqués. Si la zone à explorer est suffisamment petite, on peut en faire un maillage fin, et calculer la valeur de chaque nœud.
L'homme ne doit pas se laisser faire par l'ordinateur !


2001 A Space Odyssey Style B.jpg