首先,这看起来(来自 ContourPlot)是一个相当简单的最大化问题,为什么使用牛顿法的 FindMaximum 会出现问题?
其次,如何摆脱警告?
第三,如果我无法摆脱这些警告,我如何判断警告是否有意义,即最大化失败?
例如,在下面的代码中,使用 Newton 方法的 FindMaximum 会发出警告,而 PrimaryAxis 方法则不会
o = 1/5 Log[E^(-(h/Sqrt[3]))/(
2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
3/10 Log[E^(h/Sqrt[3])/(
2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
1/5 Log[E^(-(h/Sqrt[3]) - Sqrt[2] j)/( … 请你帮助优化这个工作的 MiniZinc 代码:
任务:有一个有 6 个时隙的会议。有 3 位演讲者参加了会议,每个人都可以在特定的时段使用。每个扬声器将出现预定数量的插槽。
目标:生成发言者最早完成的时间表。
示例:演讲者 A、B 和 C。演讲时长 = [1, 2, 1]
扬声器可用性:
+---+------+------+------+
| | Sp.A | Sp.B | Sp.C |
+---+------+------+------+
| 1 | | Busy | |
| 2 | Busy | Busy | Busy |
| 3 | Busy | Busy | |
| 4 | | | |
| 5 | | | Busy |
| 6 | Busy | Busy | |
+---+------+------+------+
Run Code Online (Sandbox Code Playgroud)
链接到工作 …
optimization mathematical-optimization solver constraint-programming minizinc
我想表达一个线性程序,其变量只能大于或等于常数 c 或等于 0。范围 ]0; c[ 是不允许的。
您是否知道一种在线性程序中表达此约束的方法,并且可以使用未经修改的单纯形实现来解决该约束?
例如此约束:x1 >= 4 或 x1 = 0。
线性程序中所有约束之间的典型关系是 AND。这是两个约束之间的或。
注意:我需要以计算有效的方式解决具有多个变量的问题。
mathematical-optimization linear-programming nonlinear-optimization
我有一个整数,需要将其绝对值减一。
有没有比这更短的方法:
if(number > 0) number--; else if (number < 0) number++;
Run Code Online (Sandbox Code Playgroud) 我正在解决Project Euler 中的一个问题;我在 SO 中发现了一个问题。问题和接受的答案说;
n = 600851475143
i = 2
while i * i < n:
while n%i == 0:
n = n / i
i = i + 1
print (n)
Run Code Online (Sandbox Code Playgroud)
这太棒了。我还是不明白这个过程怎么这么快,竟然能在 0.00001 秒内找到 6000 亿的最大质因数。我为此尝试了大量方法和代码,过程耗时超过 1 小时。
谁能向我解释这些代码的逻辑以及为什么它超快?被while循环有Python中一个特殊的地方?
我想知道使用 Scipy 来拟合 Pandas DataFrame 列的最佳方法。如果我有一个包含列 ( A, B, C, Dand Z_real)的数据表 (Pandas DataFrame),其中 Z 取决于 A、B、C 和 D,我想拟合每个 DataFrame 行(系列)的函数,该函数对 Z 进行预测(Z_pred)。
要拟合的每个函数的签名是
func(series, param_1, param_2...)
Run Code Online (Sandbox Code Playgroud)
其中 series 是对应于 DataFrame 每一行的 Pandas 系列。我使用 Pandas 系列,以便不同的函数可以使用不同的列组合。
我试过将 DataFrame 传递给scipy.optimize.curve_fit使用
curve_fit(func, table, table.loc[:, 'Z_real'])
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,每个 func 实例都将整个数据表作为其第一个参数而不是每一行的 Series 传递。我也尝试将 DataFrame 转换为 Series 对象列表,但这导致我的函数被传递了一个 Numpy 数组(我认为是因为 Scipy 执行了从 Series 列表到 Numpy 数组的转换,它不保留 Pandas系列对象)。
我正在 python 中研究一种算法,需要修改具体的(混合整数非线性)pyomo 模型。特别是,我需要知道一般代数约束中存在哪些变量。例如对于约束
model.con1 = Constraint(expr=exp(model.x_1) + 2*model.x_2 <= 2)
我想做一个查询(例如model.con1.variables),它返回变量(的列表)([model.x_1,model.x_2])。
在本文档中,我发现对于线性约束,该参数variables完全符合我的目的。然而,我正在使用的模型还将包含一般代数约束。
本书的第 14 章提供了使用 pyomo 开发高级算法的一些细节,但我在那里没有找到我的问题的答案。我能想到的唯一非常笨拙的方法是使用表达式的 to_string() 方法(exp( x_1 ) + x_2 <= 1.0在我们的示例中返回),然后搜索该字符串以查找所有变量的出现。我确信有一种更好的方法使用 pyomo 来访问约束中发生的变量。
请注意,这里已经提出了一个类似的但不太详细且未回答的问题。
我的程序:
# -*- coding: utf-8 -*-
import numpy as np
import itertools
from scipy.optimize import minimize
global width
width = 0.3
def time_builder(f, t0=0, tf=300):
return list(np.round(np.arange(t0, tf, 1/f*1000),3))
def duo_stim_overlap(t1, t2):
"""
Function taking 2 timelines build by time_builder function in input
and returning the ids of overlapping pulses between the 2.
len(t1) < len(t2)
"""
pulse_id_t1 = [x for x in range(len(t1)) for y in range(len(t2)) if abs(t1[x] - t2[y]) < width]
pulse_id_t2 = [x for x in …Run Code Online (Sandbox Code Playgroud) 假设我需要将 n=30 名学生分成 2 到 6 人一组,我从每个学生那里收集以下偏好数据:
学生姓名:汤姆
喜欢坐在一起:吉米、埃里克
不喜欢坐在一起:约翰、保罗、林戈、乔治
这暗示他们对全班其他他们没有提到的学生保持中立。
我如何才能最好地运行许多不同/随机分组安排的大量模拟,以便能够确定每个安排的分数,然后我可以选择“最佳”分数/安排?
或者,是否有任何其他方法可以计算出满足所有提供的约束的解决方案?
我想要一种可以每年在不同班级规模上重复使用的通用方法,但在每次模拟运行中,以下常量和变量都适用:
常量:学生总数、学生偏好
变量:团体规模、学生分组、不同团体安排/要测试的迭代次数
预先感谢您提供的任何帮助/建议/指示。
algorithm simulation optimization grouping mathematical-optimization
今天面试了,被问到一个问题,我都听不懂。
问题:
给定一个
array由整数组成的。获取至少
在相等的元素array。在计算时,您可以进行以下两种操作
取数组的最小元素之一并将其值加一(更正式地说,如果 的最小值为 ,则选择这样的索引 = 并设置 :=+1);
取数组的最大元素之一并将其值减一(更正式地说,如果 的最大值为 ,则选择这样的索引 = 并设置 :=?1)。
计算获得
数组中至少相等元素所需的最小移动次数。
任何人都可以帮助我理解,实际问题是什么,以便我可以编写代码?
optimization ×4
python ×4
algorithm ×2
scipy ×2
arrays ×1
c# ×1
grouping ×1
java ×1
math ×1
minizinc ×1
pandas ×1
pyomo ×1
python-3.4 ×1
simulation ×1
solver ×1
while-loop ×1