<!--
  - Authors:
  -   Christian Schulte <schulte@ps.uni-sb.de>
  -   Gert Smolka <smolka@dfki.de>
  -
  - Contributors:
  -   Daniel Simon <dansim@ps.uni-sb.de> (porting to sgml)
  -   Andy Walter <anwalt@ps.uni-sb.de> (porting to sgml)
  -   Andrea Panati <panati@di.unito.it> (typo fixes)
  -   
  - Copyright:
  -   Christian Schulte, 1998
  -   Gert Smolka, 1998
  -
  - Last change:
  -   $Date: 1999-09-10 14:00:30 +0200 (Fri, 10 Sep 1999) $ by $Author: schulte $
  -   $Revision: 12014 $
  -
  - This file is part of Mozart, an implementation
  - of Oz 3
  -    http://www.mozart-oz.org
  -
  - See the file "LICENSE" or
  -    http://www.mozart-oz.org/LICENSE.html
  - for information on usage and redistribution
  - of this file, and for a DISCLAIMER OF ALL
  - WARRANTIES.
  -
  -->

<!DOCTYPE Book SYSTEM "ozdoc.dtd" [

<!-- Extension to the DTD -->
<!ENTITY % proglang.values.local "|lambda">
<!ENTITY % author.class "author|author.extern|comic">
<!ENTITY % picture.element "picture|picture.extern|picture.choice">
<!ELEMENT comic - O (%picture.element;)>
<!ENTITY % EXTRA "IGNORE">

<!-- Include Files -->
<!ENTITY intro       SYSTEM "intro.sgml">
<!ENTITY constraints SYSTEM "constraints.sgml">
<!ENTITY problem     SYSTEM "problem.sgml">
<!ENTITY elimination SYSTEM "elimination.sgml">
<!ENTITY scripts     SYSTEM "scripts.sgml">
<!ENTITY minimizing  SYSTEM "minimizing.sgml">
<!ENTITY propagators SYSTEM "propagators.sgml">
<!ENTITY reified     SYSTEM "reified.sgml">
<!ENTITY userdefined SYSTEM "user-defined.sgml">
<!ENTITY bab         SYSTEM "bab.sgml">
<!ENTITY scheduling  SYSTEM "scheduling.sgml">
<!ENTITY packing     SYSTEM "packing.sgml">
<!ENTITY traps       SYSTEM "traps.sgml">
<!ENTITY goldenrules SYSTEM "golden-rules.sgml">
<!ENTITY data        SYSTEM "data.sgml">

<!-- Abbreviations -->
<!ENTITY lt "<">
<!ENTITY gt ">">
<!ENTITY Oz "Oz">
<!ENTITY ampersand "&">
<!ENTITY wrt "with respect to">
<!ENTITY eg "e.g.">
<!ENTITY cdots "...">
<!ENTITY fsp " ">

<!-- Processing Instructions -->
<!ENTITY nbsp PI "nbsp">
<!ENTITY ellipsis PI "ellipsis">
<!ENTITY slash PI "slash">
<!ENTITY ie PI "ie">
<!ENTITY resp PI "resp">
<!ENTITY eg PI "eg">
<!ENTITY etc PI "etc">
<!ENTITY LaTeX PI "LaTeX">

]>

