Tag: 求解器

达到解算器variables的最大数量?

我正在使用excel求解器来优化问题(使用进化/遗传algorithm进行最大化)。 然而,在为3-4个inputvariables和大约1000个样本设置底部和顶部边界之后,我没有遇到任何问题。 适应度函数非常简单,只是所有输出的总和。 我曾经有一个(1000 x 4)inputmatrix和一个相应的(1000 x 1)输出列向量。 现在,我有42个inputvariables( 小于variables求解器应该处理的最大尺寸 )。 遗憾的是,GA没有find最佳解决scheme(它过滤掉了所有的输出;所以我只从我的列向量中调用了#NA)。 我从“尝试”中知道,只改变一个variables可以提高模型的适应性。 所以Solver / GA似乎在运行“爬山”方面存在问题。 经验上,我发现14个variables设置为底部阈值)或者5 + 5个variables设置为底部+顶部阈值是Solver可以处理的最大值。 设置非常标准,我检查了不同的修改。 约束精度:0.001 – 0.000001缩放:开/关 收敛性(GA):0.001-0.000001群体大小:0,100,200变异率:0.01,0.075,0.2,0.5,0.9 经过40次迭代后,它停止,没有输出被调用(100%被滤除)。 有其他人遇到过这个问题吗? 我是否达到了Excel解算器或GA的极限? 如果是的话,有没有解决我的问题在Excel中的解决scheme,或者我必须Matlab / Python库,它可以处理这么多的variables?

从列表中select平均Y的X #s

我有一个数字列表。 我需要find一种方法来select那些平均数大约为Y的数字。 作为一个简单的例子,假设我的列表是: 30, 40, 50, 60, 70, 80, 90, 100, 110 我需要find三个数字的组合,平均值为大约70.可能的解决scheme可能是60, 70, 80或50, 70, 90或30, 70, 110 。 我真的不知道如何开始,所以恐怕我没有尝试太多。 我检查了Excel解算器,但无法find一个方法来“或”约束“。 我在使用Excel中的VBA和编写SQL代码方面很不错,但我无法弄清楚如何使用这两种技能来解决这个问题。 任何人有任何想法如何在Excel或SSMS解决这个问题? 如果不是,我应该探索哪些其他选项?

Excel VBA:来自太多未被破坏的对象的溢出错误?

在大数据集上执行优化任务时,我会不时收到溢出运行时错误6(通常在1小时或2小时后)。 当我从macros停止的位置重新启动我的macros时,错误消失,即从发生错误的地方再次启动macros。 溢出错误是否与创build太多使用后不能正确销毁的对象有关? 下面是我的容器类的一个(简化版本),它被销毁(通过Set … = Nothing)和重build(通过Set … = New)成千上万次。 'CG_data_point custom collection class Public data_points As Collection Private Sub Class_Initialize() Set data_points = New Collection End Sub Public Sub AddDataPoint(mydate as date, price as double) Dim new_data_point As CG_data_point Set new_data_point = New CG_data_point new_data_point.EnterData mydate, price data_points.Add new_data_point Set new_data_point = Nothing 'I […]

VBA Excel解算器代码 – 按列循环

我试图为Solver设置一个300列的数据循环。 这是我迄今为止: Sub SolverProp() SolverReset SolverOk SetCell:="$B$20", MaxMinVal:=3, ValueOf:="$B$3", ByChange:="$B$28", _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverSolve End Sub 这段代码解决了我在B列保存的数据所需要的东西。它改变了B28,直到B20等于B3。 我试图让它循环,以便每300个案例(build立完全一样)它将解决方程。 例如,要解决C列的代码将如下所示: Sub SolverProp() SolverReset SolverOk SetCell:="$C$20", MaxMinVal:=3, ValueOf:="$C$3", ByChange:="$C$28", _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverSolve End Sub

使用Excel解算器生成多个最佳解决scheme

有什么办法来获得所有的最佳解决scheme,当你解决Excel解算器(单纯LP方法)的一些问题? 如果不是的话,Excel中解决这个问题的最好的方法/插件是什么,并将现有的VBA代码转换为使用这种新的方式?

用多个背包和约束求解一种背包概率

我有以下的问题,我想解决与Excel解决或任何其他工具(任何build议是受欢迎的),但我不想写代码。 我有几个项目(约40),放在几个背包(约5)。 每个项目有不同的重量,但每个背包都有相同的空间。 项目重量的总和远小于背包的容量。 我需要做的是在背包中分配物品,使其充满相同的重量。 换句话说,减less方差。 有一个限制:一些项目不能在一起。 我有一个列表(或邻接matrix)的项目可以或不可以一起去。 当然一旦一件物品放在背包里就不能进入第二件物品(每件物品只有一件物品)。 我试图解决这个与Excel解决scheme,但所有的algorithm3说,他们找不到解决scheme,但手动我可以find他们,所以我觉得我没有正确的configuration。 无论如何,我只能configuration有关权重的问题的一部分,但我不能设置有关项目之间不兼容问题的一部分。 感谢您的帮助

Excel求解器 – 不能确定求解器中的必要约束来完成我的任务

我很难找出正确的约束条件,我应该完成一项任务。 关于这个任务的小描述是: A,B,C,D,E,F =城市 A和B工厂正在进行制造 仓库在C和D城市 生产必须交付给E和F城市 工厂A每月可生产700kg,工厂B-450kg 电子产品的需求量为每月450公斤,每月F – 550公斤 在第一张表中显示了城市之间每千克的运输成本 目标是获得最小的运输成本和满足需求 过程应该像工厂 – >仓库 – > E或F城市 我已经开始在Excel和Solver上工作,只是缺less一些我无法弄清楚的约束条件。 链接到Excel:mega.nz/#!FFIwiI7T!gx4c0Bwg3NtEEyqs0Zdnkwbclr0uWOUxW45RkSTn_ 9k(最新) 只要看看运输成本表,看起来(我认为至less)应该是这样的:1)生产的东西移动到 – > B,2)B和A生产东西到仓库C或D,3)然后从C和D到E或F atm它只是直接从仓库C到E例如这是不可能的,因为C还没有从A或B收到。

如何在求解器解决scheme中添加“至lessX” – Excel

我在我的Excel文档中开发了求解器解决scheme,它可以自动selectSUMPRODUCT情况下的最低价格。 为了使一切更简单,下面是实际电子表格的图片。 考虑到= SOMARPRODUTO其实是= SUMPRODUCT英文。 我目前正在尝试添加并且尚未成功,正在基于另一个单元格进行限制。 例如,求解器只能考虑行[B4:AU4]中的单元格的数目高于单元格[$ AW $ 7]中的解决scheme。 也许我需要做一个条件,然后使用SUMPRODUCT公式? 如果问题不是明确的,请让我知道,我会添加更多的信息。

将VBA约束添加到解算器工具

我正在尝试向我的Excel VBA求解器解决scheme中添加一些新的约束条件,并在运行代码时遇到一些奇怪的现象。 我想做一个最小化问题以下有麻烦: 正在调整的两个杠杆必须<= 35%,但是当我添加约束: SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35" SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35" 当想法尽可能低时,他们自动将自己定在35%。 如果没有这个约束,单元格会将自己设置为低于35%,因为我正在validation的问题,所以我知道最佳解决scheme是低于35%。 此外,我想知道是否有一种方法来确保a)单元格以5%的增量进行优化,并且结尾值不包括小数。 即10.00%而不是10.23% 对不起,这个冗长的问题,我很感激我得到的任何帮助。 以下是完整的代码: Private Sub CommandButton2_Click() Dim i As Integer i = 2 For i = 2 To 5 Range("$C$14").Value = Application.Workbooks("test_model_2.xls").Worksheets("All Models").Cells(i, 2).Value SolverReset SolverAdd CellRef:="$F$70", Relation:=3, FormulaText:="5000" SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35" SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35" SolverOk SetCell:="$F$70", […]

当一个约束在开始时不满意时,Excel解算器将不起作用

我有这个: ABC 2 3 A1+B1 4 5 A2+B2 constraint_1: A1 + A2 = 5 constraint_2: B1 + B2 <= 4 目标单元格:C3,它是sum(C1,C2) ,它应该是0。 当我从上面的状态开始时, A1+A2 = 6,求解器将无法工作,因为约束_1首先被破坏(A1 + A2 = 6)。 有没有解决方法?