CSE 460 Hybrid Optimization In this section we will look at hybrid search methods That combine stochastic search with systematic search Problem Classes for Hybrid Search Constructive Meta-Heuristics Constraint Propagation Integrating Constraint Propagation into Constructive Meta-Heuristics
Ant Colony Optimization Constructive Meta-Heuristics Edge Selection Pheromone Deposit
Ant Colony Optimization Constructive Meta-Heuristics Edge Selection Pheromone Deposit
Ant Colony Optimization Constructive Meta-Heuristics Edge Selection Pheromone Deposit
Ant Colony Optimization Constructive Meta-Heuristics Edge Selection Pheromone Deposit
Ant Colony Optimization Constructive Meta-Heuristics Edge Selection Pheromone Deposit
Ant Colony Optimization Constructive Meta-Heuristics Edge Selection Pheromone Deposit
Job Scheduling Release timeDeadline Processing timeSet-up time Job time window Job 4Job 1Job 2Job 3Job 5 Job sequence schedule time
ACO for Scheduling Edge Length: set-up time / tardiness... Visibility (Heuristics):shortest setup time / earliest completion time shortest processing time / minimum slack time … Job 4 Job 1 Job 2 Job 3
Adaptiveness vs. Optimality Optimal route is only found at the expense of adaptiveness ECT: fair+ elitistECT: elitist only ECT: fair+ elitist + 2opt (distribution can be achieved with other parameter changes) Elitist reward simulates non-linear distorted reward function
Constraint Types Feasibility Hard Deadlines Hard Release Times Job Priorities Dependencies Setup-times sequence dependent Interdependent task couplings hard: fixed delay soft: delay is cost component
Constraint Types Hard Deadlines Hard Release Times Job Priorities
Search Method Types Systematic (Enumeration) Constraint Programming Integer Programming / MIP Beam Search Heuristic ACO GA / EC GRASP EDA Tabu SA
Search Method Types Tree Search Constructive Stochastic Search Systematic (Enumeration) Constraint Programming Integer Programming / MIP Beam Search Heuristic ACO GA / EC GRASP EDA Tabu (deterministic) SA (not constructive)
Degrees of Tightness tight loose T1T1 T2T2 Stochastic Search (Meta Heuristics) Systematic Search (Enumeration) intermediate T3T3 Hybrid Methods !
Degrees of Tightness tight loose T1T1 T2T2 intermediate T3T3 Hybrid Methods ! Stochastic Search (Meta Heuristics) Systematic Search (Enumeration)
Constraint Programming Systematic search Domains: FD, N, R, … Explicit High-Level Modelling Search Space Reduction by Domain Reduction (in FD) CP(FD) = Tree Search + Tree Pruning
Constraint Programming Systematic search Domains: FD, N, R, … Explicit High-Level Modelling Search Space Reduction by Domain Reduction (in FD) CP(FD) = Tree Search + Tree Pruning
Constraint Programming Systematic search Domains: FD, N, R, … Explicit High-Level Modelling Search Space Reduction by Domain Reduction (in FD) CP(FD) = Tree Search + Tree Pruning
Constraint Programming Systematic search Domains: FD, N, R, … Explicit High-Level Modelling Search Space Reduction by Domain Reduction (in FD) CP(FD) = Tree Search + Tree Pruning
Constraint Programming Systematic search Domains: FD, N, R, … Explicit High-Level Modelling Search Space Reduction by Domain Reduction (in FD) CP(FD) = Tree Search + Tree Pruning
CP(FD)=Tree Search + Pruning Very efficient for tight problems Degenerates into full enumeration Heuristic ordering programmed manually, Value ordering Variable ordering no automatic learning of order objective typically as constraint Balance propagation cost with search cost
Constraint Handling in MH
require 1.Explicit Model 2.Customized Algorithms
CP - ACO Hybrid learning via reinforcement ACO + CP feasible construction / search space pruning
Constraint Programming procedure label(list xs) if xs=nil then return true else let x=first(xs) in if not bind(x) then return false else begin if (label(rest(xs)) return true else begin unbind(x) return label(xs) end end. Algorithm CP-basic setup domains for x 1, …, x n post initial constraints label([x 1, …, x n ]) end.
Coupling of Problem Models
CP with ACO Algorithm CP-with-ACO for each ant do begin setup domains for x 1, …, x n post initial constraints if label-probabilistically([x 1, …, x n ]) then update pheromone for global best solution end end. Labeling probabilistic value ordering based on pheromone amount performs “local” pheromone evaporation
Algorithm CP-ACS for JSP initialize solver; post initial constraints; initialize pheromone ; place each ant on a randomly chosen city; for t := 1 to t_max do reset solver state for k := 1 to #ants do T k := nil; Mark all jobs as unscheduled for ant k; While n<#jobs & feasible do begin n := n+1; i := last job scheduled do C := fd_domain(job n ) choose next job j C with feasible := post(job n =j) if not feasible then post(job n j) until feasible or C={} if feasible then begin T k := append(T k, j) evaporate locally; mark job j as scheduled end end; update pheromone levels & best solution memory.
CP-ACO Model for JSP Setup 1 Setup 2 … Domain restrictions ACO Model based on Job-IDs Job ID 1 Start 1 End 1 Release 1 Duration 1 Due 1 Job ID 2 Start 2 End 2 Release 2 Duration 2 Due 2
CP-ACO Model for JSP Setup 1 Setup 2 … Coupling to Data ACO Model based on Job-IDs Job ID 1 Start 1 End 1 Release 1 Duration 1 Due 1 Job ID 2 Start 2 End 2 Release 2 Duration 2 Due 2
CP-ACO Model for JSP Setup 1 Setup 2 … Internal Coupling ACO Model based on Job-IDs Job ID 1 Start 1 End 1 Release 1 Duration 1 Due 1 Job ID 2 Start 2 End 2 Release 2 Duration 2 Due 2
CP-ACO Model for JSP Setup 1 Setup 2 … Chaining ACO Model based on Job-IDs Job ID 1 Start 1 End 1 Release 1 Duration 1 Due 1 Job ID 2 Start 2 End 2 Release 2 Duration 2 Due 2
CP-ACO Model for JSP Setup1Setup 2 … Chaining ACO Model based on Job-IDs Job ID 1 Start 1 End 1 Release 1 Duration 1 Due 1 Job ID 2 Start 2 End 2 Release 2 Duration 2 Due 2
Pure CP Model for JSP Black-Box Constraints Specialized scheduling solver Job #1 Start 1 End 1 Release 1 Duration 1 Due 1 Job #2 Start 2 End 2 Release 2 Duration 2 Due Job #n Start n End n Release n Duration n Due n based on Job Times (Start/End)
Coupling of Constraint Models Cross-Propagation
Evaluation
Conclusions Best for intermediate tightness requires fewer labeling steps than CP better results than pure ACO Runtime tradeoff not entirely clear propagation can be costly backtracking should be exploited