Download
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Authors: Pierre Schaus and Rowan Van Schaeren
* Chemical Tanker Problem (real industrial data):
* The Objective is to place products (called cargos) into tanks on a chemical tanker (vessel).
* - At most one cargo per tank but several tanks can be used to all the volume of one cargo.
* - Some cargo cannot be placed into adjacent tanks (different temperature requirement and security constraints)
* - Some cargo cannot be placed into some tanks (all the tanks does not have the required property to accept the cargo)
* The objective it to place all the volumes while satisfying the security constraints and maximizing the total free space (total volume of unused space).
* The idea of the objective function is to let more freedom for future cargos and also to decrease the cleaning costs
*
-->
<problem>
<!--list all the cargos (i.e. chemical products with for each of them the volume to place -->
<cargos nb="20">
<cargo id="1" name="POLI(4+)ISOBUTYLENE" volume="1114"/>
<cargo id="2" name="TALLOW" volume="979"/>
<cargo id="3" name="TALLOW" volume="1068"/>
<cargo id="4" name="ACETONE" volume="1267"/>
<cargo id="5" name="DIPROPYLENE GLYCOL" volume="381"/>
<cargo id="6" name="CORN OIL CRUDE DEGUMMD" volume="508"/>
<cargo id="7" name="CORN OIL CRUDE DEGUMMD" volume="581"/>
<cargo id="8" name="CORN OIL CRUDE DEGUMMD" volume="577"/>
<cargo id="9" name="DIGLYCIDYL ETHER OF BISPHENOL" volume="720"/>
<cargo id="10" name="MARPOL annex I petroleum oil" volume="1273"/>
<cargo id="11" name="Annex I oil" volume="593"/>
<cargo id="12" name="Annex I oil" volume="594"/>
<cargo id="13" name="ADIPONITRILE" volume="793"/>
<cargo id="14" name="EPICHLOROHYDRIN" volume="450"/>
<cargo id="15" name="DIPHENYLMETHANE DIISOCYNATE " volume="826"/>
<cargo id="16" name="PROPYLENE OXIDE" volume="1491"/>
<cargo id="17" name="Glycerol, propoxylated and ethoxylated" volume="1527"/>
<cargo id="18" name="BUTANOIC ACID" volume="701"/>
<cargo id="19" name="Glycerol/sucrose blend propoxylated and ethoxylated" volume="673"/>
<cargo id="20" name="N-METHYL-2-PYRROLIDONE" volume="552"/>
</cargos>
<!--gives the pair of cargos that cannot be placed to adjacent/neighbour tanks -->
<incompatibles>
<incompatible cargo1="5" cargo2="15"/>
<incompatible cargo1="14" cargo2="18"/>
<incompatible cargo1="15" cargo2="18"/>
<incompatible cargo1="15" cargo2="20"/>
<incompatible cargo1="16" cargo2="18"/>
</incompatibles>
<!--list all the tanks with for each of them it's capacity, location on the vessel, the cargo that cannot be placed inside and the adjacent/neighbour tanks -->
<tanks nb="34">
<tank id="1" capa="680" x="6" y="18" w="6" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="2"/>
<tank id="3"/>
</neighbours>
</tank>
<tank id="2" capa="674" x="0" y="18" w="6" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="1"/>
<tank id="4"/>
</neighbours>
</tank>
<tank id="3" capa="949" x="6" y="16" w="6" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="1"/>
<tank id="4"/>
</neighbours>
</tank>
<tank id="4" capa="949" x="0" y="16" w="6" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="2"/>
<tank id="3"/>
</neighbours>
</tank>
<tank id="5" capa="316" x="9" y="14" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="6"/>
<tank id="9"/>
</neighbours>
</tank>
<tank id="6" capa="420" x="6" y="14" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="5"/>
<tank id="7"/>
<tank id="10"/>
</neighbours>
</tank>
<tank id="7" capa="431" x="3" y="14" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="6"/>
<tank id="8"/>
<tank id="11"/>
</neighbours>
</tank>
<tank id="8" capa="316" x="0" y="14" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="7"/>
<tank id="12"/>
</neighbours>
</tank>
<tank id="9" capa="382" x="9" y="12" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="5"/>
<tank id="10"/>
<tank id="13"/>
</neighbours>
</tank>
<tank id="10" capa="451" x="6" y="12" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="6"/>
<tank id="9"/>
<tank id="11"/>
<tank id="14"/>
</neighbours>
</tank>
<tank id="11" capa="464" x="3" y="12" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="7"/>
<tank id="10"/>
<tank id="12"/>
<tank id="15"/>
</neighbours>
</tank>
<tank id="12" capa="382" x="0" y="12" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="8"/>
<tank id="11"/>
<tank id="16"/>
</neighbours>
</tank>
<tank id="13" capa="370" x="9" y="10" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="9"/>
<tank id="14"/>
</neighbours>
</tank>
<tank id="14" capa="428" x="6" y="10" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="10"/>
<tank id="13"/>
<tank id="15"/>
</neighbours>
</tank>
<tank id="15" capa="429" x="3" y="10" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="11"/>
<tank id="14"/>
<tank id="16"/>
</neighbours>
</tank>
<tank id="16" capa="370" x="0" y="10" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="12"/>
<tank id="15"/>
</neighbours>
</tank>
<tank id="17" capa="853" x="9" y="8" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="18"/>
</neighbours>
</tank>
<tank id="18" capa="991" x="6" y="8" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="17"/>
<tank id="19"/>
</neighbours>
</tank>
<tank id="19" capa="991" x="3" y="8" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="18"/>
<tank id="20"/>
</neighbours>
</tank>
<tank id="20" capa="853" x="0" y="8" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="19"/>
</neighbours>
</tank>
<tank id="21" capa="372" x="9" y="6" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="22"/>
<tank id="25"/>
</neighbours>
</tank>
<tank id="22" capa="420" x="6" y="6" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="21"/>
<tank id="23"/>
<tank id="26"/>
</neighbours>
</tank>
<tank id="23" capa="431" x="3" y="6" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="22"/>
<tank id="24"/>
<tank id="27"/>
</neighbours>
</tank>
<tank id="24" capa="372" x="0" y="6" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="23"/>
<tank id="28"/>
</neighbours>
</tank>
<tank id="25" capa="545" x="9" y="4" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="21"/>
<tank id="26"/>
</neighbours>
</tank>
<tank id="26" capa="626" x="6" y="4" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="22"/>
<tank id="25"/>
<tank id="27"/>
</neighbours>
</tank>
<tank id="27" capa="627" x="3" y="4" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="23"/>
<tank id="26"/>
<tank id="28"/>
</neighbours>
</tank>
<tank id="28" capa="545" x="0" y="4" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="24"/>
<tank id="27"/>
</neighbours>
</tank>
<tank id="29" capa="494" x="9" y="2" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="30"/>
</neighbours>
</tank>
<tank id="30" capa="589" x="6" y="2" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="29"/>
<tank id="31"/>
</neighbours>
</tank>
<tank id="31" capa="589" x="3" y="2" w="3" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="30"/>
<tank id="32"/>
</neighbours>
</tank>
<tank id="32" capa="494" x="0" y="2" w="3" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="31"/>
</neighbours>
</tank>
<tank id="33" capa="1017" x="6" y="0" w="6" h="2">
<impossiblecargos>
<cargo id="1"/>
<cargo id="10"/>
<cargo id="13"/>
</impossiblecargos>
<neighbours>
<tank id="34"/>
</neighbours>
</tank>
<tank id="34" capa="1017" x="0" y="0" w="6" h="2">
<impossiblecargos>
</impossiblecargos>
<neighbours>
<tank id="33"/>
</neighbours>
</tank>
</tanks>
</problem>