• [^] # Re: Bravo mais..

    Posté par . En réponse à la dépêche La quintessence des algorithmes bit à bit. Évalué à 4.

    Optimisation locale vs optimisation globale.

    Pour généraliser un peu :

    Ingrédients : -> un problème à résoudre
    -> des solutions
    -> un (éventuellement des, mais c'est tout de suite plus compliqué) critères pour juger une solution

    Notre problème : Avoir un programme qui fait ce qu'on veut (autrement dit correct)

    Nos solutions : tous les programmes corrects possibles.

    Notre critère : la minimisation du temps de calcul.

    "l'optimisation" telle que tu l'entends peut se voir dans ce cadre comme de la "recherche locale" : on part d'une solution existante et on itère de petits changements sur cette solutions pour minimiser le temps de calcul. Le risque de ce genre d'optimisation est de tomber sur un "optimum local" qui ne soit bien moins bien que l'optimum global (globalement on changera pas grand chose à l'algo en optimisant au niveau assembleur).

    Une optimisation à un niveau plus global, tu vas considérer de plus gros changements dans le code (considérer le problème de manière plus abstraite, découper en des tâches, choisir l'algorithme connu le plus efficace pour résoudre les différentes tâches, etc.). C'est plus difficile de faire de l'optim globale automatiquement que de l'optim locale.

    Et ce cadre s'applique aussi bien à l'optimisation du code qu'a l'optimisation de pleins d'autres objets, c'est beau non ?