Macop est un paquetage python pour la résolution de problèmes d’optimisation discrète, l’optimisation continue pouvant également s’appliquer si nécessaire. L’objectif est de permettre à un utilisateur d’exploiter la structure de base proposée par ce package pour résoudre un problème qui lui est propre. L’intérêt est qu’il peut rapidement s’abstraire des complications liées à la manière d’évaluer, de comparer, de sauvegarder l’avancement de la recherche de bonnes solutions mais plutôt se concentrer si nécessaire sur son propre algorithme.
Macop propose les fonctionnalités principales et basiques suivantes :
- solutions : représentation de la solution ; validateur : comme la programmation par contraintes, un validateur est une fonction qui sert à valider ou non un état de données de la solution ;
- évaluateur : stocke les données de l’instance du problème et implémente une méthode de calcul afin d’évaluer une solution ;
- opérateurs : mutateurs, opérateurs de croisement pour mettre à jour et obtenir une nouvelle solution ;
- politiques : la façon dont vous choisissez les opérateurs disponibles (vous pouvez utiliser l’apprentissage par renforcement) ;
- algorithmes : algorithmes génériques et implémentés de recherche d’optimisation ;
- callbacks : callbacks pour suivre automatiquement l’avancement de l’espace de recherche et redémarrer à partir de l’état précédent si nécessaire.