WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Optimisation du réseau du gaz lift champ nord de Hasii Messaoud

( Télécharger le fichier original )
par Naà¯ma CHERAD & Amel SID
Université des scineces et de la téchnologie Houari Boumedienne - Ingénieur d'état en Recherche Opérationnelle 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Chapitre 5

Approche de resolution

5.1 Introduction

La notion de complexité des problèmes est très importante, car si un problème est identiflé comme facile, on connait un algorithme fini et effi cace pour le résoudre, par contre s'il est identiflé comme étant un problème complexe il sera diffi cile de trouver un algorithme effi cace pour le résoudre, il est alors justiflé de se contenter d'exigences plus limitées: résolution approchée du problème posé, résolution d'un problème voisin plus simple.

L'exécution des méthodes dites exactes (programmation dynamique, séparation et évaluation) pour la résolution des problèmes NP-Diffciles risque de prendre un temps de calcul considérable, notamment si la taille du problème est très grande.

Afin d'éviter ce genre de situation, on se contente souvent d'une solution dite approchée donnée par certaines méthodes appelées "méthodes approchées" ou "heuristiques", et dont la valeur de la fonction objectif correspondante se rapproche de celle de la solution exacte. Vu qu'on est en présence d'un problème non linéaire assez complexe, nous proposons d'utiliser une "heuristique" comme méthode de résolution.

5.2. Heuristiques[9]

5.2 Heuristiques[9]

Definition:

Heuristique (du grec heuriskêin, << trouver >> ) est un terme de didactique qui signife l'art d'inventer, de faire des découvertes. C'est en sociologie, une discipline qui se propose de dégager les règles de la recherche scientifque. En optimisation combinatoire, théorie des graphes et théorie de la complexité, une heuristique est un algorithme qui fournit rapidement (en temps polynomial) une solution réalisable, pas nécessairement optimale, pour un problème d'optimisation NP-diffcile. Une heuristique, ou méthode approximative, est donc le contraire d'un algorithme exact qui trouve une solution optimale pour un problème donné. L'intérêt de l'heuristique étant que pour les problèmes NP-diffciles, la plupart des algorithmes exacts connus sont de complexité exponentielle et donc sans aucun intérêt en pratique. On utilise une heuristique pour obtenir une première solution réalisable dans un processus de résolution exacte. Généralement une heuristique est conçue pour un problème particulié, en s'appuyant sur sa structure propre, mais les approches peuvent contenir des principes plus généraux. On parle de métaheuristique pour les méthodes approximatives générales, pouvant s'appliquer a des différents problèmes. La qualité d'une heuristique peut s'évaluer selon deux critères scientifques :

1) Critère pratique, ou empirique: on implémente l'algorithme approximatif et on évalue la qualité de ses solutions par rapport aux solutions optimales (ou aux meilleures solutions connues). Ceci passe par la mise en place d'un benchmark (ensemble d'instances d'un même problème accessible a tous).

2) Critère mathématique: il faut s'assurer que l'heuristique garantit des performances. La garantie la plus solide est celle des algorithmes approchés, sinon il est intéressant de démontrer une garantie probabiliste, lorsque l'heuristique fournit souvent, mais pas toujours, de bonnes solutions.

5.3 Métaheuristiques[9]

Présentation:

On parle de méta, du grec << au-delà >> (comprendre ici << à un plus haut niveau >> ), heuristique, qui signifie << trouver >> . En effet, ces algorithmes se veulent des méthodes génétiques pouvant optimiser une large gamme de problèmes différents, sans nécessiter de changements profonds dans l'algorithme employé.

Une terminologie légèrement différente considère que les métaheuristiques sont une forme d'algorithmes d'optimisation stochastique, hybridés avec une recherche locale. Le terme <<méta>> est donc pris au sens on les algorithmes peuvent regrouper plusieurs heuristiques. On rencontre cette définition essentiellement dans la littérature concernant les algorithmes évolutionnaires, on elle est utilisée pour désigner une spécialisation. Dans le cadre de la première terminologie, un algorithme évolutionnaire hybridé avec une recherche locale sera plutôt désigné sous le terme d'algorithme mémétique (révolutionnaire) tel que l'algorithme génétique.

