This file is indexed.

/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">&lt;&lt; Prev</A></TD><TD><A href="node28.html">- Up -</A></TD><TD><A href="node32.html#section.schedule.misc">Next &gt;&gt;</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&nbsp;</CODE><CODE>+<I>TasksLIvv</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>StartR</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>DurR</I></CODE><CODE>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</CODE><CODE>+<I>UseR</I></CODE><CODE>&nbsp;</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&nbsp;=&nbsp;tasks([a&nbsp;b]&nbsp;[c&nbsp;d&nbsp;e])<BR>Start&nbsp;=&nbsp;{FD<SPAN class="keyword">.</SPAN>record&nbsp;start&nbsp;[a&nbsp;b&nbsp;c&nbsp;d&nbsp;e]&nbsp;0<SPAN class="keyword">#</SPAN>FD<SPAN class="keyword">.</SPAN>sup}<BR>Dur&nbsp;&nbsp;&nbsp;=&nbsp;dur(a:5&nbsp;b:2&nbsp;c:7&nbsp;d:4&nbsp;e:9)<BR>Use&nbsp;&nbsp;&nbsp;=&nbsp;use(a:5&nbsp;b:3&nbsp;c:2&nbsp;d:3&nbsp;e:5)<BR>Cap&nbsp;&nbsp;&nbsp;=&nbsp;cap(5&nbsp;2)<BR>{Schedule<SPAN class="keyword">.</SPAN>cumulative&nbsp;Tasks&nbsp;Start&nbsp;Dur&nbsp;Use&nbsp;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&nbsp;<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&nbsp;</CODE><CODE>+<I>TasksLIvv</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>StartR</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>DurR</I></CODE><CODE>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</CODE><CODE>+<I>UseR</I></CODE><CODE>&nbsp;</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&nbsp;</CODE><CODE>+<I>TasksLIvv</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>StartR</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>DurR</I></CODE><CODE>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</CODE><CODE>+<I>UseR</I></CODE><CODE>&nbsp;</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&nbsp;</CODE><CODE>+<I>TasksLIvv</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>StartR</I></CODE><CODE>&nbsp;</CODE><CODE>+<I>DurR</I></CODE><CODE>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</CODE><CODE>+<I>UseR</I></CODE><CODE>&nbsp;</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">&lt;&lt; Prev</A></TD><TD><A href="node28.html">- Up -</A></TD><TD><A href="node32.html#section.schedule.misc">Next &gt;&gt;</A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.ps.uni-sb.de/~duchier/">Denys&nbsp;Duchier</A>, <A href="http://www.ps.uni-sb.de/~kornstae/">Leif&nbsp;Kornstaedt</A>, <A href="http://www.ps.uni-sb.de/~homik/">Martin&nbsp;Homik</A>, <A href="http://www.ps.uni-sb.de/~tmueller/">Tobias&nbsp;Müller</A>, <A href="http://www.ps.uni-sb.de/~schulte/">Christian&nbsp;Schulte</A> and&nbsp;<A href="http://www.info.ucl.ac.be/~pvr">Peter&nbsp;Van Roy</A><BR><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>