Algorithmique Avancée

Documents pareils
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Cours de Master Recherche

Bases de données documentaires et distribuées Cours NFE04

Algorithmes de recherche

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Jean-Philippe Préaux

Optimisation for Cloud Computing and Big Data

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Généralités sur le Langage Java et éléments syntaxiques.

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

L'outil de transport des professionnels. CargoMaster: le partenaire fidèle pour l'artisanat, le commerce et l'industrie

Catalogue de solutions courrier AGADEV

Algorithmes d'apprentissage

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Encryptions, compression et partitionnement des données

Les arbres binaires de recherche

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Programmation Objet - Cours II

Plus courts chemins, programmation dynamique

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

OPTIMISATION À UNE VARIABLE

Programmation Linéaire - Cours 1

1.6- Génération de nombres aléatoires

Contrainte de flot pour RCPSP avec temps de transfert

OUTILS EN INFORMATIQUE

TD/TP PAC - Programmation n 3

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

KEL Doc. Service d envoi automatisé de courriers postaux. Un service du Groupe KEL

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

REGLES D USAGE: Règles générales

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Programmation linéaire

Application de K-means à la définition du nombre de VM optimal dans un cloud

Travaux dirigés n 1. Programmation linéaire

Programmation linéaire

DNS ( DOMAIN NAME SYSTEM)

Pourquoi l apprentissage?

Resolution limit in community detection

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Apprentissage. Intelligence Artificielle NFP106 Année Plan. Apprentissage. Apprentissage

COMMUNAUTE ECONOMIQUE ET MONETAIRE DE L AFRIQUE CENTRALE LA COMMISSION

Compression de Données - Algorithme de Huffman Document de Conception

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Optimisation multi-objectif par colonies de fourmis : cas des problèmes de sac à dos

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours de recherche opérationnelle I

Chapitre 5 : Flot maximal dans un graphe

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Systèmes de pompage à énergie solaire

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Service On Line : Gestion des Incidents

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Guide de configuration de SQL Server pour BusinessObjects Planning

Représentation d un entier en base b

Défi SSQ Groupe financier

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Cours d initiation à la programmation en C++ Johann Cuenin

Annexe 6. Notions d ordonnancement.

Système de gaine DICTATOR

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Indications pour une progression au CM1 et au CM2

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

INFO-F Algorithmique 3 et Recherche Opérationnelle

Canevas théoriques du projet sur le poker Partie A

Gestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes.

Rapport de stage. Bureau de Poste de Miribel. 25 au 29 janvier 2010

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

chapitre 4 Nombres de Catalan

Vente - Location Aménagement Self stockage Evénementiel

Programmation par contraintes. Laurent Beaudou

Chapitre 10. Les interfaces Comparable et Comparator 1

Algorithme d utilisation des anti-inflammatoires non stéroïdiens (AINS)

Recherche dans un tableau

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Programmation C++ (débutant)/instructions for, while et do...while

I. Introduction aux fonctions : les fonctions standards

Domosol : Système solaire combiné (SSC) de production d eau chaude et chauffage

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

a) La technique de l analyse discriminante linéaire : une brève présentation. 3 étapes de la méthode doivent être distinguées :

.NET - Classe de Log

SIMULATEUR DE MARCHE FINANCIER

Probabilités conditionnelles Exercices corrigés

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Table des Matières. 1. Organisation proposée. 1. Système d information & Remontées d information. 1. Dashboard. 1. Qualité de service

Mehdi Abou Abdir-Rahmân 7/11/2013

Apprentissage par renforcement (1a/3)

Transcription:

Algorithmique Avancée Cours n 5 : Algorithmes Gloutons (suite) Master 1 Génie Logiciel Université Abou Bakr Belkaïd Tlemcen 2016/2017 Mahfoud Houari mahfoud.houari@gmail.com hmahfoud.wordpress.com

Bilan du cours passé : 1. Une approche gloutonne peut être vue comme étant une amélioration d'une approche dynamique. 2. Un algorithme glouton choisit à chaque étape des solutions qui paraissent localement optimales à la base d'un critère glouton. 3. L'objectif est de choisir des solutions localement optimales pour atteindre à la fin une solution globalement optimale. 4. Un algorithme glouton parcourt une seule branche de l'arbre et ne fait jamais du backtracking. 5. Si le critère est optimal alors on parle d'un algorithme glouton exact, sinon on parle d'une heuristique gloutonne. 6. La difficulté d'une approche gloutonne réside dans la correction du choix glouton (prouver qu'il est optimal).

Problème du «Bin Packing» (Remplissage de boites)

Description : Soit un ensemble de N objets de poids p 1, p 2,, p N tel que : p i > 0. Un ensemble de M boites de même capacité C. Objectif : Il s'agit de déterminer un nombre minimum de boites pour ranger tous les objets. Formulation : M min j=1 1 i N 1 j M y j M, j=1 N, i=1 x ij =1 p i x ij C y j,, x {0, 1} y ij j {0, 1} 1 i N 1 j M

Existe il une solution gloutonne pour ce problème? Choix gloutons possibles : 1. Considérer l'objet ayant le plus grand poids. 2. Considérer l'objet ayant le plus petit poids.

Problème du «Bin Packing» 1. Considérer l'objet ayant le plus grand poids : Contre exemple pour ce choix: Les poids des objets : 2 2 3 3 3 5 6 Capacité des boites : 12 5 2 6 3 3 3 2 Solution gloutonne 2 2 3 3 3 6 5 Solution optimale Choix glouton non optimal.

