Final fix - Project Complete

This commit is contained in:
AlexJavor 2020-05-22 23:35:28 +02:00
parent 5fe1352f2d
commit 7c6be2385e
5 changed files with 445 additions and 25 deletions

View file

@ -0,0 +1,403 @@
<?xml version="1.0" encoding="UTF-8"?>
<class-diagram version="1.2.4" icons="true" always-add-relationships="false" generalizations="true" realizations="true"
associations="true" dependencies="false" nesting-relationships="true" router="FAN">
<class id="1" language="java" name="jobshop.Main" project="JSP" file="/JSP/src/main/java/jobshop/Main.java"
binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="886" y="338"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="2" language="java" name="jobshop.Encoding" project="JSP" file="/JSP/src/main/java/jobshop/Encoding.java"
binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="399" y="285"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="3" language="java" name="jobshop.encodings.JobNumbers" project="JSP"
file="/JSP/src/main/java/jobshop/encodings/JobNumbers.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="164" y="543"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="4" language="java" name="jobshop.solvers.DescentSolver" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/DescentSolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1494" y="749"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<enumeration id="5" language="java" name="jobshop.solvers.GreedySolver.PriorityRule" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/GreedySolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="2049" y="342"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</enumeration>
<class id="6" language="java" name="jobshop.BestKnownResult" project="JSP"
file="/JSP/src/main/java/jobshop/BestKnownResult.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1200" y="258"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="7" language="java" name="jobshop.Instance" project="JSP" file="/JSP/src/main/java/jobshop/Instance.java"
binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="659" y="601"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="8" language="java" name="jobshop.solvers.DescentSolver.Swap" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/DescentSolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="2005" y="983"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="9" language="java" name="jobshop.Result" project="JSP" file="/JSP/src/main/java/jobshop/Result.java"
binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1001" y="694"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="10" language="java" name="jobshop.DebuggingMain" project="JSP"
file="/JSP/src/main/java/jobshop/DebuggingMain.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1014" y="215"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="11" language="java" name="jobshop.solvers.RandomSolver" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/RandomSolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1450" y="414"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="12" language="java" name="jobshop.solvers.GreedySolver" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/GreedySolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1452" y="576"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<interface id="13" language="java" name="jobshop.Solver" project="JSP" file="/JSP/src/main/java/jobshop/Solver.java"
binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1026" y="537"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</interface>
<enumeration id="14" language="java" name="jobshop.Result.ExitCause" project="JSP"
file="/JSP/src/main/java/jobshop/Result.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1000" y="857"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</enumeration>
<class id="15" language="java" name="jobshop.encodings.ResourceOrder" project="JSP"
file="/JSP/src/main/java/jobshop/encodings/ResourceOrder.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="402" y="539"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<enumeration id="16" language="java" name="jobshop.solvers.GreedySolver.PriorityESTRule" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/GreedySolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="2109" y="585"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</enumeration>
<class id="17" language="java" name="jobshop.Schedule" project="JSP" file="/JSP/src/main/java/jobshop/Schedule.java"
binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="665" y="906"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="18" language="java" name="jobshop.solvers.BasicSolver" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/BasicSolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1441" y="270"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="19" language="java" name="jobshop.solvers.DescentSolver.Block" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/DescentSolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="150" width="102" x="1919" y="732"/>
<display autosize="false" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="20" language="java" name="jobshop.solvers.TabooSolver" project="JSP"
file="/JSP/src/main/java/jobshop/solvers/TabooSolver.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="1498" y="974"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<class id="21" language="java" name="jobshop.encodings.Task" project="JSP"
file="/JSP/src/main/java/jobshop/encodings/Task.java" binary="false" corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="405" y="777"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</display>
</class>
<association id="22">
<end type="SOURCE" refId="9" navigable="false">
<attribute id="23" name="instance">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="24" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="7" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<nesting id="25">
<end type="SOURCE" refId="9"/>
<end type="TARGET" refId="14"/>
</nesting>
<generalization id="26">
<end type="SOURCE" refId="15"/>
<end type="TARGET" refId="2"/>
</generalization>
<realization id="27">
<end type="SOURCE" refId="11"/>
<end type="TARGET" refId="13"/>
</realization>
<association id="28">
<end type="SOURCE" refId="15" navigable="false">
<attribute id="29" name="tasksByMachine">
<position height="0" width="0" x="-61" y="-102"/>
</attribute>
<multiplicity id="30" minimum="0" maximum="2147483647">
<position height="0" width="0" x="-61" y="-102"/>
</multiplicity>
</end>
<end type="TARGET" refId="21" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<nesting id="31">
<end type="SOURCE" refId="4"/>
<end type="TARGET" refId="19"/>
</nesting>
<realization id="32">
<end type="SOURCE" refId="12"/>
<end type="TARGET" refId="13"/>
</realization>
<association id="33">
<end type="SOURCE" refId="20" navigable="false">
<attribute id="34" name="priorityRule">
<position height="17" width="62" x="1836" y="386"/>
</attribute>
<multiplicity id="35" minimum="0" maximum="1">
<position height="15" width="23" x="1897" y="337"/>
</multiplicity>
</end>
<end type="TARGET" refId="5" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="36">
<end type="SOURCE" refId="3"/>
<end type="TARGET" refId="2"/>
</generalization>
<realization id="37">
<end type="SOURCE" refId="4"/>
<end type="TARGET" refId="13"/>
</realization>
<association id="38">
<end type="SOURCE" refId="12" navigable="false">
<attribute id="39" name="priorityRule">
<position height="17" width="62" x="1842" y="331"/>
</attribute>
<multiplicity id="40" minimum="0" maximum="1">
<position height="0" width="0" x="93" y="-580"/>
</multiplicity>
</end>
<end type="TARGET" refId="5" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="41">
<end type="SOURCE" refId="4" navigable="false">
<attribute id="42" name="priorityRule">
<position height="17" width="62" x="1813" y="364"/>
</attribute>
<multiplicity id="43" minimum="0" maximum="1">
<position height="0" width="0" x="93" y="-580"/>
</multiplicity>
</end>
<end type="TARGET" refId="5" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="44">
<end type="SOURCE" refId="2" navigable="false">
<attribute id="45" name="instance">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="46" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="7" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<nesting id="47">
<end type="SOURCE" refId="12"/>
<end type="TARGET" refId="16"/>
</nesting>
<association id="48">
<end type="SOURCE" refId="12" navigable="false">
<attribute id="49" name="priorityESTRule">
<position height="17" width="83" x="1837" y="597"/>
</attribute>
<multiplicity id="50" minimum="0" maximum="1">
<position height="0" width="0" x="-215" y="-338"/>
</multiplicity>
</end>
<end type="TARGET" refId="16" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<realization id="51">
<end type="SOURCE" refId="18"/>
<end type="TARGET" refId="13"/>
</realization>
<nesting id="52">
<end type="SOURCE" refId="4"/>
<end type="TARGET" refId="8"/>
</nesting>
<nesting id="53">
<end type="SOURCE" refId="12"/>
<end type="TARGET" refId="5"/>
</nesting>
<association id="54">
<end type="SOURCE" refId="4" navigable="false">
<attribute id="55" name="priorityESTRule">
<position height="17" width="83" x="1866" y="652"/>
</attribute>
<multiplicity id="56" minimum="0" maximum="1">
<position height="0" width="0" x="-215" y="-338"/>
</multiplicity>
</end>
<end type="TARGET" refId="16" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<realization id="57">
<end type="SOURCE" refId="20"/>
<end type="TARGET" refId="13"/>
</realization>
<association id="58">
<end type="SOURCE" refId="17" navigable="false">
<attribute id="59" name="pb">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="60" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="7" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="61">
<end type="SOURCE" refId="9" navigable="false">
<attribute id="62" name="cause">
<position height="0" width="0" x="-20" y="-104"/>
</attribute>
<multiplicity id="63" minimum="0" maximum="1">
<position height="0" width="0" x="-20" y="-104"/>
</multiplicity>
</end>
<end type="TARGET" refId="14" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="64">
<end type="SOURCE" refId="1" navigable="false">
<attribute id="65" name="solvers">
<position height="0" width="0" x="-746" y="308"/>
</attribute>
<multiplicity id="66" minimum="0" maximum="2147483647">
<position height="0" width="0" x="-746" y="308"/>
</multiplicity>
</end>
<end type="TARGET" refId="13" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="67">
<end type="SOURCE" refId="20" navigable="false">
<attribute id="68" name="priorityESTRule">
<position height="17" width="83" x="1829" y="548"/>
</attribute>
<multiplicity id="69" minimum="0" maximum="1">
<position height="0" width="0" x="-215" y="-338"/>
</multiplicity>
</end>
<end type="TARGET" refId="16" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<association id="70">
<end type="SOURCE" refId="9" navigable="false">
<attribute id="71" name="schedule">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="72" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="17" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<classifier-display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="true" package="true" protected="true" private="true" static="true"/>
</classifier-display>
<association-display labels="true" multiplicity="true"/>
</class-diagram>

