曙海教學(xué)優(yōu)勢
本課程面向企事業(yè)項(xiàng)目實(shí)際需要,秉承二十一年積累的教學(xué)品質(zhì),OptaPlanner培訓(xùn)-以項(xiàng)目實(shí)現(xiàn)為導(dǎo)向,老師將會與您分享設(shè)計的全流程以及工具的綜合使用經(jīng)驗(yàn)、技巧。線上/線下/上門皆可,OptaPlanner培訓(xùn)-專家,課程可定制,熱線:4008699035。
曙海的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。曙海的課程在業(yè)內(nèi)有著響亮的知名度。大批企業(yè)和曙海
建立了良好的合作關(guān)系,合作企業(yè)30萬+。
1理論基礎(chǔ)
1.1運(yùn)籌學(xué)規(guī)劃與APS
1.1.1運(yùn)籌優(yōu)化的原理及其在現(xiàn)實(shí)生活中的應(yīng)用;
1.1.2運(yùn)籌優(yōu)化中的數(shù)學(xué)規(guī)劃原理;
1.1.3及其與APS技術(shù)的關(guān)系。
1.2規(guī)劃問題NP-Hard/NP-Complete問題
非多項(xiàng)式時間可解問題的由來,及其在數(shù)學(xué)領(lǐng)域的意義,包括:
1.2.1問題規(guī)模的來由;
1.2.2何謂NP-Hard問題;
1.2.3對NP-Hard問題的常見解法。
1.3規(guī)劃問題及問題規(guī)模
分析規(guī)劃問題的構(gòu)成及其問題規(guī)劃(搜索空間)的大小
1.4求解器的原理及發(fā)展現(xiàn)狀
包括:
1.4.1何謂求解器,及其包含的啟動發(fā)式算法;
1.4.2國內(nèi)外,開源、商用求解器的現(xiàn)狀與選用;
1.4.3介紹世界若干最著名求解器的全面優(yōu)缺點(diǎn),包括OptaPlanner, Google OR-Tools, IBM CPLEX等
2OptaPlanner相關(guān)概念與應(yīng)用基礎(chǔ)
講解OptaPlanner的一些必須掌握的概念及應(yīng)用方法。
2.1OptaPlanner的尋優(yōu)原理
介紹在規(guī)劃運(yùn)算過程中,OptaPlanner如何以評分作為基礎(chǔ),結(jié)合各種啟發(fā)式算法進(jìn)行最優(yōu)方案尋找.
2.2約束及其分類
約束在求解器中的意義,從正負(fù)約束、軟硬約束等角度對約束進(jìn)行分類分析。
2.3評分及評分規(guī)則
評分與約束的關(guān)系,不同層次的分?jǐn)?shù)對解的影響。
2.4評分在引擎中的實(shí)現(xiàn)(Java Scoring, Drools Scoring, ConstraintStream)
講解OptaPlanner中可用的三種評分實(shí)現(xiàn)方式,及各種場景下的評分設(shè)計建議。
2.5規(guī)劃問題的解(Planning problem and solution)
定義規(guī)則問題的可能解、可行解、相對最優(yōu)解及絕對最優(yōu)解
2.6Problem Fact,Planning Entity與Planning Variable
講解使用OptaPlanner進(jìn)行建模時的基本概念,及其在規(guī)劃問題中,各自代表的意義。
2.7Planning Variable的類型(genuine & shadow)
講解Planning Variable的類型、其意義及其在不同的模式中相互作用的機(jī)制。
2.8配置文件結(jié)構(gòu)及內(nèi)容(Solver Configuration)
講解Solver的配置文件中,各個項(xiàng)目的意義及設(shè)置方法。
2.9Solver的使用
講解OptaPlanner的入口對象Solver的構(gòu)造過程。
2.9.1創(chuàng)建并使用solver對象
通過SoverFactory等工廠構(gòu)造Solver, ScoreDirector等對象的方法
2.9.2診斷模式
講解通過配置文件實(shí)現(xiàn)運(yùn)行過程中,引擎的自檢模式。
2.9.3日志輸出
講解配置運(yùn)行過程中日志輸出的方法;并講解如何通過日志分析引擎的行為。
2.9.4解決方案的評分獲取與分析
講解根據(jù)引擎的輸出結(jié)果對象,獲取各個層評分的方法;并分析各層得分的來源。
2.10認(rèn)識及應(yīng)用Shadow Variable
掌握鏈的結(jié)構(gòu)及構(gòu)成原則,實(shí)現(xiàn)Shadow Variable隨鏈變化而變化。講解Chained Through Time模式。
2.11規(guī)劃步驟與階段
講解引擎從開始到結(jié)束,對問題進(jìn)行求解的步驟,包括:Exhaustive Search, Construction Heuristics 與Local Search
2.12簡介各啟發(fā)式尋優(yōu)算法
對目前OptaPlanner支持的各種尋優(yōu)算法進(jìn)行講解,包括其原理、優(yōu)缺點(diǎn)及應(yīng)用方法。
2.13分析解決方案的評分
通過 ConstraintMatchTotal來分析一個解決方案的約束違反情況,從而實(shí)現(xiàn)規(guī)劃評分可視化
3OptaPlanner的評分體系
3.1Drools相關(guān)概念及應(yīng)用
簡單Drools的一些基礎(chǔ)概念,以備在OptaPlanner進(jìn)行評分過程中,可以靈活使用該規(guī)則引擎。
3.1.1Drools簡介
講解規(guī)則引擎Drools的背景與應(yīng)用場景。
3.1.2Drools Script
講解Drools腳本的語法與語義。
3.1.3Drools與在OptaPlanner中的應(yīng)用
講解如何通過Drools規(guī)則引擎,在OptaPlanner中實(shí)現(xiàn)評分。
3.2ConstraintStream – 約束流的應(yīng)用
3.2.1約束流程的作用
講解ConstraintStream如何實(shí)現(xiàn)增量評分計算
3.2.2約束流程的編寫方法
講解約束流程的常用設(shè)計、編寫方法。包含約束流的構(gòu)建塊,懲罰、獎勵方式等。
3.3Incremental 評分計算
Incremental Java score calculation的使用方法,優(yōu)缺點(diǎn)與適用場景。
4OptaPlanner進(jìn)階應(yīng)用
介紹一些OptaPlanner高級應(yīng)用,及一些可提高性能及規(guī)劃效率的方法與技巧。
4.1Score Calculation性能提升技巧
通過優(yōu)化約束與規(guī)則的設(shè)計、使用內(nèi)置硬約束等技巧,提高引擎的評分效率;從而在固定時間內(nèi)獲得更佳的解。
4.2時間分配模式
講解OptaPlanner在進(jìn)行時間分配及規(guī)則的時,支持的三種模式:TimeSolt,TimeGrain,及ChainedThrough Time, 模式的原理、構(gòu)成、實(shí)現(xiàn)方法及應(yīng)用場景
4.3時間計算技巧(將時間轉(zhuǎn)為數(shù)值)
分享在引擎運(yùn)行過程中,進(jìn)行時間計算時,可提高性能、簡化計算的方法。
4.4約束流的評分方式詳解
講解如何通過約束流實(shí)現(xiàn)約束評分,從而提高評分邏輯的性能、避免使用Drools編寫評分邏輯。
5Optaplanner的規(guī)劃步驟及Move的深入學(xué)習(xí)
講解引擎在運(yùn)行過程中的種個步驟構(gòu)成,特別針對其具原子性的Move操作進(jìn)行剖釋。
5.1Move的行為分析
分析最基本的規(guī)劃行為-Move的操作過程,從最基本的運(yùn)算操作來認(rèn)識引擎的尋優(yōu)過程。
5.2MoveSelector與過濾技巧
在引擎運(yùn)行過程中,如何通過MoveSelection過濾器將不合理及無意義的Move過濾掉,從而提高求解效率。
6OptaPlanner高級特征
6.1啟用并行計算
講解設(shè)計并行計算時的原則與技巧,并在7.10.0.Final及以后的版本中,通過配置實(shí)現(xiàn)引擎內(nèi)部的并行運(yùn)算,提高運(yùn)行性能。
6.2實(shí)現(xiàn)非易失性規(guī)劃的方法
通過實(shí)時規(guī)劃來實(shí)現(xiàn)計劃的非易失性。即通過對Planning Variable的值轉(zhuǎn)換進(jìn)行分析懲罰,減少前后兩個計劃的過度變化。
6.3實(shí)時規(guī)劃
講解實(shí)時計劃的原理、原則及實(shí)現(xiàn)方法,實(shí)現(xiàn)在引擎運(yùn)行過程中,與外界進(jìn)行實(shí)時交互,并實(shí)現(xiàn)實(shí)時輸出規(guī)則結(jié)果。
6.4鎖定Planning Entity
通過引擎內(nèi)部機(jī)制,實(shí)現(xiàn)在規(guī)則過程中對特定的Planning Entity實(shí)現(xiàn)鎖定。
6.5BenchMark的應(yīng)用
講解如何通過BenchMark得到一個問題的規(guī)劃建議方案,包括尋優(yōu)算法的選用,其參數(shù)設(shè)定等。
6.6PJS模型的研究與應(yīng)用
基于車間排產(chǎn)的場景,講解如何通過對PJS模型進(jìn)行衍生,用于解決多工序、多資源模型限制條件下的排程。
1.1SolverManager批量并行規(guī)劃
講解通過SolverManager進(jìn)行多數(shù)據(jù)集并行計算
2實(shí)例演練
2.1基礎(chǔ)應(yīng)用 - 任務(wù)資源分配
設(shè)計、并開發(fā)一個將任務(wù)分配到合適的資源,并實(shí)現(xiàn)成本優(yōu)化的規(guī)則程序
2.2高級應(yīng)用 – 時間規(guī)劃
設(shè)計開發(fā)一個將任務(wù)分配到指定的資源,并為每個任務(wù)分配開始時間的規(guī)則程序,即APS原型。
2.3簡介具體代表性的官方示例(抽取較具代表性的三個案例講解)
講解CloudBalance, TaskAssiging及Vehicle Routingdg三個表性的案例。
2.4Project Job Scheduling模型詳解
基于Project Job Scheduling講解排程場景中通用的規(guī)劃模型 – PJS
2.4.1PJS模塊的常見結(jié)構(gòu)
講解PSJ模型及其衍生模型的常見結(jié)構(gòu)與適用場景。
2.4.2PJS模型在OptaPlanner中的實(shí)現(xiàn)
通過OptaPlanner中的Project Job Scheduling示例,講解PSJ模型的具體實(shí)現(xiàn)