zoukankan      html  css  js  c++  java
  • 初学OptaPlanner-01- 什么是OptaPlanner?

    01. What is OptaPlanner?

    主要翻译一下首页的内容 https://www.optaplanner.org/

    OptaPlanner是一个AI约束求解器。它优化计划和调度问题,如车辆调度问题(智慧城市的智慧红路灯)、员工排班、维护调度、任务分配、学校时间表、云优化、会议调度、作业车间调度、装箱等。每个组织都面临这样的挑战:分配有限的有限资源(员工、资产、时间和/或金钱)来提供产品或服务。OptaPlanner提供更高效的计划,从而降低成本并提高服务质量。

    OptaPlanner是一个轻量级、可嵌入的计划引擎。它使日常的Java程序员能够有效地解决优化问题。它还与其他JVM语言(如Kotlin和Scala)兼容。约束应用于纯域对象,并且可以调用现有代码。不需要将约束作为数学方程输入。本质上说,OptaPlanner将复杂的人工智能优化算法(如禁忌搜索、模拟退火、延迟接受和其他元启发式算法)与非常有效的分数计算和其他最先进的约束解决技术相结合。

    OptaPlanner是开源软件,在Apache许可下发布。它是用100%纯Java编写的™,可以在任何JVM上运行,也可以在Maven中央存储库中使用。它与Quarkus和Spring Boot一起工作。

    02. 使用场景 (Use Case)

    image-20200910214310877

    如上: (可以理解为动态规划的各个应用场景)

    • 设备调度 (更高地利用率)
    • 工作流程安排计划 (更快地完成工作流程)
    • 交通工具路径安排 (更小的驾驶时间)
    • 员工排班 (更合理地安排)
    • 装箱 (更小的碎片化/提升总体利用率)

    03. 怎么使用

    image-20200910214310877

    04. 集成进JVM环境一览

    image-20200910214310877

    05. 适用性

    • 支持JavaSE
    • 支持JavaEE
    • 支持JVM系列, Java、Scala、Groovy、Vert.X等

    06. 可扩展性 (scalability 可扩展性;可伸缩性;可量测性

    image-20200910214310877

    图片解释:

    • metaheuristic: 元启发式方法。一些随机搜索算法诸如进化算法、蚁群算法、粒子群算法这类具有启发式框架的智能算法称为元启发式算法.
    • brute Force algorithm: 暴力算法
    • branch and bound algorithm:分支界定算法
    • metaheuristics:元启发式搜索
    • construction heuristics:构造启发式算法
    • limited selection CH:有界CH (CH据说是双向的双向dijkstra)

    图片总结:

    数据规模横向扩展的影响:

    穷尽搜索提供了最佳解决方案,但需要花费很长时间;

    构造启发式(包括贪婪算法)在时间上交付的质量很差;

    元启发式在时间上提供了良好的质量。

    注意:元启发式包括一个CH来初始化

    这是一个粗略的概括,基于多年的经验和大量实际用例的基准测试;

    每个用例和每个解算器配置的结果可能不同;

    [1]具有较大值范围的变量(二进制变量的比例更大)

    你不逼自己一把,你永远都不知道自己有多优秀!只有经历了一些事,你才会懂得好好珍惜眼前的时光!
  • 相关阅读:
    JavaScript实现常见排序算法
    执行环境与作用域
    几种常见的三列布局,中间自适应,两边定宽
    常见的两列布局
    CodeAtlas For Sublime Text
    增加调用路径查找
    增加调用被调用个数隐喻
    sublime 插件
    分析大工程
    Jmeter 分布式测试
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/13892024.html
Copyright © 2011-2022 走看看