很久以前,我在读博士期间写了《全局优化算法-理论和应用》[203],现在我想写一本更实用的优化和元启发式指南。目前,这本书处于开发和制作的早期阶段,因此预计会有很多变化。本文试图介绍优化以一种无障碍的方式为观众的本科生和研究生没有背景的领域。它试图提供关于优化算法在实践中如何工作的直觉,解决问题时要寻找什么东西,以及如何从简单、有效的“概念证明”方法获得给定问题的有效解决方案。我们遵循“边做边学”的方法,通过尝试解决一个实际的优化问题作为贯穿全书的示例主题。所有的算法在引入后都直接实现并应用于该问题。这让我们可以根据实际结果讨论他们的优势和劣势。我们学习如何比较不同算法的性能。我们尝试逐步改进算法,从非常简单的、效果不佳的方法转向高效的元启发式方法。
我们使用了用Python编写的具体示例和算法实现。它们可以在2007年6月29日GNU通用公共许可证版本3下的库thomasWeise/moptipy中免费获得。每个源代码列表在标题中都附有一个(src)链接,链接到存储库中文件的完整版本。清单通常是删节的节选。这意味着我们将忽略很多对理解算法不必要的细节,比如类型提示、健全检查,甚至是完整的方法。这些代码将会以完整的代码版本出现在GitHub存储库中。因此,这个完整的代码版本可能与书中插图的删节代码看起来不同。为了完全理解代码示例,我们建议读者熟悉Python、numpy和matplotlib。当然,如果您读这本书只是为了学习算法,您可以忽略源代码示例。
如今,算法对我们日常私生活和工作生活的影响越来越大。他们建议我们看有趣的电影或购买的产品。当我们开车时,它们帮助我们找到有效的路线,或者帮我们匹配附近下一辆可用的出租车。他们控制广告活动,并提出产品定价政策[151]。他们通过在工程、时间表和调度、产品设计和物流规划等多个领域提出良好的决策来支持我们。它们将是我们行业向智能制造和智能生产转型的最重要元素,它们可以自动化各种任务,如图1.1所示。
优化和运筹学为我们提供算法,为非常广泛的问题提出良好的解决方案。这些解决方案实现了预定义的目标,同时最小化(至少)一项资源需求,包括成本、能源消耗、空间、时间需求等等。除了节省直接成本外,减少资源消耗对环境也有好处。因此,优化可以帮助我们在经济和生态方面变得更高效。因此,我们可以列出三个明显的原因,为什么优化将成为下个世纪的关键技术:
1. 生产自动化可以通过减少人工劳动来提高工作寿命,同时提高生产力和产品质量。然而,任何形式的智能生产或智能制造都需要自动化决策。因为这些决策应该是明智的,所以它们只能来自于一个以某种方式进行优化的过程。
2. 所有行业、所有服务部门以及城市和地区都面临着全球和本地的竞争。那些能够在提高产品、生产或服务质量和效率的同时减少资源消耗和成本的企业将具有优势。实现这一目标的一个关键技术是通过优化进行更好的规划。
3.我们的世界因资源的消耗和过多的污染而衰败。优化可以“给我们更多而需要更少”。这通常会导致更环保的过程。
但是算法如何帮助我们找到各种不同领域的难题的解决方案呢?这些算法有多普遍?他们如何帮助我们做出正确的决定?它们如何帮助我们节约资源?在本书中,我们将试图回答所有这些问题。我们将探索很多不同的优化算法。我们将研究它们的实际实现,并将它们应用到示例问题中,以了解它们的优缺点。
专知便捷查看
便捷下载,请关注专知公众号(点击上方蓝色专知关注)
后台回复“O232” 就可以获取《【干货书】优化算法,232页pdf》专知下载链接