问题标签 [mystic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
137 浏览

python - 使用 Mystic 优化编译硬约束

我正在编写一个受约束的整数优化,并且在制定约束时遇到了麻烦。以下是我的优化总结:(Schedule 是我自己的函数,它返回单个 int 值)

目标:MIN (1500 * x1) + (625 * x2) +(100 * x3)

约束:

  1. 时间表(x1,x2,x3) >=480

  2. x2 > x1

  3. x2 > x3

界限: (5<= x1 <=50), (5<= x2 <=100), (1<= x3 <=20)

将硬约束分组以放入 diffev2 的最佳方法是什么,因为 constraint1 使用函数,因此不能以符号方式编写?

下面是一个粗略的尝试。我遇到的另一个小问题是违反了界限(值为负数),所以如果我的界限有任何危险信号,请说出来。Mystic 也很新,所以不用担心用简单的术语来解释事情。

0 投票
1 回答
59 浏览

python - 如何在 Mystic 中使用线性符号不等式创建约束?

我正在尝试使用 Mystic 来最小化具有线性约束的非线性函数。

作为一个简单的例子,我有以下内容:

尝试运行代码时,我执行以下操作:

当我运行上述内容时,错误发生在

或者,如果我将其注释掉,

唯一明显的区别是调用堆栈的大小。

我得到的错误是

这是 Mystic 尝试从字符串编译 Python 代码并遇到语法错误的结果,但我不知道如何解决此问题。

0 投票
3 回答
287 浏览

python - 在质量和成本限制的情况下最大化运输利润的算法

标题不是很有帮助,因为我不确定我要准确地说什么。我确信必须存在一个算法,但我不记得了。注意:不是作业问题,我很久以前就完成了学业。

所以问题来了:

  • 我们正在做运输和贸易工作,试图最大化利润
  • 我们有一份可以用卡车运送的物品清单。每个项目都有:
    • 买入价(来源)
    • 售价(在目的地)
    • 单位质量
    • 可购买数量的上限
  • 我们的卡车可以承载的质量有限
  • 我们对允许“投资”(在源头上的项目上花费)的数量有上限。
  • 我们希望最大化我们工作的利润(在源头购买、运输、在目的地出售)。

如果只有一个限制(总质量或总投资),那会很容易,但是当有两个限制时,我不确定如何处理。

计算利润的公式是:

所以我试图选择应该购买哪些商品以及每件商品的数量,以实现利润最大化。

是否有任何现有的已知算法可以解决这个问题?可能是某种数学优化问题?我正在使用 Python,所以我认为mystic包可能是合适的,但我不确定如何配置它。

0 投票
1 回答
46 浏览

python - Mystic 中非线性不等式约束的惩罚函数在边界之外进行评估

我想使用神秘求解器来解决以下具有非线性约束的非线性优化问题。这里的代码:

我用二次惩罚对约束进行建模。约束要求域是正正交。

如果我使用合理的起始值,求解器会找到最佳解决方案。但是,另一个起始值(或另一个求解器,如 Powell 求解器)会在步骤搜索中触发对有效域之外的约束函数的调用。

如何最好地将惩罚中的约束函数限制在我提供给求解器的范围内?求解器本身不应该检查吗?或者我是否也需要在约束功能中自己处理?

可视化解决方案:

在此处输入图像描述

0 投票
1 回答
30 浏览

python - 如何在神秘中正确生成数组方程的约束?

我有一个优化问题,我想用约束sum(p)dx == 1sum(px)dx == 0.2最小化数量-sum(p log(p))dx (entropy) ,其中px是数组,dx是标量。我尝试以这种方式使用神秘来实现这一点:

但它显然不能很好地工作,因为它返回:

因此违反了约束。我应该如何着手正确解决我的问题?

0 投票
1 回答
28 浏览

python - 在神秘主义中最小化 f(x) 时用 g(x) 约束 f(x)?

嗨,我是神秘主义者的新手,所以如果我问以前已经回答过的类似问题,我深表歉意。

假设我有一个输入 x(长度为 n 的列表)和一个函数 f(x),它将输入映射到 m 维输出空间。我还有一个 m 维约束列表,它也取决于输入 x(比如说它是 g(x)),我想确保输出小于 m 维列表中每个元素的约束。我应该如何在神秘中指定这个?

简化示例: