/usr/share/mozart/doc/system/node31.html is in mozart-doc 1.4.0-8ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>6.3 Cumulative Scheduling</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node30.html#section.schedule.distribute"><< Prev</A></TD><TD><A href="node28.html">- Up -</A></TD><TD><A href="node32.html#section.schedule.misc">Next >></A></TD></TR></TABLE><DIV id="section.schedule.cumulative"><H2><A name="section.schedule.cumulative">6.3 Cumulative Scheduling</A></H2><P>The following conventions hold. The argument <I>StartR</I> is a record of finite domain integers denoting start times of tasks. The argument <I>DurR</I> is a record of integers denoting durations of tasks. The argument <I>UseR</I> is a record of integers denoting the resource usage of tasks. The arities of <I>StartR</I>, <I>DurR</I>, and <I>UseR</I> must be equal. </P><P>The integers and literals occurring in <I>TasksLIvv</I> denote the tasks to be scheduled. Each element of <I>TasksLIvv</I> must occur in the arity of <I>StartR</I>. The tasks occurring in the vectors <I>TasksLIv</I> are scheduled on the same resource. The vector <I>CapIv</I> is a vector of integers denoting the capacity of the resources. The number of elements in the vectors <I>TasksLIvv</I> and <I>CapIv</I> must be equal. </P><P></P><DL><DT><A name="label297"></A> <CODE>cumulative</CODE></DT><DD><BLOCKQUOTE class="synopsis"><P></P><BLOCKQUOTE class="code"><CODE>{Schedule<SPAN class="keyword">.</SPAN>cumulative </CODE><CODE>+<I>TasksLIvv</I></CODE><CODE> </CODE><CODE>+<I>StartR</I></CODE><CODE> </CODE><CODE>+<I>DurR</I></CODE><CODE> <BR> </CODE><CODE>+<I>UseR</I></CODE><CODE> </CODE><CODE>+<I>CapIv</I></CODE><CODE>}</CODE></BLOCKQUOTE><P></P></BLOCKQUOTE></DD><DD><P>creates a propagator, which states that for all resources <IMG alt="i" src="latex1.png"> and time instants <IMG alt="x" src="latex102.png">, the resource usage does not exceed the available capacity: </P><BLOCKQUOTE><P><IMG alt="\sum_{\hsmash{\{t \in \mbox{TasksA}_i \mid \mbox{StartR.}t \leq x < \mbox{StartR.}t +
\mbox{DurR.}t\}}} \mbox{UseR.}t \leq \mbox{CapI}_i" src="latex103.png"></P></BLOCKQUOTE><P> </P><P>The propagator does not use edge-finding. </P><P>Assume that we have the following resources and tasks: </P><TABLE align="center" bgcolor="#f0f0e0"><TR valign="top"><TH><P>Resource</P></TH><TH><P>Capacity</P></TH></TR><TR valign="top"><TD><P><CODE>r</CODE></P></TD><TD><P><CODE>5</CODE></P></TD></TR><TR valign="top"><TD><P><CODE>s</CODE></P></TD><TD><P><CODE>2</CODE></P></TD></TR></TABLE><P> </P><TABLE align="center" bgcolor="#f0f0e0"><TR valign="top"><TH><P>Task</P></TH><TH><P>Resource</P></TH><TH><P>Duration</P></TH><TH><P>Usage</P></TH></TR><TR valign="top"><TD><P><CODE>a</CODE></P></TD><TD><P><CODE>r</CODE></P></TD><TD><P><CODE>5</CODE></P></TD><TH><P><CODE>5</CODE></P></TH></TR><TR valign="top"><TD><P><CODE>b</CODE></P></TD><TD><P><CODE>r</CODE></P></TD><TD><P><CODE>2</CODE></P></TD><TH><P><CODE>3</CODE></P></TH></TR><TR valign="top"><TD><P><CODE>c</CODE></P></TD><TD><P><CODE>s</CODE></P></TD><TD><P><CODE>7</CODE></P></TD><TH><P><CODE>2</CODE></P></TH></TR><TR valign="top"><TD><P><CODE>d</CODE></P></TD><TD><P><CODE>s</CODE></P></TD><TD><P><CODE>4</CODE></P></TD><TH><P><CODE>3</CODE></P></TH></TR><TR valign="top"><TD><P><CODE>e</CODE></P></TD><TD><P><CODE>s</CODE></P></TD><TD><P><CODE>9</CODE></P></TD><TH><P><CODE>5</CODE></P></TH></TR></TABLE><P> Provided that no limit on the start times of the tasks are given, the following </P><BLOCKQUOTE class="code"><CODE>Tasks = tasks([a b] [c d e])<BR>Start = {FD<SPAN class="keyword">.</SPAN>record start [a b c d e] 0<SPAN class="keyword">#</SPAN>FD<SPAN class="keyword">.</SPAN>sup}<BR>Dur = dur(a:5 b:2 c:7 d:4 e:9)<BR>Use = use(a:5 b:3 c:2 d:3 e:5)<BR>Cap = cap(5 2)<BR>{Schedule<SPAN class="keyword">.</SPAN>cumulative Tasks Start Dur Use Cap}</CODE></BLOCKQUOTE><P> propagates that the resource usage does not exceed the resources' capacities (for <CODE>FD<SPAN class="keyword">.</SPAN>record</CODE> see <A href="node18.html#fd.record">*</A>). </P></DD><DT><A name="label299"></A> <CODE>cumulativeEF</CODE></DT><DD><BLOCKQUOTE class="synopsis"><P></P><BLOCKQUOTE class="code"><CODE>{Schedule<SPAN class="keyword">.</SPAN>cumulativeEF </CODE><CODE>+<I>TasksLIvv</I></CODE><CODE> </CODE><CODE>+<I>StartR</I></CODE><CODE> </CODE><CODE>+<I>DurR</I></CODE><CODE> <BR> </CODE><CODE>+<I>UseR</I></CODE><CODE> </CODE><CODE>+<I>CapIv</I></CODE><CODE>}</CODE></BLOCKQUOTE><P></P></BLOCKQUOTE></DD><DD><P>creates a propagator, which states that for all resources <IMG alt="i" src="latex1.png"> and time instants <IMG alt="x" src="latex102.png">, the resource usage does not exceed the available capacity: </P><BLOCKQUOTE><P><IMG alt="\sum_{\hsmash{\{t \in \mbox{TasksA}_i \mid \mbox{StartR.}t \leq x < \mbox{StartR.}t +
\mbox{DurR.}t\}}} \mbox{UseR.}t \leq \mbox{CapI}_i" src="latex103.png"></P></BLOCKQUOTE><P></P><P></P><P>This propagator generalizes the edge-finding propagation in <CODE>Schedule<SPAN class="keyword">.</SPAN>serialized</CODE> to deal with non-unary resources. </P></DD><DT><A name="label301"></A> <CODE>cumulativeTI</CODE></DT><DD><BLOCKQUOTE class="synopsis"><P></P><BLOCKQUOTE class="code"><CODE>{Schedule<SPAN class="keyword">.</SPAN>cumulativeTI </CODE><CODE>+<I>TasksLIvv</I></CODE><CODE> </CODE><CODE>+<I>StartR</I></CODE><CODE> </CODE><CODE>+<I>DurR</I></CODE><CODE> <BR> </CODE><CODE>+<I>UseR</I></CODE><CODE> </CODE><CODE>+<I>CapIv</I></CODE><CODE>}</CODE></BLOCKQUOTE><P></P></BLOCKQUOTE></DD><DD><P>creates a propagator, which states that for all resources <IMG alt="i" src="latex1.png"> and time instants <IMG alt="x" src="latex102.png">, the resource usage does not exceed the available capacity: </P><BLOCKQUOTE><P><IMG alt="\sum_{\hsmash{\{t \in \mbox{TasksA}_i \mid \mbox{StartR.}t \leq x < \mbox{StartR.}t +
\mbox{DurR.}t\}}} \mbox{UseR.}t \leq \mbox{CapI}_i" src="latex103.png"></P></BLOCKQUOTE><P> </P><P>This propagator generalizes the edge-finding propagation in <CODE>Schedule<SPAN class="keyword">.</SPAN>taskIntervals</CODE> to deal with non-unary resources. </P></DD><DT><A name="label303"></A> <CODE>cumulativeUp</CODE></DT><DD><BLOCKQUOTE class="synopsis"><P></P><BLOCKQUOTE class="code"><CODE>{Schedule<SPAN class="keyword">.</SPAN>cumulativeUp </CODE><CODE>+<I>TasksLIvv</I></CODE><CODE> </CODE><CODE>+<I>StartR</I></CODE><CODE> </CODE><CODE>+<I>DurR</I></CODE><CODE> <BR> </CODE><CODE>+<I>UseR</I></CODE><CODE> </CODE><CODE>+<I>CapIv</I></CODE><CODE>}</CODE></BLOCKQUOTE><P></P></BLOCKQUOTE></DD><DD><P>creates a propagator, which states that for all resources <IMG alt="i" src="latex1.png"> and time instants <IMG alt="x" src="latex102.png">, the resource is at least as large as the available capacity: </P><BLOCKQUOTE><P><IMG alt="\sum_{\hsmash{\{t \in \mbox{TasksA}_i \mid \mbox{StartR.}t \leq x < \mbox{StartR.}t +
\mbox{DurR.}t\}}} \mbox{UseR.}t \geq \mbox{CapI}_i" src="latex104.png"></P></BLOCKQUOTE><P></P></DD></DL><P> </P></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node30.html#section.schedule.distribute"><< Prev</A></TD><TD><A href="node28.html">- Up -</A></TD><TD><A href="node32.html#section.schedule.misc">Next >></A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.ps.uni-sb.de/~duchier/">Denys Duchier</A>, <A href="http://www.ps.uni-sb.de/~kornstae/">Leif Kornstaedt</A>, <A href="http://www.ps.uni-sb.de/~homik/">Martin Homik</A>, <A href="http://www.ps.uni-sb.de/~tmueller/">Tobias Müller</A>, <A href="http://www.ps.uni-sb.de/~schulte/">Christian Schulte</A> and <A href="http://www.info.ucl.ac.be/~pvr">Peter Van Roy</A><BR><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|