• Aucun résultat trouvé

Énoncé de TD

N/A
N/A
Protected

Academic year: 2022

Partager "Énoncé de TD"

Copied!
2
0
0

Texte intégral

(1)

Algorithmes Évolutionnaires Master 2 MIAGE IA

2

Travaux dirigés N

o

2 : le problème de la partition

Andrea G. B. Tettamanzi Université côte d'Azur

andrea.tettamanzi@univ-cotedazur.fr Année universitaire 2020/2021

Résumé

On va adapter l'algorithme génétique simple développé lors de la séance précédente à un problème bien plus dicile que le MaxOne , notamment le problème de la partition, qui est NP-complet.

1 Introduction

Le problème de la partition, en tant que problème de décision, peut être énoncé comme suit : étant donné un ensemble ni A et une taille t(a) ∈ N\0 pour chaque a ∈ A, existe-t-il un sousensembleA0⊆Atel que

X

a∈A0

t(a) = X

a∈A\A0

t(a) ? (1)

Ce problème a été démontré être NP-complet [2], même si il peut être résolu en temps pseudo- polynomial par programmation dynamique [1].

Une énonciation équivalente, en tant que problème d'optimization, consiste à minimiser la valeur absolue de la dierence entre les deux sommes de l'équation 1 :

minimiser

A0⊆A z(A0) =

X

a∈A0

t(a)− X

a∈A\A0

t(a)

, (2)

car si minA0⊆Az(A0) = 0, alors la réponse au problème de décision est armative ; si, au contraire, minA0⊆Az(A0)>0, elle est négative.

Une solution candidate pour le problème de la partition est un sousensemble de A, qui peut être naturellement représenté par un vecteur de 0 et 1 de taille N = kAk. Cela s'adapte parfaitement à un algorithme génétique simple, qui représente une solution candidate avec une chaîne de chires binaires !

2 Consignes

1. Modiez la fonction de tness pour qu'elle calcule f(A0) = 1/(z(A0) + 1), où z(A0) est déni comme dans l'équation 2. Pourquoi ne peut-on pas utiliser z directement comme fonction de tness ?

2. Pour tester l'algorithme, vous pouvez utiliser une petite instance du problème, de taille N = 19, oùA={1,2, . . . ,19}et, pour touta∈A,t(a) =a. Pour ce problème on connaît une solution optimale, qui est

A0 ={1,2,4,7,8,11,12,15,16,19}, z(A0) = 0.

1

(2)

3. Pour étudier le comportement de l'algorithme, créez des autres instances du problème en générant les tailles des élémentsa∈Aau hasard. Notez qu'il est permis d'avoir plusieurs éléments ayant la même taille.

4. Pour une instance donnée, exécutez plusieurs fois l'algorithme. Qu'est-ce que vous obser- vez ?

5. S'il vous reste du temps, jouez avec les parametres pour étudier leur inuence sur le comportement de l'algorithme. Vous pouvez aussi essayer des dénitions alternative de la fonction de tness, commef(A0) =e−kz(A0), pourk >0, ouf(A0) =P

a∈At(a)

−z(A0).

Rendez votre code et vos observations dans un archive zippé par courriel.

Références

[1] M. R. Garey and D. S. Johnson. Computers and Intractability : A guide to the Theory of NP-Completeness. Freeman, New York, 1979.

[2] R. M. Karp. Reducibility among combinatorial problems. In R. E. Miller and J. W. Thatcher, editors, Complexity of Computer Computations, pages 85103. Plenum Press, New York, 1972.

2

Références

Documents relatifs

Bien évidemment nous connaissons la solution à l'avance (c'est la chaine 111. .1), mais nous souhaitons que l'algorithme génétique la découvre tout seul, en ayant comme seul indice

Vous pouvez le garder comme critère séparé (auquel cas, votre problème deviendra multi-objectif et vous chercherez donc un front de Pareto de solutions non dominées) ou bien le

Accessoirement, des contraintes peuvent être imposées sur les choix admissible, comme un poids minimum et maxi- mum pour certaines classes d’actifs (par exemple,

Dans les deux cas, il y a des avantages et des inconvénients : si on décide de coder soi-même, il fau- dra investir du temps dans le développement, mais on aura un contrôle et

Téléchargez les données brutes pour la dernière année an par an (depuis la même date qu’aujourd’hui l’année dernière jusqu’à hier : c’est l’option par défaut).. Ne

Utlisez ce réseau bayésien avec les tables de probabilités ainsi calculées pour faire la classification de ce jeu de données. Comparez et discutez les résultats de ces

Etant donné un arbre de codage binaire, écrire un algorithme qui construit la table qui associe les codes aux symboles.. Calculer et commenter la complexité de

Pour un arbre binaire A , écrivez une fonction qui calcule la hauteur de la feuille la plus haute (la feuille la plus proche de la racine).. 1. par un parcours en profondeur