Practical Constraint Systems for Building Interactive Applications

Tutorial Objectives

Section I: Introduction

What Are Constraints?

Domains

It’s Easier To State Constraints Than To Solve Them

Refinement Semantics (1)

Refinement Semantics (2)

Perturbation Semantics (1)

Perturbation Semantics (2)

Questions and Issues

Section II: Local Propagation

One-way Constraints Example #1

One-way Constraints Example #2

One-way Constraint Algorithms

Lazy Incremental Algorithm

Hudson Algorithm: Change

Hudson Algorithm: Request + Different

Hudson Algorithm: Request + Same

One-way Constraints Scorecard

One-way Constraint Systems

Multi-way Local Propagation Constraints Example #1

Multi-way Local Propagation Constraints Example #2

Multi-way Local Propagation Constraints Example #3

Multi-way Local Propagation Constraint Algorithms

Known Values

Degrees of Freedom

Sample Constraint Graph

Multi-way Local Propagation Constraint Scorecard

Multi-way Local Propagation Constraint Systems

Hierarchical Local Propagation Constraints Example #1

Principle of Least Astonishment

Hierarchical Local Propagation Constraints Example #2

Hierarchical Local Propagation Constraints Example #3

Hierarchical Local Propagation Constraints Example #4

Constraint Hierarchies

Hierarchy Example #1

Hierarchy Example #1

Hierarchy Example #2

Hierarchy Example #2

Hierarchy Example #3

Hierarchies and Refinement

Comparator Framework (1)

Comparator Framework (2)

Predicate Comparator Example

Metric Comparator Example

Existence of Solutions

Some Helpful Propositions

Hierarchical Local Propagation Constraints Algorithms

DeltaBlue

DeltaBlue: Walkabout Strength

DeltaBlue: Walkabout Strength

DeltaBlue: Adding

DeltaBlue: Adding

DeltaBlue: Removing

DeltaBlue: Removing

DeltaBlue: Removing

SkyBlue

SkyBlue: Overview

QuickPlan

QuickPlan: Overview

Hierarchical Local Propagation Constraints Scorecard

Hierarchical Local Propagation Constraint Systems

Workpage #1a

Workpage #1b

Workpage #1c

Workpage #1d

Section III: Non-Local Propagation Constraints

Cycle Example #1

Cycle Example #2

Simultaneous Linear Equation Algorithms

Semi-Symbolic Linear Equation Solver

Semi-Symbolic Linear Equation Solver

Semi-Symbolic Linear Equation Solver

Linear Equation Solver Example

Linear Equation Solver Example

Linear Equation Solver Example

Simultaneous Linear Equation Scorecard

Simultaneous Linear Equation Systems

Inequalities Example #1

Inequalities Example #2

Inequality Algorithms

Local Propagation for Inequalities (1)

Local Propagation for Inequalities (2)

Local Propagation for Inequalities (3)

Example of Local Propagation for Inequalities (1)

Example of Local Propagation for Inequalities (2)

Example of Local Propagation for Inequalities (3)

Bounded Linear Constraint Solver

Simplex Algorithm Review

Simplex-Based Solver (1)

Simplex-Based Solver (2)

Differences between Simplex-Based Solver and Standard Simplex Algorithm

Inequality Scorecard

Inequality Constraint Systems

Non-Linear Numeric Constraints Example #1

Non-Linear Numeric Constraint Algorithms

Non-Linear Numeric Constraints Scorecard

Workpage #2

Workpage #2b

Section IV: Other Constraints

Constraints Over Finite Domains Example #1

Constraints Over Finite Domains - Algorithms

Constraints Over Finite Domains - Algorithms (2)

Constraints Over Finite Domains Scorecard

Uses for Constraints Over Finite Domains

Dynamically Changeable Constraint Sets Example #1

Dynamically Changeable Constraint Sets Example #2

Dynamically Changeable Constraint Sets Algorithms

Dynamically Changeable Constraint Sets Scorecard

Systems Supporting Dynamically Changeable Constraint Sets

Section V: Constraints In Use

Integration via ENVY/Constraints

ENVY/Constraints

Building Interactive Graphical Applications (1)

Building Interactive Graphical Applications (2)

Building Interactive Graphical Applications (3)

Building Interactive Graphical Applications (4)

Building Interactive Graphical Applications (5)

The Good, The Bad, and The Ugly

Workpage #3

Summary

Author’s Addresses

Internet Instructions