180 likes | 201 Views
Distributed Scheduling. What is Distributed Scheduling?. Scheduling: A resource allocation problem Often very complex set of constraints Tied directly to planning: the binding between the plan and the resources Distributed: Each node has only partial information (non-global)
E N D
What is Distributed Scheduling? • Scheduling: • A resource allocation problem • Often very complex set of constraints • Tied directly to planning: the binding between the plan and the resources • Distributed: • Each node has only partial information (non-global) • No centralized algorithm – processing is distributed to each node
Dynamic vs. Static • Many agent systems include elements of uncertainty • lack of progress on tasks (also early completion) • resource failure • newly available resources or plans • incomplete information • quality of solution • Proactive – robust schedules provide alternatives and redundancy for dynamism • Reactive – schedules are repaired in response to changes
Approaches • Guaranteed optimality • search • constraint propagation • dynamic programming • Best effort • heuristic based search (often domain specific) • iterative improvement (local search/genetic algorithms)
Job Shop Scheduling • Allocation of m tasks to n resources • Each task has a release time, duration, resource requirements, and ordering constraints • Each resource has a capacity constraint • A solution to the problem is a feasible schedule that includes start times and resource assignments for each task
Job Shop Scheduling (cont’) • An objective function can be used to evaluate the goodness of a schedule • May include weights for the completion of each task by a certain deadline and penalties for lateness. May also include rewards for early completion. • Considered one of the hardest CSPs
Constraint Satisfaction Problems (CSP) • Definition: • V = A set of variables • Di = A domain of values for Vi • C = A set of boolean constraints on V • Order of Constraints: • Unary: V1 != red • Binary: V1!=V2 • N-ary: max(V1, V2, V3) > 5 • NP-Complete! • Can represent 3-SAT as a CSP
Techniques for Solving CSPs • Depth-first search • Backtracking • Checks for constraint violations before generating successors for DFS • Arc-consistency • When an assignment is made, all inconsistent values are removed from the possible assignments for other variables (often used in preprocessing) • Heuristics • Value ordering • Most Constrained Variable • Least Constraining Value Assignment • Iterative improvement • Hill climbing/annealing • Heuristic repair: min-conflicts
Map Coloring as CSP • Constraint Graph • DWA={red, green, blue}
Distributed CSP • Variables and constraints distributed among agents • No agent controls all variables or knows all constraints • Naturally captures many problems in multiagent systems • Coordination tasks, conflicts between actions, etc • DisCSP first formalized by Yokoo et al 1998. • Why is distribution needed? • Privacy • No central control • Communication costs • Autonomy • Robustness
Meeting Scheduling Problem • A set of agents want to schedule some meetings • M1: A1, A3 • M2: A1, A2 • M3: A2, A4, A5 • Timeslots: [8-9am, 9-10am, 10-11am, ...] • Each agent can attend one meeting at a time
MSP (cont’) Variables represent what time slot an agent attends a meeting Equality constraints for variables of the same meeting Inequality constraints for variables of the same agent
Distributed CSP Algorithms (cont’) • Asynchronous Weak Commitment • dynamic prioritization of variables • uses the min-conflict heuristic • Distributed Breakout • mutual exclusion among neighbors
SynchronousBacktracking essentially the original backtracking algorithm Asynchronous Backtracking total order of nodes Distributed CSP Algorithms
Problems with CSP • What if no solution exists? • What if multiple solutions exist? • In both cases we want to know which assignment is the “best” • Generalizes into the Constraint Optimization Problem • Constraints are no longer boolean • The goal is now to obtain the highest global utility
Constraint Optimization Problem (COP) • Definition: • V = A set of variables • Di = A domain of values for Vi • U = A set of utility functions on V • Goal is to optimize global utility • can also model minimal cost problems by using negative utilities