Julia 朱莉娅的数理逻辑

Julia 朱莉娅的数理逻辑,julia,mathematical-optimization,julia-jump,Julia,Mathematical Optimization,Julia Jump,跳转是否支持在模型中直接使用数学逻辑 我知道它支持条件指示符,但是这些条件怎么样 例如: 1-双条件指标是一个与满意度和满意度相关的二进制变量 与当前解决方案有关的约束的非满足状态 δi=1⟺ sumj,a_ij。x_j Julia支持在模型中直接使用数学逻辑吗 我猜你的意思是跳这里。JuMP是一个用Julia编写的数学优化包 对于这三个约束,跳转没有直接语法 然而,它们都可以用一些技巧来表述 Mosek Modeling Cookbook收集了很多技巧: . 有很多关于整数程序建模的教科书和课

跳转是否支持在模型中直接使用数学逻辑

我知道它支持条件指示符,但是这些条件怎么样

例如:

1-双条件指标是一个与满意度和满意度相关的二进制变量 与当前解决方案有关的约束的非满足状态

δi=1⟺ sumj,a_ij。x_j Julia支持在模型中直接使用数学逻辑吗

我猜你的意思是跳这里。JuMP是一个用Julia编写的数学优化包

对于这三个约束,跳转没有直接语法

然而,它们都可以用一些技巧来表述

Mosek Modeling Cookbook收集了很多技巧: . 有很多关于整数程序建模的教科书和课堂讲稿 网上课程: 跳转文档还有一些提示

第二点是

Julia支持在模型中直接使用数学逻辑吗

我猜你的意思是跳这里。JuMP是一个用Julia编写的数学优化包

对于这三个约束,跳转没有直接语法

然而,它们都可以用一些技巧来表述

Mosek Modeling Cookbook收集了很多技巧: . 有很多关于整数程序建模的教科书和课堂讲稿 网上课程: 跳转文档还有一些提示

第2点是约束

δ(i)=1 ⇔ sum(j, a(i,j)) ≤ b(i)
可表述为两个指标约束:

δ(i)=1 ⇒ sum(j, a(i,j)) ≤ b(i)
δ(i)=0 ⇒ sum(j, a(i,j)) ≥ b(i) + 0.0001
δ(i) ∈ {0,1} 
我通常去掉0.001,让问题在等式处稍微模糊。这样,解算器可以选择最佳解算器。如果总和较长,请使用中间变量以防止重复总和

2或约束。同样的想法:

δ=1 ⇒ linear constraint 1
δ=0 ⇒ linear constraint 2
δ ∈ {0,1} 
将强制执行约束1或约束2之一

3如果是,则为Else约束。即

If constraint 1 then constraint 2 else constraint 3
与上面的内容类似:

δ=1 ⇒ linear constraint 1
δ=1 ⇒ linear constraint 2
δ=0 ⇒ not linear constraint 1
δ=0 ⇒ linear constraint 3
更复杂的情况可能如下所示:

δ=1 ⇒ y=b
δ=0 ⇒ y≠b
第二个含义需要使用额外的二进制变量拆分为两个。我将把它作为一个尺寸。

1约束

δ(i)=1 ⇔ sum(j, a(i,j)) ≤ b(i)
可表述为两个指标约束:

δ(i)=1 ⇒ sum(j, a(i,j)) ≤ b(i)
δ(i)=0 ⇒ sum(j, a(i,j)) ≥ b(i) + 0.0001
δ(i) ∈ {0,1} 
我通常去掉0.001,让问题在等式处稍微模糊。这样,解算器可以选择最佳解算器。如果总和较长,请使用中间变量以防止重复总和

2或约束。同样的想法:

δ=1 ⇒ linear constraint 1
δ=0 ⇒ linear constraint 2
δ ∈ {0,1} 
将强制执行约束1或约束2之一

3如果是,则为Else约束。即

If constraint 1 then constraint 2 else constraint 3
与上面的内容类似:

δ=1 ⇒ linear constraint 1
δ=1 ⇒ linear constraint 2
δ=0 ⇒ not linear constraint 1
δ=0 ⇒ linear constraint 3
更复杂的情况可能如下所示:

δ=1 ⇒ y=b
δ=0 ⇒ y≠b
第二个含义需要使用额外的二进制变量拆分为两个。我把它留作一个尺码