Je veux faire une optimisation sous le logiciel R : voila mon modèle d'optimisation :

min maFonction(nk) avc k = 1:N

sous contraintes:

1) xk=somme(nj) avc k=k+1 : N

2) X=somme(nk) avc k=1:N

3) n1,.....,nN>=0

==> Mon Objectif est de déterminer les nk qui minimisent maFonction

J'ai essayé la fonction constrOptim()

mais je trouve des difficultés à introduire la 1er contrainte ?!

Je me demande si j'ai mal choisi la commande ? Avez vous d'autres idées?

Voila un exemple simple sous R qui explique l'utilisation de la commande constrOptim :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
### exemple
# fr notre fonction à minimiser
fr <- function(x) {
x1 <- x[1]
x2 <- x[2]
100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
# 1er contrainte (x<=0.9) ,on va l'ecrire sous cette forme : (-x =>-0.9)
# la 2eme contrainte (y-x > 0.1) , on la garde selon cette ecriture
#optimisation
initial<- c(-1.2,0.9)
constrOptim(initial, fr,NULL, ui=rbind(c(-1,0),c(-1,1)), ci=c(-0.9,0.1))
#avec initial :est l'initialisation
#fr : notre fonction à minimiser
#NULL : on l'ecrit si on ne veut pas calculer le gradient
# ui : c'est la matrice des coff des paramètres
# [,1] [,2]
# [1,] -1 0
# [2,] -1 1
# ci: vecteur contrain
# [1] -0.9 0.1
# le commande constrOptim exige que la valeur initial qu'on choisi vérifie (ui%*%initial => ci)
Merci Bien Pour Votre Aide