Solver mit R

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
Mily

Solver mit R

Beitrag von Mily »

Hallo

Ich habe folgendes Optimierungsproblem, welches ich mit R lösen möchte:

C1+C2+C3=min.

C1=1.2*P1^2+0.8*P1+50
C2=1.5*P2^2+0.6*P2+20
C3=3.5*P3^2+0.2*P3+5

P1+P2+P3=200
wobei:
P1<90
P2<105
P3<120

Gibt es in R eine Solver-Funktion?
Was ist der einfachsten Weg dieses Problem in R zu lösen?

Vielen Dank für Eure Hilfe!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Solver mit R

Beitrag von bigben »

Hi,

ich habe leider keine Lösung für Dich, möchte Dich aber auf den TaskView zum Thema hinweisen: https://cran.r-project.org/web/views/Optimization.html

Vielleicht hilft das ja etwas.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Solver mit R

Beitrag von bigben »

Zweiter Anlauf, jetzt mit optim():

Code: Alles auswählen

fn <- function(Ps){
    P1 <- Ps[1]
    P2 <- Ps[2]
    P3 <- 200 - P1 -P2
    return(1.2*P1^2 + .8*P1 + 50 +
         1.5*P2^2 + .6*P2 + 20 +
         3.5*P3^2 + .2*P3 + 5)
}

optim( c(50,50), fn, upper = c(90, 105), method = "L-BFGS-B")
Demnach wäre P1 = 90, P2 = 76,96, P3 = 33,04
Kommt das hin?
Rplot01.png

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Mily

Re: Solver mit R

Beitrag von Mily »

Hey Bernhard

Das ist ja sehr ein eleganter Lösungsweg und das Resultat ist korrekt!
Vielen Dank!!

LG Mily
Antworten