Les métaheuristiques sont souvent inspirées par des systèmes naturels, qu'ils soient pris en physique (cas du recuit simulé), en biologie de l'évolution (cas des algorithmes génétiques) ou encore en éthologie (cas des algorithmes de colonies de fourmis ou de l'optimisation par essaims particulaires).

Le but d'une métaheuristique est de résoudre un problème d'optimisation donné: elle cherche un objet mathématique (une permutation, un vecteur, etc.) minimisant (ou maximisant) une fonction objectif, qui décrit la qualité d'une solution au problème.

L'ensemble des solutions possibles forme l'espace de recherche. L'espace de recherche est au minimum borné, mais peut être également limité par un ensemble de contraintes.

Les métaheuristiques manipulent une ou plusieurs solutions, à la recherche de l'optimum, la meilleure solution au problème. Les itérations successives doivent permettre de passer d'une solution de mauvaise qualité à la solution la plus proche de l'optimale. L'algorithme s'arrête après avoir atteint un critère d'arrêt, consistant généralement en l'atteinte du temps d'exécution imparti ou en une précision demandée.

Une solution ou un ensemble de solutions est parfois appelé un état, que la méta-

heuristique fait évoluer via des transitions ou des mouvements. Si une nouvelle solution est construite a partir d'une solution existante, elle est sa voisine. Le choix du voisinage et de la structure de donnée le représentant peut être crucial.

Lorsqu'une solution est associée a une seule valeur, on parle de problème mono-objectif, lorsqu'elle est associée a plusieurs valeurs, de problème multi-objectifs (ou multi-critères). Dans ce dernier cas, on recherche un ensemble de solutions non dominées (le << front de Pareto >> ), solutions parmi lesquelles on ne peut décider si une solution est meilleure qu'une autre, aucune n'étant systématiquement inférieure aux autres sur tous les objectifs.

Dans certains cas, le but recherché est explicitement de trouver un ensemble d'optimums << satisfaisants >> . L'algorithme doit alors trouver l'ensemble des solutions de bonne qualité, sans nécessairement se limiter au seul optimum: on parle de méthodes multimodales.

Pour résumer ces définitions, on peut dire que les propriétés fondamentales des métaheuristiques sont les suivantes:

- Les métaheuristiques sont des stratégies qui permettent de guider la recherche d'une solution optimale

- Le but visé par les métaheuristiques est d'explorer l'espace de recherche effi cacement afin de déterminer des solutions (presque) optimales.

- Les techniques qui constituent des algorithmes de type métaheuristique vont de la simple procédure de recherche locale a des processus d'apprentissage complexes.

- Les métaheuristiques sont en général non-déterministes et ne donnent aucune garantie d'optimalité

- Les métaheuristiques peuvent contenir des mécanismes qui permettent d'éviter d'être bloqué dans des régions de l'espace d recherche.

- Les concepts de base des métaheuristiques peuvent être décrit de manière abstraite, sans faire appel a un problème spécifique.

- Les métaheuristiques peuvent faire appel a des heuristiques qui tiennent compte de la spécificité du problème traité, mais ces heuristiques sont contrôlées par une stratégie de niveau supérieur.

- Les métaheuristiques peuvent faire usage de l'expérience accumulée durant la recherche

de l'optimum, pour mieux guider la suite du processus de recherche.

5.4 Présentation de l'heuristique de résolution

La résolution de ce problème consiste a déterminer les emplacements des manifolds, les puits reliés a chaque manifolds ainsi que les diamètres des pipes utilisés en minimisant la perte de charge, pour notre méthode de résolution nous avons opté pour l'approche suivante en deux phases:

5.4.1 Phase I: Nuées dynamiques[11]

Dans un premier temps, on détermine les emplacements des manifolds ainsi que les puits reliés a chaque manifolds, pour cela nous minimisons la somme des distances des puits aux manifolds et la somme des distances des manifolds a la source.

La position d'un manifolds est appelée 'centre de gravité'pour l'ensemble des puits connectés a ce manifolds (formant une région) et la source.

Pour déterminer les emplacements des manifolds et le choix des puits qui seront connectés aux manifolds installés, on applique une méthode de classification automatique appelée 'Méthode des Nuées Dynamiques'.

*La méthode des nuées dynamiques:

La méthode de classification des nuées dynamiques (Diday et al 1980) repose essentiellement sur la répartition d'une population en catégories (classes) tout en utilisant la notion de noyau associé a chaque classe, il peut s'agir, comme dans notre étude par exemple, de découvrir les principaux regroupements de puits ayant la particularité d'être proches les uns des autres.

L'information apportée par une classification se situe, en effet, au niveau sématique: (il ne s'agit pas d'atteindre un résultat vrai ou faux, probable ou improbable, mais seulement profitable ou non profitable)(Williams et Lance).

Les principaux problèmes de la classification automatique diffèrent suivant le type

d'information recherchée: une hiérarchie, un arbre, une partition, une typologie , des (classes empiétantes). Toutes ces approches nécessitent le choix de mesures de ressemblance.

Principe :

Le principe des algorithmes des nuées dynamiques est simple:

Considérer un ensemble d'individus qui appartient a un ensemble E (par exemple Re ), et chercher la meilleure partition a K classes fixées de cet ensemble selon le critère d'inertie.

Le processus est itératif et à chaque étape la qualité de la partition s'améliore. Le nombre de classe souhaité est déterminé à priori ainsi que le nombre d'éléments centraux désirés, c'est-à-dire le nombre d'éléments au centre du noyau qui seront énumérés. Au départ, un ensemble de points ou noyaux d'une classe peut être tiré au hasard. Autour de ces points se regroupent les éléments les plus proches pour former une partition. La distance calculée par rapport au centre de classe est la distance euclidiènne. A partir de cette partition créée, une autre famille de noyaux est définie, elle regroupe les points les plus proches formant une nouvelle classe et ainsi de suite jusqu'à obtention d'un nombre fini de classes . Si, aprés un certain nombre d'itérations, les classes formées sont stables, les données sont dites "classifiables" et constituent des "formes fortes". Les individus qui changent de classes selon les tirages sont les "individus charnières".

Comment se déroule l'algorithme:

Figure 5.4.1 : Illustration du principe ( K = 2)

Soit un nuage E de N points, on cherche a constituer une partition de E en k classes, chaque classe est représentée par son (noyau). On aura une bonne classification si et seulement si le critére suivant est vérifié: "La somme des distances des individus aux noyaux soit minimale".

*Un algorithme de type "Nuées Dynamiques

Rappelons rapidement le principe de ces méthodes: on suppose que , appartient a un ensemble E (par exemple R avec P le nombre de variables), on définit un ensemble L de noyaux, une "distance" d entre les éléments de E et les noyaux de L. (L'algorithme doit respecter le primcipe d'homogéméité: les dommées a classer et les moyaux doivemt être de même nature). Le critère W de classification est alors le suivant:

W(P, L) = >2K >2 d(x, ak)

k=1 XEPk

On:

P = (P1, ..., PK) et L = (a1, ..., aK) avec aK 2 L

L'algorithme se construit alors de la manière habituelle, il se base sur deux fonctions:

*Construction des classes (fonction d'affectation f) :

On range chaque élément de dans la classe dont le noyau est le plus proche.

*Construction des noyaux (fonction de représentation g) : On associe a chaque classe Pk un nouveau noyau ak minimisant :

>2 d(x,ak)

XEPk

L'algorithme des nuées dynamiques est une succession d'appels a ces deux fonctions de façon itérative, le nombre de groupes K est déterminé soit par une connaissance a priori du phénomène étudié, soit par une autre méthode (classification hiérarchique par exemple) .

Organigramme:

Figure 5.4.2 : Représentation structurée de l'algorithme des Nuées Dynamiques

*Application de l'algorithme a notre problême:

Algorithme :

1-Diviser les puits en k régions de facon aléatoire ( soient R1, R2, ..., Rk). Avec k= [N/5] on N est le nombre de puits de la station.

2-Déterminer les emplacements des manifolds (M1, ..., Mk).

Pour une région R3 donnée, choisir l'emplacement Mj qui minimise:

/ >

f(X, Y ) = X2 + Y 2 +

p

(Xi - X)2 + (Y - Y )2

PiERj

On (X,Y ) sont les coordonnées du manifolds Mj

Pi E R3: signifie que le puits (i) coordonnées (Xi,Yi) E R3

3-Répartir les puits en utilisant une fonction de décision: Pi est dans la région R3 si et seulement si d(Pi, M3) est minimale.

d(Pi, M3) est la distance euclidienne entre le puits (i) et le manifold Mj 4-Si le test d'arrêt est vériflé aller a (5) sinon aller a (2).

5-S'il existe une région ayant un nombre =6 5 alors réaffecter les puits en utilisant l'organigramme de la page suivante, et recalculer les nouveaux centres de gravité comme en (2).

REMARQUE:

1-L'étape (5) est due a la contrainte qui exige que le nombre de puits par région soit égal a 5.

2-Le test d'arrêt est le suivant: s'il n'y a pas d'amélioration au cours de 2 itérations succussives l'algorithme est arrêté.

3-d(Pi, M3) est la longueur du pipe reliant Pi a Mj.

qd(Pi, Mj) = (X - X' j)2 + (Yi- Y j ')2.


· m(R) est le nombre de puits dans la région R.

Organigramme:

Figure 5.4.3 : Organigramme de la procédure réaffecter

5.4.2 Phase II: Logiciel lingo1O.O[1O]

Aprés avoir positionné les manifolds cette phase consiste a déterminer les diamètres pour chaque pipe utilisé, en appliquant directement le loigiciel lingo10 en utilisant le résultat dégagé de la phase I. On aura donc a résoudre le problème (P') suivant:

(P')

8

<>>>>>>>>>>>>>>>>>>>> >

>>>>>>>>>>>>>>>>>>>>>:

Ci bj

MIN Z = PN i + PM

i=1 DP 5 j=1 DM5 j

DM2 j ~ PN i=1 Rij ~ DP 2 j = 1,...,M

i

DP, 2 {2",3"} i = 1,...,N

DPi > 0

DM3 2 {6", 8", 10"}

on

· Ci = (Qi~P

T )2 * Gg * f * z * 7.62 * 105 * LPi

· b3 = (PN i=1 Rij Qi)2 * P 2

T 2 * Gg * f * z * 7.62 * 105 * LMj

Remarque:

Le problème (P') est tiré du problème (P), tels que les contraintes liées aux nombre de puits connectés a un manifolds, les contraintes liées a la connexion des puits a un manifolds et les contraintes liées aux longueurs des conduites circulaires, sont respectées.

* Application avec le logiciel Lingo10:

Il existe de nos jours, une multitude de solveurs de résolution des programmes non linéaires. Ils sont généralement fournis sous forme de programmes sources. En effet les logiciels tels que LINGO, CPLEX ou MAPLE sont des programmes d'optimisation conçu pour résoudre les modèles d'optimisation linéaires, non linéaires, en nombres en-tiers....

Parmi ces logiciels nous allons utiliser << LINGO >> pour résoudre notre problème, et ceci pour plusieurs raisons:

D'une part LINGO admet un code de programmation non linéaire qui permet de traiter de milliers de variables et de contraintes en un temps rapide, donc utilisable même si la taille du problème est grande, d'autre part LINGO est un outil plus simple a utiliser par rapport a d'autres logiciels et dispose de plusieurs fonctionnalités, notamment:

- Un nouveau solveur pour confirmer que la solution trouvée est optimale.

- La capacité a résoudre les problèmes plus rapidement.

- La reconnaissance et l'identification des programmes quadratiques (QP).

- Un nouveau solveur pour améliorer les performances dans les solutions des différents types de problèmes.

- La capacité a transformer les programmes non-linéaire en séries de programme linéaire.

- La capacité d'importer ou d'exporter des informations vers les bases de données en se servant d'une bibliothèque de lien dynamique (DLL), donc il permet de faire des connexions avec d'autre applications.

Un modèle d'optimisation se compose de trois parties:

* Fonction Objectif: il s'agit de formule unique qui décrit exactement ce que le modèle devrait optimiser.

* Contraintes: ce sont des formules qui définissent les limites sur les valeurs des variables.

* Les commentaires dans le modèle sont engagés avec un point d'exclamation (!) et apparaissent en vert.

Méthodes de résolution utilisée par Lingo:

- Dual simplexe.

- Branch-and-bound.

- Programmes non-linéaire.

- Programme quadratique.

- Programme multicritère.

5.5. Conclusion

5.5 Conclusion

Ce chapitre a été consacré aux méthodes de résolution adoptés pour résoudre notre problème, une défnition complète des différentes méthodes utilisées a été donné tout au long de ce chapitre, maintenant nous passons a l'implémentation de cette dernière, le dernier chapitre illustre cette implémentation et donne une description minutieuse du logiciel développé ainsi que les résultats obtenus.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"La première panacée d'une nation mal gouvernée est l'inflation monétaire, la seconde, c'est la guerre. Tous deux apportent une prospérité temporaire, tous deux apportent une ruine permanente. Mais tous deux sont le refuge des opportunistes politiques et économiques"   Hemingway