Problème du «Bin Packing» 2. Considérer l'objet ayant le plus petit poids : Contre exemple pour ce choix: Les poids des objets : 2 2 3 3 Capacité des boites : 5 2 2 3 3 Solution gloutonne 2 2 3 3 Solution optimale Choix glouton non optimal.

Problème du «Bin Packing» Conclusion Aucun critère glouton optimal ne peut être trouvé pour ce problème. Il s'agit d'un problème NP complet (à voir plus tard) qui n'accepte pas une solution praticable.

Problèmes ayant une solution gloutonne exacte Rendu de monnaie avec le système {1, 2, 5, 10, 20, 50, 100, 200}. Choix glouton : Prendre la pièce de la plus grande valeur Ordonnancement de tâches. Choix glouton : Prendre la tâche qui termine le plus tôt Sac à dos version fractionnaire. Choix glouton : Prendre l'objet ayant la plus grande v i /w i Algorithme de Kruskal (Arbre de poids minimal). Choix glouton : Prendre l'arrête ayant la plus petite valeur.

Conception d'une solution gloutonne pour le problème d ordonnancement de tâches

Problème d'ordonnancement de tâches Soit une salle de conférence qui peut être allouée à la fois à une et une seule tâche (cours, workshop, réunion,...). Soit un ensemble de tâches t 1, t 2,, t n ayant chacune une date de début d i et une date de fin f i ( f i > d i ). Objectif : Allouer la salle à un nombre maximum de tâches.

Problème d'ordonnancement de tâches Soit une salle de conférence qui peut être allouée à la fois à une et une seule tâche (cours, workshop, réunion,...). Soit un ensemble de tâches t 1, t 2,, t n ayant chacune une date de début d i et une date de fin f i ( f i > d i ). Objectif : Allouer la salle à un nombre maximum de tâches. Exemple : t i 1 2 3 4 5 6 7 8 9 10 11 d i 1 3 0 5 3 5 6 8 8 2 12 f i 4 5 6 7 9 9 10 11 12 14 16 Quelques solutions optimales : (t 1, t 4, t 8, t 11 ) ou (t 2, t 4, t 9, t 11 ). Solutions non optimales : (t 6, t 11 ), (t 4, t 8, t 11 ), (t 4, t 9, t 11 ).

Problème d'ordonnancement de tâches Quelques choix gloutons possibles : 1. La tâche qui commence le plus tôt. 2. La tâche qui occupe le moins de temps (f i d i est plus petit). 3. La tâche qui termine le plus tôt.

Problème d'ordonnancement de tâches 1. La tâche qui commence le plus tôt : (non optimal) 1 2 3 4 5 6 7 8 9 10 temps

Problème d'ordonnancement de tâches 2. La tâche qui occupe le moins de temps : (non optimal) 1 2 3 4 5 6 7 8 9 10 temps

Problème d'ordonnancement de tâches 3. La tâche qui termine le plus tôt : (critère optimal) Il n'existe aucun contre exemple pour ce critère Exemple d'application: Pré traitement : trier les tâches selon leurs dates de fin. t i 1 2 3 4 5 6 7 8 9 10 11 d i 1 3 0 5 3 5 6 8 8 2 12 f i 4 5 6 7 9 9 10 11 12 14 16 Solution gloutonne : (t 1, t 4, t 8, t 11 ).

Solution gloutonne Selon le 3 ème choix Algorithme glouton itératif: //trier en ordre croissant le tableau taches selon les dates de fin //Définir la classe Tache public Tache[] OT_Glouton(Tache[] taches){ Tache[] Sol = new Tache[]{ }; int derniere_fin = 0; for(int i = 0 ; i < taches.length ; i++){ if(taches[i].debut >= derniere_fin){ Sol = ajouter(taches[i], Sol); derniere_fin = taches[i].fin; } } } return Sol;

Autre solution exacte avec la PRD Algorithme dynamique récursif: Exercice: Proposez un algorithme dynamique pour le problème d'ordonnancement de tâches.

Conception d'une solution gloutonne pour le problème du Sac à dos (Version fractionnaire)

Description Étant donné un sac de capacité maximale C, un ensemble de N objects ayant chacun un poids w i et une valeur v i. Variante fractionnaire : veut dire que l'on peut prendre l'objet dans sa totalité ou juste une partie de cette objet. Trouver donc la quantité de chaque objet permettant de maximiser le gain total. Choix glouton optimal : Considérer l'objet ayant la plus grande fraction v i / w i.

Instance du problème Version 0/1 sac 1 2 3 sac 3 2 30 kg 20 kg 120 da + 100 da 60 da 10 kg 100 da 20 kg 120 da 30 kg 50 kg Version fractionnaire 3 2 sac 20 kg 80 da + 20 kg 100 da + 1 10 kg 60 da

Solution gloutonne Algorithme glouton itératif: //P est le tableau des poids des objets //V est le tableau contenant les valeurs des objets //P_max est le poids maximal du sac //trier en ordre décroissant les tableaux P et V selon les v i /w i public int SADF_Glouton(int[] P, int[] V, int P_max){ int G_max = 0 ;????? (à compléter) } return G_max;

Autre solution exacte avec la PRD Algorithme dynamique récursif: Exercice: Proposez un algorithme dynamique pour le problème du Sac à dos (version fractionnaire).