<Book proglang=oz>
  <Front>

    <Meta name="html.split" value="chapter.intro">

    <Meta name="html.split" value="chapter.constraints">
    <Meta name="html.split" value="section.constraints.constraints">
    <Meta name="html.split" value="section.constraints.propagation">
    <Meta name="html.split" value="section.constraints.spaces">
    <Meta name="html.split" value="section.constraints.intdom">
    <Meta name="html.split" value="section.constraints.incomplete">
    <Meta name="html.split" value="section.constraints.dast">
    <Meta name="html.split" value="section.constraints.example">
    <Meta name="html.split" value="section.constraints.distribution">
    <Meta name="html.split" value="section.constraints.order">
    <Meta name="html.split" value="section.constraints.models">

    <Meta name="html.split" value="chapter.problem">
    <Meta name="html.split" value="section.problem.script">
    <Meta name="html.split" value="section.problem.money">
    <Meta name="html.split" value="section.problem.explorer">
    <Meta name="html.split" value="section.problem.primitives">
    <Meta name="html.split" value="section.problem.watching">
    <Meta name="html.split" value="section.problem.safe">
    <Meta name="html.split" value="problem.ex.b">

    <Meta name="html.split" value="chapter.elimination">
    <Meta name="html.split" value="section.elimination.grocery">
    <Meta name="html.split" value="section.elimination.family">
    <Meta name="html.split" value="section.elimination.zebra">

    <Meta name="html.split" value="chapter.scripts">
    <Meta name="html.split" value="section.scripts.queens">
    <Meta name="html.split" value="section.scripts.change">

    <Meta name="html.split" value="chapter.minimizing">
    <Meta name="html.split" value="section.minimizing.mapcolor">
    <Meta name="html.split" value="section.minimizing.conference">

    <Meta name="html.split" value="chapter.propagators">
    <Meta name="html.split" value="section.propagators.fractions">
    <Meta name="html.split" value="section.propagators.pythagoras">
    <Meta name="html.split" value="section.propagators.squares">
    <Meta name="html.split" value="section.propagators.exercises">

    <Meta name="html.split" value="chapter.reified">
    <Meta name="html.split" value="section.reified.started">
    <Meta name="html.split" value="section.reified.photo">
    <Meta name="html.split" value="section.reified.srat">
    <Meta name="html.split" value="section.reified.bin">
    <Meta name="html.split" value="reified.ex.a">
    <Meta name="html.split" value="reified.ex.b">
    <Meta name="html.split" value="reified.ex.c">
    <Meta name="html.split" value="reified.ex.d">
    <Meta name="html.split" value="reified.ex.e">

    <Meta name="html.split" value="chapter.user-defined">
    <Meta name="html.split" value="section.user-defined.naive">
    <Meta name="html.split" value="section.user-defined.split">

    <Meta name="html.split" value="chapter.bab">
    <Meta name="html.split" value="section.bab.align">
    <Meta name="html.split" value="section.bab.warehouses">

    <Meta name="html.split" value="chapter.scheduling">
    <Meta name="html.split" value="section.scheduling.house">
    <Meta name="html.split" value="section.scheduling.bridge">
    <Meta name="html.split" value="section.scheduling.edgefinding">
    <Meta name="html.split" value="section.scheduling.strongser">
    <Meta name="html.split" value="section.scheduling.hard">

    <Meta name="html.split" value="chapter.packing">

    <Meta name="html.split" value="appendix.traps">

    <Meta name="html.split" value="appendix.golden-rules">

    <Meta name="html.split" value="appendix.data">


    <Meta name="html.split.toc"     value="">
    <Meta name="html.split.bib"     value="">
    <Meta name="html.split.answers" value="">
    <Meta name="html.split.index"   value="">

    <Meta name=ozversion value="3.0">
    <Meta name=status value=revised>

    <Meta name=latex.package value="pstricks">
    <Meta name=latex.package value="rotate">
    <Meta name=latex.package value="pifont">
    <Meta name=latex.package value="pst-node">
    <Meta name=latex.package value="epsfig">

    <Meta name=latex.input   value="fdt-utils.tex">

    <Meta name="latex.table.spec" arg1="fig.conozsolver.table" arg2="@{}ll@{}">
    <Meta name="latex.picture.width" arg1="pic.explorer-a" arg2="0.44\linewidth">
    <Meta name="latex.picture.width" arg1="pic.explorer-b" arg2="0.44\linewidth">
    <Meta name="latex.picture.width" arg1="pic.bridge-tree-1" arg2="0.8\linewidth">
    <Meta name="latex.picture.width" arg1="pic.bridge-tree-2" arg2="0.5\linewidth">

    <Meta name="latex.picture.width" arg1="pic.q1" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q2" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q3" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q4" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q5" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q6" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q7" arg2="1cm">
    <Meta name="latex.picture.width" arg1="pic.q8" arg2="1cm">

    <Meta name="latex.picture.width" arg1="pic.bridgeProblem" arg2="">
    <Meta name="latex.picture.width" arg1="pic.gantt" arg2="">

    <Title/Finite Domain Constraint Programming in &Oz;. A Tutorial./
      <Author.Extern to="author.db" key="Christian.Schulte"> 
      <Author.Extern to="author.db" key="Gert.Smolka">
    <Comic>
      <Picture.Choice>
	<Picture.Extern to="fdt.gif" type=gif>
      </Picture.Choice>
    <Abstract>
    This document is an introduction
    to constraint programming in &Oz;.  We restrict our
    attention to combinatorial problems that can be
    stated with variables ranging over finite sets of
    nonnegative integers.  Problems in this class
    range from puzzles to real world applications as
    diverse as scheduling, ware house allocation,
    configuration and placement.
    </Abstract>
  <Body proglang=oz>
   &intro;
   &constraints;
   &problem;
   &elimination;
   &scripts;
   &minimizing;
   &propagators;
   &reified;
   &userdefined; 
   &bab;
   &scheduling; 
<!--   &packing; -->
   &traps; 
   &goldenrules; 
   &data;


  <Back>
    <Bib.Extern id="Caseau.95" to="fdt.bib" key="Caseau.95"> 
    <Bib.Extern id="Caseau.94a" to="fdt.bib" key="Caseau.94a"> 
    <Bib.Extern id="Carlier.89" to="fdt.bib" key="Carlier.89"> 
    <Bib.Extern id="Carlier.94" to="fdt.bib" key="Carlier.94"> 
    <Bib.Extern id="Adams.88" to="fdt.bib" key="Adams.88"> 
    <Bib.Extern id="Martin.96" to="fdt.bib" key="Martin.96"> 
    <Bib.Extern id="Bartusch.83" to="fdt.bib" key="Bartusch.83"> 
    <Bib.Extern id="Applegate.91" to="fdt.bib" key="Applegate.91"> 
    <Bib.Extern id="Nuijten.94" to="fdt.bib" key="Nuijten.94"> 
    <Bib.Extern id="Wuertz.96b" to="fdt.bib" key="Wuertz.96b"> 
    <Bib.Extern id="Garey.79" to="fdt.bib" key="Garey.79"> 
    <Bib.Extern id="Muth.63" to="fdt.bib" key="Muth.63"> 
    <Bib.Extern id="Baptiste.95a" to="fdt.bib" key="Baptiste.95a"> 
    <Bib.Extern id="Henz.96" to="fdt.bib" key="Henz.96"> 
</Book>
