############################ ## Aplikace metody sénářů ## ############################ #načtení knihovny lpSolve library(lpSolve) #zápis úlohy f.obj <- c(1, 1, 1, 1, 1, 1, 1) #produkční funkce f.con <- matrix(c(16, 17, 17, 20, 17, 19, 21, #pravá strana podmínek (scénáře) 33, 30, 31, 22, 19, 21, 23, 18, 22, 19, 29, 19, 20, 22, 19, 18, 19, 21, 29, 27, 22, 18, 18, 18, 22, 18, 21, 26), nrow = 5, byrow = T) f.dir <- c("<=", "<=", "<=", "<=", "<=") #definování nerovností u podmínek #pravá strana podmínek, 90% f.rhs09 <- c(8000, 8000, 8000, 8000, 8000) #pravá strana podmínek, porušení podmínky u jednoho scénáře, 80% f.rhs108 <- c(108000, 8000, 8000, 8000, 8000) f.rhs208 <- c(8000, 108000, 8000, 8000, 8000) f.rhs308 <- c(8000, 8000, 108000, 8000, 8000) f.rhs408 <- c(8000, 8000, 8000, 108000, 8000) f.rhs508 <- c(8000, 8000, 8000, 8000, 108000) #pravá strana podmínek, porušení podmínek u dvou scénářů, 60% f.rhs106 <- c(108000, 108000, 8000, 8000, 8000) f.rhs206 <- c(108000, 8000, 108000, 8000, 8000) f.rhs306 <- c(108000, 8000, 8000, 108000, 8000) f.rhs406 <- c(108000, 8000, 8000, 8000, 108000) f.rhs506 <- c(8000, 108000, 108000, 8000, 8000) f.rhs606 <- c(8000, 108000, 8000, 108000, 8000) f.rhs706 <- c(8000, 108000, 8000, 8000, 108000) f.rhs806 <- c(8000, 8000, 108000, 108000, 8000) f.rhs906 <- c(8000, 8000, 108000, 8000, 108000) f.rhs1006 <- c(8000, 8000, 8000, 108000, 108000) # Hledání optima ################################# ################################################## ## 90% ################################################## lp ("max", f.obj, f.con, f.dir, f.rhs09) lp ("max", f.obj, f.con, f.dir, f.rhs09)$solution ################################################## ## 80% ################################################## lp ("max", f.obj, f.con, f.dir, f.rhs108) lp ("max", f.obj, f.con, f.dir, f.rhs108)$solution lp ("max", f.obj, f.con, f.dir, f.rhs208) lp ("max", f.obj, f.con, f.dir, f.rhs208)$solution lp ("max", f.obj, f.con, f.dir, f.rhs308) lp ("max", f.obj, f.con, f.dir, f.rhs308)$solution lp ("max", f.obj, f.con, f.dir, f.rhs408) lp ("max", f.obj, f.con, f.dir, f.rhs408)$solution lp ("max", f.obj, f.con, f.dir, f.rhs508) lp ("max", f.obj, f.con, f.dir, f.rhs508)$solution ################################################## ## 60% ################################################## lp ("max", f.obj, f.con, f.dir, f.rhs106) lp ("max", f.obj, f.con, f.dir, f.rhs106)$solution lp ("max", f.obj, f.con, f.dir, f.rhs206) lp ("max", f.obj, f.con, f.dir, f.rhs206)$solution lp ("max", f.obj, f.con, f.dir, f.rhs306) lp ("max", f.obj, f.con, f.dir, f.rhs306)$solution lp ("max", f.obj, f.con, f.dir, f.rhs406) lp ("max", f.obj, f.con, f.dir, f.rhs406)$solution lp ("max", f.obj, f.con, f.dir, f.rhs506) lp ("max", f.obj, f.con, f.dir, f.rhs506)$solution lp ("max", f.obj, f.con, f.dir, f.rhs606) lp ("max", f.obj, f.con, f.dir, f.rhs606)$solution lp ("max", f.obj, f.con, f.dir, f.rhs706) lp ("max", f.obj, f.con, f.dir, f.rhs706)$solution lp ("max", f.obj, f.con, f.dir, f.rhs806) lp ("max", f.obj, f.con, f.dir, f.rhs806)$solution lp ("max", f.obj, f.con, f.dir, f.rhs906) lp ("max", f.obj, f.con, f.dir, f.rhs906)$solution lp ("max", f.obj, f.con, f.dir, f.rhs1006) lp ("max", f.obj, f.con, f.dir, f.rhs1006)$solution