Comment convertir un problème de programmation non linéaire à la programmation linéaire

Linéaires des problèmes de programmation tentent de trouver une solution pour une fonction objectif, qui vise à maximiser ou minimiser une certaine valeur dans le domaine d`un ensemble de contraintes. problèmes de programmation linéaire sont bien étudiés en mathématiques, et de nombreux algorithmes existent qui conduisent facilement à leurs solutions. Cependant, les problèmes de programmation non linéaires ont tendance à être extrêmement difficile à résoudre, ce qui a conduit à des procédés pour les convertir en des problèmes de programmation linéaire.

  • Vérifiez que la fonction objectif est concave. Vous pouvez le faire soit par la preuve, en utilisant la définition stricte de concavité ou en traçant la fonction. Si vous choisissez de représenter graphiquement la fonction, analyser le graphique en imaginant tout ensemble de deux points sur cette fonction. Demande toi: "Si je devais tracer une ligne entre ces deux points, serait la fonction elle-même se trouvent au-dessus de cette ligne?" Si la réponse est affirmative, alors la fonction est concave, et vous pouvez convertir le problème de programmation non linéaire à un problème de programmation linéaire.




  • Choisissez les points r de rupture le long de l`axe x. Appelez ces points de rupture d (1), d (2), ..., d (r). Le nombre de points de rupture que vous choisissez est pas tout à fait plus importants, risquent de points de rupture donneront une conversion plus précise, mais fera le problème résultant plus compliqué.

  • Trouvez les valeurs correspondantes de la fonction en ces points de rupture. Appeler c (1), c (2), ..., c (r).

  • Calculer la pente pour chaque pièce de la fonction maintenant brisé. La pente est facilement calculé pour la "kième" pièce à travers s (k) = [c (k) -c (k-1)] / [d (k) -d (k-1)].

  • Réécrire la fonction objective, en utilisant les sommes de pistes au lieu de la fonction d`origine. Si votre fonction objectif initial était une fonction de "X," il sera désormais une fonction d` "x (i)," où chaque "je" représente le "ith" morceau de la fonction. En d`autres termes, vous aurez la fonction objectif: somme [x (i) * s (i)] pour tout i.

  • Réécrire les contraintes. Pour chaque contrainte, remplacer "X" avec des sommes de "x (i)," comme vous l`avez fait pour la fonction objective. En outre, donner "x (i)" la limite supérieure de d (i) -d (i-1). Ceci achève la conversion du problème de programmation non linéaire linéaire.

AUTRES

» » » » Comment convertir un problème de programmation non linéaire à la programmation linéaire