标签: solver

Java的QP求解器

我正在寻找一个易于使用的基于Java的二次规划(QP)求解器.

谷歌搜索我遇到了ojAlgo(http://ojalgo.org).

但是,我想知道是否还有其他/更好的选择.

java numerical mathematical-optimization quadratic solver

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

游戏求解算法(Buttonia,Lights-out变体)

我正在尝试为游戏算法创建一个可解决性函数.基本上是一个函数,如果可以解决,它会为给定的游戏返回true或false.

该游戏是Buttonia.com(尚未实现该算法),这是一种熄灯游戏.基本上你有一个按钮网格,按下时,每个按钮都会改变它的某些邻居的状态.目前我生成随机游戏配置,然后尽可能应用启发式.其余的是由强力搜索决定的.

到目前为止,我的进步是建立一个方程系统来模拟游戏.由于每个按钮需要改变状态奇数次才能以向下状态结束,因此它的等式是这样的:

button_A = 1 - (button_1 + button_2 + ... + button_X)%2

其中button_1到button_X是按钮状态,对button_A有效.如果某些按钮不依赖于其他按钮,则可以立即解决这些按钮.其余的,我尝试一个配置,直到我遇到冲突,然后回溯.

目前,该算法适用于较小的游戏配置.我已经从3x3游戏测试了它,尺寸为10x10.其中6x6接近实际游戏的上限.

这些方程式大大减少了蛮力的搜索空间,使其变得实用.可能存在解决方程组的纯粹数学方法.


ascii中的3x3游戏示例(来自buttonia.com/?game=2964):

||#
-o-
+#|

Legend:
o = affect only self
- = affect left and right neighbors
| = affect above and below neighbors
+ = affect left, right, above and below neighbors
# = affect all 8 surrounding neighbors
Run Code Online (Sandbox Code Playgroud)

解决方案,按下这些:(0,0),(2,0),(1,2),(0,1),(1,1),(2,1)

这个游戏的等式:

Button_0_0 = 1 - (0) % 2
Button_1_0 = 1 - (Button_2_0) % 2
Button_2_0 = 1 - (0) …
Run Code Online (Sandbox Code Playgroud)

algorithm math xor solver

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

Matlab ode45.调用它时如何更改其中的参数?

我是Matlab的新手.我希望你能帮助我.我必须使用ODE45函数来解决一个ODE系统.这是描述我的等同的功能.

function dNdt = rateEquations(t, y)
  %populations of corresponding state
  Ng = y(1);
  Ns = y(2);
  Nt =  y(3);

  %All constants used are dropped for the sake of easy reading.
Run Code Online (Sandbox Code Playgroud)

注意参数F.

  %rate equations
  dNs = s0 * Ng * F - Ns/ t_S1;
  dNt = Ns / t_ISC - Nt / t_T1;
  dNg = -dNt - dNs;

  dNdt = [dNg; dNs; dNt];

end
Run Code Online (Sandbox Code Playgroud)

然后,在我的脚本.m文件中,我在'for循环'中调用ode45函数.在每次迭代期间,我必须更改参数F并将其传递给我的'rateEquations' - 函数.但我不知道如何实现它.

for T = Tmin: dt : Tmax
  %initial conditions
  initialConditions = [N0 0 0]; …
Run Code Online (Sandbox Code Playgroud)

matlab function handle solver ode

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

什么好的工具来解决linux上的整数程序?

有什么好的工具可以解决Linux上的整数程序吗?

我有一个小问题,我想计算以节省时间:D.它是一种子集和问题.我有一个大约20个整数值的列表,我想计算满足一定最小值的最小和的子集.你可以用整数程序来表达这个......就像这样

\sum_{i=1}^{n} w*x -> min
Run Code Online (Sandbox Code Playgroud)

\sum_{i=1}^{n} w*x >= c with x \in \{0,1\}
Run Code Online (Sandbox Code Playgroud)

或者还有其他好办法吗?

linux linear-programming solver

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

寻找一个好的Java ODE求解器

我正在开发一个项目,使用ODE求解器(ode45)在MATLAB中为算法创建GUI.所以我必须将MATLAB代码翻译成Java.问题是ode45求解器.Java似乎没有准备好使用的解算器,而ODE并不是我的专长.我是不是看起来不错,或者是否真的没有实现Java的ODE求解器?

谢谢

java matlab solver ode

6
推荐指数
2
解决办法
2280
查看次数

打破项目创建方程链的链(可能带递归)

我一直在干扰C#中的一个想法来创建一个软件(用于伪个人使用),但遇到了实现问题.嗯......也许他们是我不知道的设计问题,但我只是简直无法弄清楚.

想法,期望和一般伪算法

考虑我们有以下"数据库":

Foo + Bar = Foobar
Baz + Qux = Bazqux
Foobar + Bazqux = Foobarbazqux
Run Code Online (Sandbox Code Playgroud)

这些是用于创建所述项目的配方.使用一个和一个,我们创建一个结果,可以进一步成为另一个食谱成分.FooBarFoobar

现在想我们需要找出该项目的完整配方Foobarbazqux.对于人类的思想和智慧,它相对容易:

We need Foobarbazqux
Foobarbazqux = Foobar + Bazqux
    Foobar = Foo + Bar
    Bazqux = Baz + Qux

Foobarbazqux = Foo + Bar + Baz + Qux
Run Code Online (Sandbox Code Playgroud)

当然,如果我们拥有所有成分,我们可以"运行" 配方,并按照上面几段的顺序创建项目并执行每个配方.(那样:我们首先创建Foobar,然后Bazqux将两者结合起来得到最终结果.)

但在现实的时候,数据库是很多大.我想这就是计算机应该进入的地方.通过一个可用的软件,机器可以轻松找到所有的成分和执行(制作)步骤并将其提供给用户,因此我们不需要通过所有条目来读取手.

实施(...尝试) …

c# algorithm recursion struct solver

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

如何使用R来解决/挑选最适合工作的人 - 有约束力?

我是R的新手,我正在尝试为Excel中的Solver编写一个脚本.在下面的数据中,我列出了工作类型为AE的工人.每个工人都有工资和生产率.我想要做的是找到10个工人的最大产量,累计工资<100,000.限制是我需要总共10个工人,我需要2个来自工作类型AD,1个来自E,以及1个任何类型.

我用optim,IpSolve等搜索并搜索了一种方法,但是由于我的知识有限,我没有太多运气.

谢谢您的帮助!

Name    Pos Salary  Producton
Joe     A   12001   13.1
Jim     A   17753   23.5
Jill    A   11447   14.8
Brian   A   11447   14.8
Sally   B   2171    1.2
Nancy   B   4537    2.1
Francis B   2840    1.8
Ace     B   2840    1.8
Bill    C   3818    1.6
Ted     C   11447   0.1
Henry   C   2000    1.1
Kyle    C   3818    1.6
Sam     D   11447   0.1
Trevor  D   2000    1.1
John    D   4317    11.7
Jerome  D   2000    1.1
Rebecca E   3818    1.6
Sunny   E   11447   0.1
Britt …
Run Code Online (Sandbox Code Playgroud)

r mathematical-optimization solver maximize integer-programming

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

如何(有效地)生成不相交的集合,同时只使用一对元素?

我想要做的是将一组(n)项分成相同大小的组(大小为m的组,为简单起见,假设没有剩余,即n可被m整除).多次这样做,我想确保两个项目没有一对项目在同一组中.

为了使这一点更具体,为了构建六个项目中的两个项目的组A..F,曾经可以以不同的方式对该组进行五次分区:

  • (A, B),(C, D),(E, F)
  • (A, C),(B, E),(D, F)
  • (A, D),(B, F),(C, E)
  • (A, E),(B, D),(C, F)
  • (A, F),(B, C),(D, E)

同一组项目只能分为三组,不重叠对:

  • (A, B, C), (D, E, F)

(正如@DavidHammen在下面指出的那样,在这个例子中有不同的方法来制作分区.但是,一旦进行了一次分区,就不会有另一个第二次分割,它将所有项目对分开.这很好 - 我的应用程序没有不需要生成所有可能的全局分区方法,一个满足约束条件的解决方案就可以了


我现在的问题是:有没有办法有效地做到这一点?是否有技巧加速这些集的生成?

所以,到目前为止,我一直将此视为一个确切的覆盖问题,并使用回溯算法(DLX的变体)来解决它.这对于对很有效,但随着组变大,算法必须考虑爆炸的可能性的数量,并且处理变得非常难以处理.

我正在寻找的是加快速度的技巧.任何想法都非常受欢迎,特别是(但不限于): …

algorithm solver combinatorics constraint-programming disjoint-sets

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

Excel解算器密码:它是什么以及在哪里可以获得/购买?

我一直在探索VBA和excel,我一直在为Excel Solver编写一些基本代码.无论Excel解算器看起来多么强大,它对我的​​优化问题来说都不够快(一次迭代需要20分钟).

我一直在寻找并与更有经验的程序员交谈,并且一致认为VBA并不快,C++,C#,尤其是CUDA语言要快得多.

查看Excel中的VBA模块,Solver模块被密码锁定.我一直在寻找那个密码,它可以在几周内获得,但无济于事.

问题:可以获取此密码吗?如果是这样,怎么样?它可以从微软购买吗?多少?

目标:使Solver VBA能够将其转换为C#或C++,以使优化过程更快.

PS我看过微软解决方案基金会,但没有帮助.

谢谢.

passwords excel vba solver

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

在Excel中解决类似于Goal Seeker的R函数

我看到了一个类似的问题,但我不知道,该怎么做.也许你可以帮忙.

在R中回复求解函数或目标

ES <- function(y, z){-y * (1-pnorm(y/z)) + z * dnorm(y/z)} # = x
ES(906.19, 707.1) #33.47587
Run Code Online (Sandbox Code Playgroud)

我想要的是为y求解,所以z和x(33.4)是已知的.我已经看到了solve和optim函数,但是我无法获得预期的结果.

谢谢!

r solver

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