标签: lpsolve

R用于解决线性编程问题

我正在寻找一个很好的R包来解决线性编程模型.我对默认情况非常满意lpSolve::lp,但没有办法获得影子并降低价格.我需要这些以及完整性约束.

样品型号:

A = rbind(
    c(0.5, 0.2, 0.2),
    c( -1,   1,   0),
    c(  0,   1,  -1),
    c( -1,  -1,  -1),
    c( -1,   0,   0),
    c(  0,  -1,   0),
    c(  0,   0,  -1)
)
b = c(5, 0, 0, -13, 0, 0, 0)
c_ = c(8.4, 6, 9.2)
(signs = c('=', rep('<=', 6)))

res = lpSolve::lp('min', c_, A, signs, b,  all.int = TRUE)

# Objective function
res
# Variables
res$solution

# Shadow prices???
# Reduced prices???
Run Code Online (Sandbox Code Playgroud)

r lpsolve

6
推荐指数
1
解决办法
8879
查看次数

java.lang.UnsatisfiedLinkError:找不到依赖库

我是lp解决的新手.我试图运行以下代码并收到以下错误:

    package package1;

/**
 * Created by ANJANEY on 6/13/2014.
 */

import lpsolve.*;

public class Demo {

    public static void main(String[] args) {
        try {
            // Create a problem with 4 variables and 0 constraints
            LpSolve solver = LpSolve.makeLp(0, 4);

            // add constraints
            solver.strAddConstraint("3 2 2 1", LpSolve.LE, 4);
            solver.strAddConstraint("0 4 3 1", LpSolve.GE, 3);

            // set objective function
            solver.strSetObjFn("2 3 -2 3");

            // solve the problem
            solver.solve();

            // print solution
            System.out.println("Value of objective function: " + solver.getObjective());
            double[] var …
Run Code Online (Sandbox Code Playgroud)

java lpsolve

6
推荐指数
1
解决办法
1万
查看次数

Windows \ System32 \ lpsolve55j.dll:找不到依赖库

当我尝试使用LPSolve for Java(简化版本,http://code.google.com/p/lpsolve-java/source/checkout)时,出现以下错误:

java.lang.UnsatisfiedLinkError: C:\Windows\System32\lpsolve55j.dll: Can't find dependent libraries
     at java.lang.ClassLoader$NativeLibrary.load(Native Method)
     at java.lang.ClassLoader.loadLibrary0(Unknown Source)
     at java.lang.ClassLoader.loadLibrary(Unknown Source)
     at java.lang.Runtime.loadLibrary0(Unknown Source)
     at java.lang.System.loadLibrary(Unknown Source)
     at lpsolve.LpSolve.<clinit>(LpSolve.java:274)
Run Code Online (Sandbox Code Playgroud)

一世

  • 将lpsolve55j.dll放入Windows \ System32并
  • 将目录C:\ Program Files \ LPSolve IDE添加到PATH环境变量中。

在Eclipse(测试用例)以及执行“ MVN测试”期间均会发生错误。

这些都没有帮助。

如何解决此错误?

java maven lpsolve

5
推荐指数
1
解决办法
3679
查看次数

如何增加lpsolve R优化解决方案在hadoop集群上运行?

我正在使用R lpsolve包来优化我的运输模型.我的代码运行正常,但由于我有大量的节点和路径,因此需要花费大量时间.我计划在hadoop集群上运行我的代码.

请引导我关于我需要对代码进行的更改.我认为在hadoop集群上运行优化可能是不可能的,因为我们可能最终得到局部最小值而不是全局最小值.

我在互联网上搜索"lpsolve hadoop"之类的术语,但没有得到任何有用的信息.

请指导我看一下我应该看的材料或例子.=====================================更新1 =========== ===========================我遇到的原始问题就在这里.

我进一步简化了问题,我正在解决的当前问题如下.

我附加了使用excel构建的R代码和输入数据文件.在实际场景中,输入数据文件将使用SQL生成,并且长度将超过30,000行.

在此输入图像描述

我的输入excel文件:

startlink   endlink link_dsc    lnk_type    cons_type   cost    equality_const  fpc_const   max_const
"source","-","-","0"    "vmi1","MM1","VMI","1"  source_to_VMI   supply  equality supply 0   100 null    null
"vmi1","MM1","VMI","0"  "cust1","MM1","SHIP_CUST_1d_AIR","1"    vmi_to_shipcust flow    null    5   null    null    null
"vmi1","MM1","VMI","1"  "cust1","MM1","SHIP_CUST_1d_AIR","2"    vmi_to_shipcust flow    null    5   null    null    null
"vmi1","MM1","VMI","2"  "cust1","MM1","SHIP_CUST_1d_AIR","3"    vmi_to_shipcust flow    null    5   null    null    null
"vmi1","MM1","VMI","3"  "cust1","MM1","SHIP_CUST_1d_AIR","4"    vmi_to_shipcust flow    null    5   null    null    null
"vmi1","MM1","VMI","4"  "cust1","MM1","SHIP_CUST_1d_AIR","5"    vmi_to_shipcust flow    null    5   null    null    null
"vmi1","MM1","VMI","5"  "cust1","MM1","SHIP_CUST_1d_AIR","6"    vmi_to_shipcust …
Run Code Online (Sandbox Code Playgroud)

hadoop r mathematical-optimization lpsolve

5
推荐指数
1
解决办法
912
查看次数

如何将lp对象写入lp文件?

我一直在使用lpSolve和lpSolveAPI.我构建我的约束矩阵,目标函数等,并提供给lp函数,这很好用.我想使用write.lp将问题保存为lp文件,但我遇到了麻烦.我不断收到错误,告诉我该对象不是lp对象.有任何想法吗?

> x1 = lp(direction = "min", cost, A , ">=",r,,3:13, , , ,FALSE)
> class(x1)
[1] "lp"
>write.lp(x1, filename, type = "lp",use.names = c(TRUE, TRUE))

Error in write.lp(x1, filename, type = "lp", use.names = c(TRUE, TRUE)) : 
the lp argument does not appear to be a valid linear program record
Run Code Online (Sandbox Code Playgroud)

r mathematical-optimization lpsolve

5
推荐指数
1
解决办法
827
查看次数

使用现有的线性编程工具查找所有替代基本解决方案

我必须找到一些微小的线性编程问题的所有基本解决方案。

这是一个示例(采用lp_solve格式):

max: x1 + x2;
x1 + x2 <= 1;
x1 <= 0.8;
x2 <= 0.8;
Run Code Online (Sandbox Code Playgroud)

所有2种基本解决方案:

  • x1 = 0.2,x2 = 0.8
  • x1 = 0.8,x2 = 0.2

当然,有一种寻找替代解决方案的方法,但是我真的更喜欢使用现有的库,而不是精心设计自己的单纯形代码。

我使用Python作为编程语言,希望lp_solveGLPK的C API中有某种方法可以做到这一点。

谢谢。

linear-programming lpsolve glpk

5
推荐指数
1
解决办法
869
查看次数

R lpsolve查看完整LP的所有可能解决方案

有没有办法让lpSolve返回多个解决方案?在下面的情况下,我想要(5,0)和(0,5)两者.

如果lpSolve无法做到这一点,那么是否有任何其他R包将返回整体线性优化程序的所有可能解决方案?

 library("lpSolve")
  A=matrix (c(1, 1), nrow=1, byrow=TRUE)

  b=(5)
  signs='=='
  c_=c(1,1)
  res = lpSolve::lp('max', c_, A, signs, b,  all.int = TRUE)
  res$solution
Run Code Online (Sandbox Code Playgroud)

================================================== =====================

我还想知道为什么lpSolve包提供了所有可能的解决方案,如果所有决策变量都是二进制的.当所有变量都是整数时,为什么不能重复相同的...

optimization r linear-programming lpsolve

5
推荐指数
1
解决办法
1084
查看次数

lpSolve in R with Character和Column Sum Contraints

我有一个房间列表,房间的最大平方英尺,程序,程序的最大平方英尺,以及房间与预期程序使用的匹配程度(匹配#)的值.在帮助下,我已经能够最大化匹配#和平方英尺用于每个房间一个程序.但是,我想进一步采用这种分析,只要多次匹配仍然符合平方英尺要求,允许同一房间内的多个程序或同一程序的倍数(如果它具有最高匹配#).此外,我想告诉lpSolve整体而言,我只想在整个建筑物中使用"x"数量的办公室,"y"数量的工作室等.到目前为止,这是我的数据和代码:

program.size <- c(120,320,300,800,500,1000,500,1000,1500,400,1500,2000)
room.size <- c(1414,682,1484,2938,1985,1493,427,1958,708,581,1485,652,727,2556,1634,187,2174,205,1070,2165,1680,1449,1441,2289,986,298,590,2925)
(obj.vals <- matrix(c(3,4,2,8,3,7,4,8,6,4,7,7,
                  3,4,2,8,3,7,4,8,6,4,7,7,
                  4,5,3,7,4,6,5,7,5,3,6,6,
                  2,3,1,7,2,6,3,7,7,5,6,6,
                  4,5,3,7,4,6,5,7,5,3,6,6,
                  3,6,4,8,5,7,4,8,7,7,7,7,
                  3,4,2,8,3,7,4,8,6,4,7,7,
                  4,5,3,7,4,6,5,7,5,3,6,6,
                  6,7,5,7,6,6,7,7,5,3,6,6,
                  6,7,5,7,6,6,7,7,5,3,6,6,
                  5,6,6,6,5,7,8,6,4,2,5,5,
                  6,7,5,7,6,6,7,7,5,3,6,6,
                  6,7,5,7,6,6,7,7,5,3,6,6,
                  3,4,4,8,3,9,6,8,6,4,7,7,
                  3,4,2,6,3,5,4,6,6,4,5,5,
                  4,5,3,5,4,4,5,5,5,3,4,4,
                  5,6,4,8,5,7,6,8,6,4,7,7,
                  5,6,4,8,5,7,6,8,6,4,7,7,
                  4,5,5,7,4,8,7,7,5,3,6,6,
                  5,6,4,8,5,7,6,8,6,4,7,7,
                  3,4,2,6,3,5,4,6,6,4,5,5,
                  5,6,4,8,5,7,6,8,6,4,7,7,
                  5,6,4,8,5,7,6,8,6,4,7,7,
                  5,4,4,6,5,5,6,6,6,6,7,5,
                  6,5,5,5,6,4,5,5,5,7,6,4,
                  4,5,3,7,4,6,5,7,7,5,6,6,
                  6,5,5,5,6,4,5,5,5,7,6,4,
                  3,4,4,6,3,7,6,6,6,4,5,5), nrow=12))
rownames(obj.vals) <- c("Enclosed Offices", "Open Office", "Reception / Greeter", "Studio / Classroom",
                    "Conference / Meeting Room", "Gallery", "Public / Lobby / Waiting", 
                    "Collaborative Space", "Mechanical / Support", "Storage / Archives", 
                    "Fabrication", "Performance")
(obj.adj <- obj.vals * outer(program.size, room.size, "<="))


nr <- nrow(obj.adj) …
Run Code Online (Sandbox Code Playgroud)

optimization r constraints linear-programming lpsolve

5
推荐指数
1
解决办法
1372
查看次数

如何使用LpSolve在R中设置线性编程优化?

例如,我有这个示例数据:

d=data.frame(x=c(1,1,1,2,2,3,4,4),y=c(5,6,7,8,7,5,6,5),w=c(1,2,3,4,5,6,7,8))
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

  x y w
1 1 5 1
2 1 6 2
3 1 7 3
4 2 8 4
5 2 7 5
6 3 5 6
7 4 6 7
8 4 5 8
Run Code Online (Sandbox Code Playgroud)

xy从代表指数dataxdatay.w代表datax[x]与之比较的分数datay[y].我想最大化总得分(或w)d,其中每个值x最多匹配一个值y,反之亦然.

结果应如下所示:

  x y w
1 2 7 5
2 3 5 6
3 4 6 7
Run Code Online (Sandbox Code Playgroud)

当所有的总和w值最大化,并且每个x …

optimization r linear-programming lpsolve

5
推荐指数
1
解决办法
5412
查看次数

使用lpSolve在整数编程中实现其他约束变量

我正在努力实现lpSolve解决方案,以优化假设的日常幻想棒球问题。我在应用最后一个约束时遇到了麻烦:

  • 位置-正好3个外野手(OF)2个投手(P)和其他所有东西
  • 费用-费用少于200
  • 团队-任何一支团队的最大人数为6
  • 团队-名册上的最小团队数为3 **

举例来说,假设您有一个包含1000个球员的数据框,其中包含积分,成本,位置和球队,并且您正在尝试最大化平均积分:

library(tidyverse)
library(lpSolve)
set.seed(123)
df <- data_frame(avg_points = sample(5:45,1000, replace = T),
                 cost = sample(3:45,1000, replace = T),
                 position = sample(c("P","C","1B","2B","3B","SS","OF"),1000, replace = T),
                 team = sample(LETTERS,1000, replace = T)) %>% mutate(id = row_number())
head(df)

# A tibble: 6 x 5
#  avg_points  cost position team     id
#       <int> <int> <chr>    <chr> <int>
#1         17    13 2B       Y         1
#2         39    45 1B       P         2
#3         29    33 1B       C         3
#4         38    31 …
Run Code Online (Sandbox Code Playgroud)

r lpsolve

5
推荐指数
1
解决办法
220
查看次数