View file

@ -20,21 +20,29 @@ import net.sourceforge.argparse4j.inf.Namespace;
public class Main {
// ******************************************** Main - Arguments ************************************************ //
// All instances
// --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09 la10 la11 la12 la13 la14 la15 la16 la17 la18 la19 la20 la21 la22 la23 la24 la25 la26 la27 la28 la29 la30 la31 la32 la33 la34 la35 la36 la37 la38 la39 la40
// --instance ft06 ft10 ft20 la01 la06 la11 la16 la21 la26 la31 la36
// *** Basic + Random *** //
// --solver basic random --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver basic random
// *** Greedy Solvers *** //
// --solver Greedy-SPT Greedy-LRPT Greedy-EST_SPT Greedy-EST_LRPT --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Greedy-SPT Greedy-LRPT Greedy-EST_SPT Greedy-EST_LRPT
// *** Descent Solvers *** //
// --solver Descent-SPT Descent-LRPT Descent-EST_SPT Descent-EST_LRPT --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Descent-SPT Descent-LRPT Descent-EST_SPT Descent-EST_LRPT
// *** Taboo Solvers *** //
// --solver Taboo-EST_LRPT(1,1) --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Taboo-EST_LRPT(1,10) Taboo-EST_LRPT(2,10) Taboo-EST_LRPT(3,10) Taboo-EST_LRPT(4,10) Taboo-EST_LRPT(5,10) Taboo-EST_LRPT(6,10) Taboo-EST_LRPT(7,10) Taboo-EST_LRPT(8,10) Taboo-EST_LRPT(9,10) Taboo-EST_LRPT(10,10) --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Taboo-EST_LRPT(1,100) Taboo-EST_LRPT(6,100) Taboo-EST_LRPT(8,100) Taboo-EST_LRPT(10,100) Taboo-EST_LRPT(12,100) Taboo-EST_LRPT(14,100) Taboo-EST_LRPT(20,100) Taboo-EST_LRPT(50,100) Taboo-EST_LRPT(100,100) --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Taboo-EST_LRPT(1,1000) Taboo-EST_LRPT(6,1000) Taboo-EST_LRPT(8,1000) Taboo-EST_LRPT(10,1000) Taboo-EST_LRPT(12,1000) Taboo-EST_LRPT(14,1000) Taboo-EST_LRPT(20,1000) Taboo-EST_LRPT(50,1000) Taboo-EST_LRPT(100,1000) --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Taboo-EST_LRPT(1,5000) Taboo-EST_LRPT(6,5000) Taboo-EST_LRPT(8,5000) Taboo-EST_LRPT(10,5000) Taboo-EST_LRPT(12,5000) Taboo-EST_LRPT(14,5000) Taboo-EST_LRPT(20,5000) Taboo-EST_LRPT(50,5000) Taboo-EST_LRPT(100,5000) --instance aaa1 ft06 ft10 ft20 la01 la02 la03 la04 la05 la06 la07 la08 la09
// --solver Taboo-EST_LRPT(1,1)
// --solver Taboo-EST_LRPT(1,10) Taboo-EST_LRPT(2,10) Taboo-EST_LRPT(5,10) Taboo-EST_LRPT(10,10)
// --solver Taboo-EST_LRPT(1,100) Taboo-EST_LRPT(6,100) Taboo-EST_LRPT(8,100) Taboo-EST_LRPT(10,100) Taboo-EST_LRPT(12,100) Taboo-EST_LRPT(14,100) Taboo-EST_LRPT(20,100) Taboo-EST_LRPT(50,100) Taboo-EST_LRPT(100,100)
// --solver Taboo-EST_LRPT(1,1000) Taboo-EST_LRPT(6,1000) Taboo-EST_LRPT(8,1000) Taboo-EST_LRPT(10,1000) Taboo-EST_LRPT(12,1000) Taboo-EST_LRPT(14,1000) Taboo-EST_LRPT(20,1000) Taboo-EST_LRPT(50,1000) Taboo-EST_LRPT(100,1000)
// --solver Taboo-EST_LRPT(1,5000) Taboo-EST_LRPT(6,5000) Taboo-EST_LRPT(8,5000) Taboo-EST_LRPT(10,5000) Taboo-EST_LRPT(12,5000) Taboo-EST_LRPT(14,5000) Taboo-EST_LRPT(20,5000) Taboo-EST_LRPT(50,5000) Taboo-EST_LRPT(100,5000)
// *** Method comparison *** //
// --solver Greedy-SPT Descent-SPT Taboo-SPT(10,5000)
// --solver Greedy-LRPT Descent-LRPT Taboo-LRPT(10,5000)
/** All solvers available in this program */
private static HashMap<String, Solver> solvers;
@ -64,13 +72,7 @@ public class Main {
solvers.put("Taboo-EST_LRPT(1,10)", new TabooSolver(EST_LRPT, 1, 10));
solvers.put("Taboo-EST_LRPT(2,10)", new TabooSolver(EST_LRPT, 2, 10));
solvers.put("Taboo-EST_LRPT(3,10)", new TabooSolver(EST_LRPT, 3, 10));
solvers.put("Taboo-EST_LRPT(4,10)", new TabooSolver(EST_LRPT, 4, 10));
solvers.put("Taboo-EST_LRPT(5,10)", new TabooSolver(EST_LRPT, 5, 10));
solvers.put("Taboo-EST_LRPT(6,10)", new TabooSolver(EST_LRPT, 6, 10));
solvers.put("Taboo-EST_LRPT(7,10)", new TabooSolver(EST_LRPT, 7, 10));
solvers.put("Taboo-EST_LRPT(8,10)", new TabooSolver(EST_LRPT, 8, 10));
solvers.put("Taboo-EST_LRPT(9,10)", new TabooSolver(EST_LRPT, 9, 10));
solvers.put("Taboo-EST_LRPT(10,10)", new TabooSolver(EST_LRPT, 10, 10));
solvers.put("Taboo-EST_LRPT(1,100)", new TabooSolver(EST_LRPT, 1, 100));
@ -102,6 +104,21 @@ public class Main {
solvers.put("Taboo-EST_LRPT(20,5000)", new TabooSolver(EST_LRPT, 20, 5000));
solvers.put("Taboo-EST_LRPT(50,5000)", new TabooSolver(EST_LRPT, 50, 5000));
solvers.put("Taboo-EST_LRPT(100,5000)", new TabooSolver(EST_LRPT, 100, 5000));
solvers.put("Taboo-EST_LRPT(10,12000)", new TabooSolver(EST_LRPT, 10, 12000));
solvers.put("Taboo-EST_LRPT(14,12000)", new TabooSolver(EST_LRPT, 14, 12000));
solvers.put("Taboo-EST_LRPT(10,2000)", new TabooSolver(EST_LRPT, 10, 2000));
solvers.put("Taboo-EST_LRPT(10,4000)", new TabooSolver(EST_LRPT, 10, 4000));
solvers.put("Taboo-EST_LRPT(10,6000)", new TabooSolver(EST_LRPT, 10, 6000));
solvers.put("Taboo-EST_LRPT(10,8000)", new TabooSolver(EST_LRPT, 10, 8000));
solvers.put("Taboo-EST_LRPT(10,10000)", new TabooSolver(EST_LRPT, 10, 10000));
solvers.put("Taboo-EST_LRPT(10,12000)", new TabooSolver(EST_LRPT, 10, 12000));
solvers.put("Taboo-EST_LRPT(10,14000)", new TabooSolver(EST_LRPT, 10, 14000));
solvers.put("Taboo-SPT(10,1000)", new TabooSolver(SPT, 10, 1000));
solvers.put("Taboo-LRPT(10,1000)", new TabooSolver(LRPT, 10, 1000));
solvers.put("Taboo-EST_SPT(10,1000)", new TabooSolver(EST_SPT, 10, 1000));
}

View file

@ -124,8 +124,8 @@ public class DescentSolver implements Solver {
}
// Start: Sinit <- GreedySolver(instance)
Result resultLRPT = greedy.solve(instance, deadline);
Schedule initialSolution = resultLRPT.schedule;
Result result = greedy.solve(instance, deadline);
Schedule initialSolution = result.schedule;
// Record the best solution
Schedule bestSolution = initialSolution;
@ -167,7 +167,7 @@ public class DescentSolver implements Solver {
if(deadline <= System.currentTimeMillis()) {
exitCause = ExitCause.Timeout;
} else {
exitCause = ExitCause.ProvedOptimal;
exitCause = ExitCause.Blocked;
}
return new Result(instance, bestSolution, exitCause);

View file

@ -151,7 +151,7 @@ public class GreedySolver implements Solver {
int[] nextStartDateMachines = new int[instance.numMachines];
// We create a new ResourceOrder for putting all tasks in the schedule
ResourceOrder solution = new ResourceOrder(instance);
ResourceOrder solutionRO = new ResourceOrder(instance);
// Array list with all the achievable current tasks
ArrayList<Task> achievableTasks = new ArrayList<>();
@ -188,16 +188,16 @@ public class GreedySolver implements Solver {
}
// We add the current task to the solution
nextFreeSlot = solution.nextFreeSlot[currentMachine]++;
solution.tasksByMachine[currentMachine][nextFreeSlot] = currentTask;
nextFreeSlot = solutionRO.nextFreeSlot[currentMachine]++;
solutionRO.tasksByMachine[currentMachine][nextFreeSlot] = currentTask;
}
// We find the exit cause in order to create the result we will return
ExitCause exitCause = null;
if(deadline <= System.currentTimeMillis()) {
exitCause = ExitCause.Timeout;
} else {
exitCause = ExitCause.ProvedOptimal;
exitCause = ExitCause.Blocked;
}
return new Result(instance, solution.toSchedule(), exitCause);
return new Result(instance, solutionRO.toSchedule(), exitCause);
}
}

View file

@ -88,7 +88,7 @@ public class TabooSolver implements Solver {
// Iteration Counter
int k = 0;
while (deadline > System.currentTimeMillis() && k <= this.maxIter) {
while (/*deadline > System.currentTimeMillis() &&*/ k <= this.maxIter) {
// ***************** 1. k <- k + 1 ******************************************************** //
k++;