/usr/share/mozart/doc/system/MT10.oz 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 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | %%%
%%% Authors:
%%% Christian Schulte <schulte@ps.uni-sb.de>
%%%
%%% Copyright:
%%% Christian Schulte, 1998
%%%
%%% Last change:
%%% $Date: 2001-08-10 16:51:21 +0200 (Fri, 10 Aug 2001) $ by $Author: schulte $
%%% $Revision: 14099 $
%%%
%%% 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
%%% for information on usage and redistribution
%%% of this file, and for a DISCLAIMER OF ALL
%%% WARRANTIES.
%%%
functor
import
FD Schedule
export
Script Order
prepare
MT10=
mt10(
tasks:[pa(dur:0)
a1(dur:29 pre:[pa] res:m1) a2(dur:78 pre:[a1] res:m2)
a3(dur: 9 pre:[a2] res:m3) a4(dur:36 pre:[a3] res:m4)
a5(dur:49 pre:[a4] res:m5) a6(dur:11 pre:[a5] res:m6)
a7(dur:62 pre:[a6] res:m7) a8(dur:56 pre:[a7] res:m8)
a9(dur:44 pre:[a8] res:m9) a10(dur:21 pre:[a9] res:m10)
b1(dur:43 pre:[pa] res:m1) b2(dur:90 pre:[b1] res:m3)
b3(dur:75 pre:[b2] res:m5) b4(dur:11 pre:[b3] res:m10)
b5(dur:69 pre:[b4] res:m4) b6(dur:28 pre:[b5] res:m2)
b7(dur:46 pre:[b6] res:m7) b8(dur:46 pre:[b7] res:m6)
b9(dur:72 pre:[b8] res:m8) b10(dur:30 pre:[b9] res:m9)
c1(dur:91 pre:[pa] res:m2) c2(dur:85 pre:[c1] res:m1)
c3(dur:39 pre:[c2] res:m4) c4(dur:74 pre:[c3] res:m3)
c5(dur:90 pre:[c4] res:m9) c6(dur:10 pre:[c5] res:m6)
c7(dur:12 pre:[c6] res:m8) c8(dur:89 pre:[c7] res:m7)
c9(dur:45 pre:[c8] res:m10) c10(dur:33 pre:[c9] res:m5)
d1(dur:81 pre:[pa] res:m2) d2(dur:95 pre:[d1] res:m3)
d3(dur:71 pre:[d2] res:m1) d4(dur:99 pre:[d3] res:m5)
d5(dur: 9 pre:[d4] res:m7) d6(dur:52 pre:[d5] res:m9)
d7(dur:85 pre:[d6] res:m8) d8(dur:98 pre:[d7] res:m4)
d9(dur:22 pre:[d8] res:m10) d10(dur:43 pre:[d9] res:m6)
e1(dur:14 pre:[pa] res:m3) e2(dur: 6 pre:[e1] res:m1)
e3(dur:22 pre:[e2] res:m2) e4(dur:61 pre:[e3] res:m6)
e5(dur:26 pre:[e4] res:m4) e6(dur:69 pre:[e5] res:m5)
e7(dur:21 pre:[e6] res:m9) e8(dur:49 pre:[e7] res:m8)
e9(dur:72 pre:[e8] res:m10) e10(dur:53 pre:[e9] res:m7)
f1(dur:84 pre:[pa] res:m3) f2(dur: 2 pre:[f1] res:m2)
f3(dur:52 pre:[f2] res:m6) f4(dur:95 pre:[f3] res:m4)
f5(dur:48 pre:[f4] res:m9) f6(dur:72 pre:[f5] res:m10)
f7(dur:47 pre:[f6] res:m1) f8(dur:65 pre:[f7] res:m7)
f9(dur: 6 pre:[f8] res:m5) f10(dur:25 pre:[f9] res:m8)
g1(dur:46 pre:[pa] res:m2) g2(dur:37 pre:[g1] res:m1)
g3(dur:61 pre:[g2] res:m4) g4(dur:13 pre:[g3] res:m3)
g5(dur:32 pre:[g4] res:m7) g6(dur:21 pre:[g5] res:m6)
g7(dur:32 pre:[g6] res:m10) g8(dur:89 pre:[g7] res:m9)
g9(dur:30 pre:[g8] res:m8) g10(dur:55 pre:[g9] res:m5)
h1(dur:31 pre:[pa] res:m3) h2(dur:86 pre:[h1] res:m1)
h3(dur:46 pre:[h2] res:m2) h4(dur:74 pre:[h3] res:m6)
h5(dur:32 pre:[h4] res:m5) h6(dur:88 pre:[h5] res:m7)
h7(dur:19 pre:[h6] res:m9) h8(dur:48 pre:[h7] res:m10)
h9(dur:36 pre:[h8] res:m8) h10(dur:79 pre:[h9] res:m4)
i1(dur:76 pre:[pa] res:m1) i2(dur:69 pre:[i1] res:m2)
i3(dur:76 pre:[i2] res:m4) i4(dur:51 pre:[i3] res:m6)
i5(dur:85 pre:[i4] res:m3) i6(dur:11 pre:[i5] res:m10)
i7(dur:40 pre:[i6] res:m7) i8(dur:89 pre:[i7] res:m8)
i9(dur:26 pre:[i8] res:m5) i10(dur:74 pre:[i9] res:m9)
j1(dur:85 pre:[pa] res:m2) j2(dur:13 pre:[j1] res:m1)
j3(dur:61 pre:[j2] res:m3) j4(dur: 7 pre:[j3] res:m7)
j5(dur:64 pre:[j4] res:m9) j6(dur:76 pre:[j5] res:m10)
j7(dur:47 pre:[j6] res:m6) j8(dur:52 pre:[j7] res:m4)
j9(dur:90 pre:[j8] res:m5) j10(dur:45 pre:[j9] res:m8)
pe(dur:0 pre:[a10 b10 c10 d10 e10 f10 g10 h10 i10 j10])])
define
fun {GetDur TaskSpec}
{List.toRecord dur {Map TaskSpec fun {$ T}
{Label T}#T.dur
end}}
end
fun {GetStart TaskSpec}
MaxTime = {FoldL TaskSpec fun {$ Time T}
Time+T.dur
end 0}
Tasks = {Map TaskSpec Label}
in
{FD.record start Tasks 0#MaxTime}
end
fun {GetTasksOnResource TaskSpec}
D={Dictionary.new}
in
{ForAll TaskSpec
proc {$ T}
if {HasFeature T res} then R=T.res in
{Dictionary.put D R {Label T}|{Dictionary.condGet D R nil}}
end
end}
{Dictionary.toRecord tor D}
end
fun {Compile Spec}
TaskSpec = Spec.tasks
Constraints = if {HasFeature Spec constraints} then
Spec.constraints
else
proc {$ _ _}
skip
end
end
Dur = {GetDur TaskSpec}
TasksOnRes = {GetTasksOnResource TaskSpec}
in
proc {$ Start}
Start = {GetStart TaskSpec}
{ForAll TaskSpec
proc {$ T}
{ForAll {CondSelect T pre nil}
proc {$ P}
Start.P + Dur.P =<: Start.{Label T}
end}
end}
{Constraints Start Dur}
{Schedule.serialized TasksOnRes Start Dur}
{Schedule.firstsLastsDist TasksOnRes Start Dur}
{FD.assign min Start}
end
end
Script = {Compile MT10}
proc {Order Old New}
Old.pe >: New.pe
end
end
|