Tag: 求解器

是否有一个Excel函数来查找数字的组合

我不熟悉excel的所有function和数据工具,尽pipe我对excel很熟悉。 我的问题是,我在电子表格上有一个数字,它是列表中许多不同数字的组合。 例如: 一个列表包含:100,200,250,500和1000,我需要解释的数字是:800 答案是500,200,100 。 在我的脑海中用简单的数字做一个简单的列表并不困难,但是我处理了超过1500个货币单元格($ xxxx.xx),这些货币单元格总数( 并不是全部使用,所以SUM没用 ) – 我需要了解哪些数字用于创build总数( 这不是一个公式,这是一个硬编码的数字 )。 问题:是否有一个函数或VBA系统地将给定范围内的数字组合在一起,直到确定哪些数字可以加在一起构成总数? 我只是想在挖掘之前就知道,自己开始编写一个蛮力algorithm。 ======== 编辑:我创build的解决scheme,附在下面 链接到我为此创build的文件: https : //drive.google.com/file/d/0B8nE67gSOkewWXR2WnRuQTc2MEU/view?usp =分享 谢谢大家谁贡献!

在使用求解器EXCEL时保存目标函数值

我有一个Excel中设置的优化问题。 当我优化(使用gui)时,我得到目标函数的最终(最佳)值。 我可以看到,excel计算了很多点的目标函数值,并在最优的一个点上求解。 有没有办法将所有的目标函数值保存到Excel表格中的某个范围。 如果我可以使用求解器GUI来完成,那将是非常好的。 如果没有,基于VBA的解决scheme也可以。 谢谢。

当工作表中的某些数字发生变化时,自动运行Excel求解器

我正在尝试在excel中为一所学校进行成本分析。 在不同的价格下,我们得到了不同数量的学生,在此基础上,我们需要分析为每个部门聘用不同types教师的成本。 我们使用求解器计算每个部门的需求。 我们需要运算求解器10次来计算10年的成本。 我们是否改变了我们需要重复这个过程的费用。 有什么办法可以使解算器触发器自动化吗? 如果不是最好的select? 有一个不同的软件,会让我的生活变得轻松吗?

Excel求解程序VBA不会让一个单元受两个约束(最小和最大)

我正在尝试解决一个inputvariables必须受最小和最大约束限制的优化问题。 因为最后我不运行SolverReset,所以我可以告诉Solver忽略了第三个约束($ F $ 5 <= 1)。 我也可以告诉,因为有时它会给我一个答案,$ F $ 5> 1。 当我手动使用Solver时,我可以添加第三个约束。 我试图录制macros,看看我失踪,但我仍然难住。 我正在运行Excel 2007.任何想法? 谢谢, Public Sub SEDMSolver() SolverReset SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="0.1" SolverAdd CellRef:="$F$4", Relation:=3, FormulaText:="0" SolverAdd CellRef:="$F$5", Relation:=1, FormulaText:="1" SolverOk SetCell:="$G$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$F$4:$F$5" SolverSolve userFinish:=True End Sub

混合模型:石油生产

油混合 一家石油公司生产三种品牌的石油:Regular,Multigrade和Supreme。 每种品牌的油由四种原油中的一种或多种组成,每种原油具有不同的润滑指数。 有关原油的相关数据如下。 +————-+——————-+——————+————————–+ | Crude Stock | Lubrication Index | Cost (€/barrell) | Supply per day (barrels) | +————-+——————-+——————+————————–+ | 1 | 20 | 7,10 | 1000 | +————-+——————-+——————+————————–+ | 2 | 40 | 8,50 | 1100 | +————-+——————-+——————+————————–+ | 3 | 30 | 7,70 | 1200 | +————-+——————-+——————+————————–+ | 4 | 55 […]

具有非相邻单元约束的Excel求解器?

我是一名Excel解决scheme的新手,刚刚拿到一本数据科学书籍后才知道。 我想更熟悉这个工具,所以我一直在努力解决不同的问题。 我被困在一个虽然,我甚至不知道是否有可能使用求解器? 基本上,我需要检查的约束是两个单元格是否相邻。 我的问题:我有一堆包含不同数量的弹珠的袋子。 我想通过挑选手袋来获得最大数量的弹珠,但是它们不能相互靠近。 这是我在电子表格中的内容: 价值=包里弹珠的数量 select=是否select包(二进制) 违规=(select*袋编号)袋1 – (select*袋编号)袋2 如果我拿起两个相邻的行李,违规将会是-1。 +————+—-+—-+—-+—+—+————-+ | Bag Number | 1 | 2 | 3 | 4 | 5 | Total Value | +————+—-+—-+—-+—+—+————-+ | Value | 10 | 20 | 30 | 40| 50| 150| | Choose | 0 | 0 | 0 | 0 | […]

