ajuda com implementação de Programação Linear com o R - constrOptim

Prezados, Bom dia! Como na lista tem pessoas com conhecimento e experiência, peço algumas orientações... :-) Imagino que o método de "Programação Linear (LP)" deve servir para resolver meu problema de achar os parâmetros de uma dada função objetivo. Sei que no R tem a opção nativa "constrOptim" (poderia ser outra, posso instalar pacotes) Entretanto eu não sei como elaborar minhas condições de contorno em formato matricial que é o modo como o comando constrOptim trabalha (até onde consegui entender) Agradeceria muito se alguém puder me ajudar, respondendo se eu realmente estou certo em pensar que a LP é a ferramenta certa para meu caso e /(ou que) me indique um material básico (introdutório). Abaixo segue um exemplo simplificado do tipos de função que pretendo obter parâmetros. Agradeço antecipadamente pela ajuda e por qualquer dica Cleber Borges ##################### # fobjetivo <- function( x = 0.1 ){ k1 <- 0.007585776 k2 <- 6.16595e-08 k3 <- 2.137962e-13 k4 <- 1e-14 k <- k1 * k2 * k3 * k4 # Determinar as 6 variáveis: a, b, c, d, e, f ################### # 6 Condições de contorno: ( Igualdades ) ################### k1 == a * d / c # 1 k2 == a * e / d # 2 k3 == a * f / e # 3 k4 == a * b # 4 4 * a == b + d + e + f # 5 x == c + d + e + f # 6 return( c( a, b, c, d, e, f ) ) } --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Cleber, Olhando de "soslaio" as suas condições de contorno vê-se que não se trata de um problema de LP. . . Prá complicar suas condições de contorno têm um grau de liberdade (a variável x é livre[?])... 2016-05-14 9:27 GMT-03:00 Cleber N.Borges <klebyn@yahoo.com.br>:
Prezados, Bom dia! Como na lista tem pessoas com conhecimento e experiência, peço algumas orientações... :-)
Imagino que o método de "Programação Linear (LP)" deve servir para resolver meu problema de achar os parâmetros de uma dada função objetivo.
Sei que no R tem a opção nativa "constrOptim" (poderia ser outra, posso instalar pacotes)
Entretanto eu não sei como elaborar minhas condições de contorno em formato matricial que é o modo como o comando constrOptim trabalha (até onde consegui entender)
Agradeceria muito se alguém puder me ajudar, respondendo se eu realmente estou certo em pensar que a LP é a ferramenta certa para meu caso e /(ou que) me indique um material básico (introdutório).
Abaixo segue um exemplo simplificado do tipos de função que pretendo obter parâmetros.
Agradeço antecipadamente pela ajuda e por qualquer dica
Cleber Borges
##################### # fobjetivo <- function( x = 0.1 ){ k1 <- 0.007585776 k2 <- 6.16595e-08 k3 <- 2.137962e-13 k4 <- 1e-14 k <- k1 * k2 * k3 * k4 # Determinar as 6 variáveis: a, b, c, d, e, f ################### # 6 Condições de contorno: ( Igualdades ) ################### k1 == a * d / c # 1 k2 == a * e / d # 2 k3 == a * f / e # 3 k4 == a * b # 4 4 * a == b + d + e + f # 5 x == c + d + e + f # 6 return( c( a, b, c, d, e, f ) ) }
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> Livre de vírus. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Prezado Cesar Boa noite, no caso a variável x também é uma igualdade a uma constante (na função foi passado como valor padrão - default ) seria possível usar otimização não linear? por acaso já viu algo parecido com o problema? Agradeço por sua atenção abraço Cleber Em 24/05/2016 23:05, Cesar Rabak escreveu:
Cleber,
Olhando de "soslaio" as suas condições de contorno vê-se que não se trata de um problema de LP. . .
Prá complicar suas condições de contorno têm um grau de liberdade (a variável x é livre[?])...
2016-05-14 9:27 GMT-03:00 Cleber N.Borges <klebyn@yahoo.com.br <mailto:klebyn@yahoo.com.br>>:
Prezados, Bom dia! Como na lista tem pessoas com conhecimento e experiência, peço algumas orientações... :-)
Imagino que o método de "Programação Linear (LP)" deve servir para resolver meu problema de achar os parâmetros de uma dada função objetivo.
Sei que no R tem a opção nativa "constrOptim" (poderia ser outra, posso instalar pacotes)
Entretanto eu não sei como elaborar minhas condições de contorno em formato matricial que é o modo como o comando constrOptim trabalha (até onde consegui entender)
Agradeceria muito se alguém puder me ajudar, respondendo se eu realmente estou certo em pensar que a LP é a ferramenta certa para meu caso e /(ou que) me indique um material básico (introdutório).
Abaixo segue um exemplo simplificado do tipos de função que pretendo obter parâmetros.
Agradeço antecipadamente pela ajuda e por qualquer dica
Cleber Borges
##################### # fobjetivo <- function( x = 0.1 ){ k1 <- 0.007585776 k2 <- 6.16595e-08 k3 <- 2.137962e-13 k4 <- 1e-14 k <- k1 * k2 * k3 * k4 # Determinar as 6 variáveis: a, b, c, d, e, f ################### # 6 Condições de contorno: ( Igualdades ) ################### k1 == a * d / c # 1 k2 == a * e / d # 2 k3 == a * f / e # 3 k4 == a * b # 4 4 * a == b + d + e + f # 5 x == c + d + e + f # 6 return( c( a, b, c, d, e, f ) )
--- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Caro Cleber, Naturalmente, você pode usar uma otimização não linear, mas não vejo mais como um problema de PL, mas sim como um problema de otimização. SE eu entendi seu exemplo (e se ele não apenas "teórico", mas sim o tipo de problema que você quer resolver) me parece que haveria uma oportunidade de transformá-lo de um não linear (a sua função objetivo é um produto) para um linear se você aplicasse algum tipo de transformação nele (sem pensar muito nas restrições, a aplicação de logaritmo na função objetivo a tornaria "linear" [de produto em soma de variáveis]). O "espinho", me parece, ficaria nas últimas duas restrições. Outra "particularidade" sobre a maneira que você descreve o seu problema é que as "condições de contorno" são igualdades, quando geralmente as restrições em problemas de otimização costumas ser desigualdades ( *inequações*), com as igualdades você tem é um sistema de equações, e deveria analisá-lo como tal. HTH -- Cesar Rabak 2016-05-24 23:18 GMT-03:00 Cleber N.Borges <klebyn@yahoo.com.br>:
Prezado Cesar Boa noite,
no caso a variável x também é uma igualdade a uma constante (na função foi passado como valor padrão - default )
seria possível usar otimização não linear? por acaso já viu algo parecido com o problema?
Agradeço por sua atenção
abraço Cleber
Em 24/05/2016 23:05, Cesar Rabak escreveu:
Cleber,
Olhando de "soslaio" as suas condições de contorno vê-se que não se trata de um problema de LP. . .
Prá complicar suas condições de contorno têm um grau de liberdade (a variável x é livre[?])...
2016-05-14 9:27 GMT-03:00 Cleber N.Borges <klebyn@yahoo.com.br>:
Prezados, Bom dia! Como na lista tem pessoas com conhecimento e experiência, peço algumas orientações... :-)
Imagino que o método de "Programação Linear (LP)" deve servir para resolver meu problema de achar os parâmetros de uma dada função objetivo.
Sei que no R tem a opção nativa "constrOptim" (poderia ser outra, posso instalar pacotes)
Entretanto eu não sei como elaborar minhas condições de contorno em formato matricial que é o modo como o comando constrOptim trabalha (até onde consegui entender)
Agradeceria muito se alguém puder me ajudar, respondendo se eu realmente estou certo em pensar que a LP é a ferramenta certa para meu caso e /(ou que) me indique um material básico (introdutório).
Abaixo segue um exemplo simplificado do tipos de função que pretendo obter parâmetros.
Agradeço antecipadamente pela ajuda e por qualquer dica
Cleber Borges
##################### # fobjetivo <- function( x = 0.1 ){ k1 <- 0.007585776 k2 <- 6.16595e-08 k3 <- 2.137962e-13 k4 <- 1e-14 k <- k1 * k2 * k3 * k4 # Determinar as 6 variáveis: a, b, c, d, e, f ################### # 6 Condições de contorno: ( Igualdades ) ################### k1 == a * d / c # 1 k2 == a * e / d # 2 k3 == a * f / e # 3 k4 == a * b # 4 4 * a == b + d + e + f # 5 x == c + d + e + f # 6 return( c( a, b, c, d, e, f ) )
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> Livre de vírus. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Isso é um problema de Programação Linear (matemática aplicada, não estatística). Veja este (free) livro (em R): http://www.r-bloggers.com/modeling-and-solving-linear-programming-with-r-fre... Elias
2016-05-14 9:27 GMT-03:00 Cleber N.Borges <klebyn@yahoo.com.br <mailto:klebyn@yahoo.com.br>>:
Prezados, Bom dia! Como na lista tem pessoas com conhecimento e experiência, peço algumas orientações... :-)
Imagino que o método de "Programação Linear (LP)" deve servir para resolver meu problema de achar os parâmetros de uma dada função objetivo.
Sei que no R tem a opção nativa "constrOptim" (poderia ser outra, posso instalar pacotes)
Entretanto eu não sei como elaborar minhas condições de contorno em formato matricial que é o modo como o comando constrOptim trabalha (até onde consegui entender)
Agradeceria muito se alguém puder me ajudar, respondendo se eu realmente estou certo em pensar que a LP é a ferramenta certa para meu caso e /(ou que) me indique um material básico (introdutório).
Abaixo segue um exemplo simplificado do tipos de função que pretendo obter parâmetros.
Agradeço antecipadamente pela ajuda e por qualquer dica
Cleber Borges
##################### # fobjetivo <- function( x = 0.1 ){ k1 <- 0.007585776 k2 <- 6.16595e-08 k3 <- 2.137962e-13 k4 <- 1e-14 k <- k1 * k2 * k3 * k4 # Determinar as 6 variáveis: a, b, c, d, e, f ################### # 6 Condições de contorno: ( Igualdades ) ################### k1 == a * d / c # 1 k2 == a * e / d # 2 k3 == a * f / e # 3 k4 == a * b # 4 4 * a == b + d + e + f # 5 x == c + d + e + f # 6 return( c( a, b, c, d, e, f ) )
participantes (3)
-
Cesar Rabak
-
Cleber N.Borges
-
Elias Teixeira Krainski