【问题标题】:Is mixed integer linear programming used to implement optimization algorithms (e.g., genetic or particle swarm)混合整数线性规划用于实现优化算法(例如遗传或粒子群)
【发布时间】:2017-04-27 01:36:26
【问题描述】:

我正在学习用于自动分组用户的优化算法。但是,我对这些算法完全陌生,并且在查看相关文献时听说过它们。而且,不同的是,在其中一篇文章中,作者使用整数编程实现了他们自己的算法(基于他们自己的逻辑)(这就是我听说 IP 的方式)。

我想知道是否需要使用混合整数线性规划来实现遗传/粒子群(或任何其他优化)算法,或者这只是其中一种选择。最后,我需要构建一个基于 Web 的系统来自动对用户进行分组。感谢您的帮助。

【问题讨论】:

  • Michalewicz 和 Fogel 的“如何解决它:现代 Hueristics”是一个不错的(虽然有些过时)概述。它讨论了 IP 和启发式方法(重点是后者)。

标签: optimization genetic-algorithm linear-programming integer-programming particle-swarm


【解决方案1】:

我认为您有点混淆了这些术语。这些都是不同的优化技术。您当然可以使用混合整数规划 (MIP) 表示法来表示问题,但您可以使用 MIP 求解器或遗传算法 (GA) 或粒子群优化 (PSO) 来解决它。

整数规划是称为数学规划的更传统范式的一部分,在该范式中,问题是基于一组有些严格的方程建模的。有不同类型的数学规划模型:线性规划(所有变量都是连续的)、整数规划、混合整数规划(连续和离散变量的混合)、非线性规划(一些方程不是线性的)。

数学编程模型很好且健壮,例如,根据模型,您可以判断您离理想解决方案还有多远。但这些模型经常会遇到很多变量的问题。

另一方面,遗传算法和 PSO 属于优化技术的一个较年轻的分支,通常称为元启发式。即使对于大型和复杂的问题,这些技术也经常找到好的或至少合理的解决方案,许多实际应用

有一些混合算法结合了数学模型和元启发式算法,在这种情况下,是的,您可以同时使用 MIP 和 GA/PSO。选择哪种方法(MIP、元启发式或混合方法)非常依赖于问题,您必须测试哪种方法更适合您。如果重点是解决方案的准确性,我通常更喜欢数学模型,如果我的目标函数非常复杂并且我需要一个快速但更差的解决方案,我更喜欢元启发式。

【讨论】:

  • 非常感谢您的回答!如果我使用 MIP,我需要根据问题从头开始提出我自己的数学模型和目标函数。如果模型中有很多参数并且用户数量也很多(在我的情况下),您不建议这样做。要实现 GA/PSO 算法并自定义目标函数,我可以使用 Solvers(IBM 或 Microsoft),也可以使用 Python、MIP 等。您能否确认这些信息?
  • 好吧,如果你找到一个适合你的问题的模型/目标函数(例如在学术文献中),你不需要提出一个新的模型/目标函数,如果是这样,我会专注于学习如何实施问题并解决以找到最佳解决方案。对于 MIP,IBM Cplex 可能是最好的求解器(但它很昂贵),并且有 C/Java/Python 库,对于 GA/PSO,您也可以查看 Python、Matlab、C 或 Java 库(JMetal 是其中之一我知道)或者你可以用你喜欢的任何语言编写你自己的 GA/PSO,自己学习和编码并不难。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多