从Python over COM调用Excelmacros/ Excel解算器

我有一个2007年的xlsm文件里面有一个macros,当被调用时,创build一个解算器configuration(目标,约束,…),并执行解决scheme,没有任何用户交互。 从Excel手动运行时,这工作正常。 我现在想从Python通过COM脚本。 但是,当Python代码调用求解器macros时: app.Run("runSolver()") 它失败: foob​​ar.xlsm未能解决,错误消息:模型中的错误。 请validation所有单元格和约束条件是否有效。 如果我在调用Run()在Python环境中设置了一个断点,然后从Excel手动运行这个macros,它可以正常工作,所以求解器的configuration不会出错。 错误消息列在解算器网站上,但我不认为它适用,因为表单解决手动罚款。 这个页面表明当通过com调用时,求解器环境还没有build立。 但是,添加 Application.Run "Solver.xla!Solver.Solver2.Auto_open" 正如我解算器macros的第一行结果是更一般的: File "c:\python26\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x6.py", line 35061, in Run , Arg26, Arg27, Arg28, Arg29, Arg30 File "c:\python26\lib\site-packages\win32com\client\__init__.py", line 456, in _ApplyTypes_ self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args), com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None) 那么,正确的做法是什么? 编辑: 我把它分解成一个可复制的testing用例: Python代码: from […]

R求解类似于Excel求解器参数函数的方程

我有一个关于在R中解决函数的可能性的问题,并且使用excel来做同样的事情。 不过我想用R来表明R对我的同事更好:) 这是等式: f0<-1e-9 t_pw<-30e-9 a<-30.7397582453682 c<-6.60935546184612 P<-1-exp((-t_pw)*f0*exp(-a*(1-b/c)^2)) 我想findP<-0.5的b值。 在Excel中,我们可以通过selectP值列并将其设置为0.5,然后使用求解器参数函数来完成。 我不知道哪种方法是最好的? 或者有其他的办法吗? Thankx。

有谁知道更好的替代MS Excel的解算器?

我的公司必须处理大量的数据,部分过程涉及运行求解器并通过结果数据点绘制图表。 很明显,涉及到大量的复​​制和粘贴,整个过程是不稳定的,容易出错的,而且是全面的聚类欺骗。 我想知道是否有可以使用的解决scheme的替代scheme,以至于即使我们不得不使用excel来绘制最终图,也将会有更less的数据需要被复制和粘贴。 如果这个工具可以很容易地集成到一个.NET应用程序中,那将是非常棒的,但是我可以提出一些build议,可能需要一些代码才能使它工作。 谢谢!

将最佳值设置为任何给定的指定值

我正在使用开放求解器来解决优化问题。 问题如下: 假设我正在优化与给定的总成本约束和input可用性的input。 我们有投入成本,想要最小化成本。 另一个约束是优化input落在任何设定值中,比如input11,input12,input13和input14。 这个离散input范围因input而异。 所以我们有3个约束: 预算, 每个input的input容量和 投入应落入四个选项中的任何一个。 我创build的代码部分: Sub TestOpensolver() Dim TestSheet As Worksheet Set TestSheet = Worksheets("Optimized_Results") OpenSolver.ResetModel Sheet:=TestSheet 'Objective Definition OpenSolver.SetObjectiveFunctionCell TestSheet.Range("AC3"), Sheet:=TestSheet OpenSolver.SetObjectiveSense MinimiseObjective, Sheet:=TestSheet 'Variables Definition OpenSolver.SetDecisionVariables TestSheet.Range("AK3:AK8"), Sheet:=TestSheet OpenSolver.SetDecisionVariables TestSheet.Range("AQ3:AR8"), Sheet:=TestSheet ' Constraints OpenSolver.AddConstraint TestSheet.Range("AK3:AK8"), RelationLE, TestSheet.Range("W3:W8"), Sheet:=TestSheet OpenSolver.AddConstraint TestSheet.Range("AK3:AK8"), RelationGE, TestSheet.Range("X3:X8"), Sheet:=TestSheet OpenSolver.AddConstraint TestSheet.Range("AS3:AS8"), RelationLE, TestSheet.Range("AT3:AT8"), […]