# Skript zur Durchführung der Optimierung des Beispiels mit Hilfe von R # Zum Vergleich sollte die OpenOffice-Tabelle "Handplanung_LP-Rechnung.ods" # herangezogen werden, Die Daten stehen dort in der Tabelle "Ausgangsdaten" # Benötigte Bibliothek laden library(boot) # Die Berechnung benötigt die Parameter der Berechnung als Vektoren # Zielfunktion definieren # Koeffizienten der Deckungsbeitragfunktion # das entspricht den Feldern C26 bis F26 in der Tabelle Deckungsbeitrag <- c(10500,8900,12000,7000) # Nebenbedingungen <= # in der Tabellenkalkulation C8 bis F8 NB01 <- c(150,0,120,0) # erstes Quartal Anzuchthaus # in der Tabellenkalkulation C9 bis F9 NB02 <- c(0,150,0,150) # zweites Quartal Anzuchthaus # Da im Anzuchthaus in den Quartalen 3 und 4 keine Flächen belegt werden, # und im Produktionshaus im ersten Quartal auch keine, # werden diese Nebenbedingungen hier vereinfachend weggelassen # in der Tabellenkalkulation C15 bis F15 usw. NB03 <- c(1000,0,1000,0) # zweites Quartal Produktionshaus NB04 <- c(1000,1000,1000,1000) # drittes Quartal Produktionshaus NB05 <- c(1000,1000,0,1000) # viertes Quartal Produktionshaus NB06 <- c(20,0,18,0) # erstes Quartal Arbeitsansprüche NB07 <- c(10,20,8,18) # zweites Quartal Arbeitsansprüche NB08 <- c(10,10,55,8) # drittes Quartal Arbeitsansprüche NB09 <- c(60,70,0,55) # viertes Quartal Arbeitsansprüche RS1 <- c(200,200,3000,3000,3000,160,160,160,160) # rechte Seiten der Nebenbedingungen # in der Tabellenkalkulation die Werte der Spalte G bis auf die # Zeilen 10,11 und 14. # Beschränkungen >= bzw. Nichtnegativitätsbedingungen NN01 <- c(1,0,0,0) # Koeffizienten der linken Seite der 1. Nebenbedingung NN02 <- c(0,1,0,0) # Koeffizienten der linken Seite der 2. Nebenbedingung NN03 <- c(0,0,1,0) # Koeffizienten der linken Seite der 3. Nebenbedingung NN04 <- c(0,0,0,1) # Koeffizienten der linken Seite der 4. Nebenbedingung RS2 <- c(0,0,0,0) # rechte Seiten der Nebenbedingung # hier alle Werte größer gleich Null # Für die Optimierung wird der Simplex-Algorithmus verwendet. Das Ergebnis wird # in der Variablen Ergebnis gespeichert. Ergebnis=simplex(a = Deckungsbeitrag, A1 = rbind(NB01,NB02,NB03,NB04,NB05,NB06,NB07,NB08,NB09), b1 = RS1, A2 = rbind(NN01,NN02,NN03,NN04), b2 = RS2, maxi = TRUE) # Ergebnis anzeigen: print(Ergebnis)