diff --git a/Code/.idea/.gitignore b/Code/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ b/Code/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Code/.idea/libraries/jgrapht_core.xml b/Code/.idea/libraries/jgrapht_core.xml new file mode 100644 index 0000000000000000000000000000000000000000..1e9cf5298d3e1e87d0c184a2a8a825a718f4486e --- /dev/null +++ b/Code/.idea/libraries/jgrapht_core.xml @@ -0,0 +1,11 @@ +<component name="libraryTable"> + <library name="jgrapht.core" type="repository"> + <properties maven-id="org.jgrapht:jgrapht-core:1.4.0" /> + <CLASSES> + <root url="jar://$MAVEN_REPOSITORY$/org/jgrapht/jgrapht-core/1.4.0/jgrapht-core-1.4.0.jar!/" /> + <root url="jar://$MAVEN_REPOSITORY$/org/jheaps/jheaps/0.11/jheaps-0.11.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/Code/.idea/misc.xml b/Code/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..7d862fbd381b6ec88059c0997b10c728994b68f6 --- /dev/null +++ b/Code/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="corretto-11" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project> \ No newline at end of file diff --git a/Code/.idea/modules.xml b/Code/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..f9b4ee24a70767a30df825154b8017fdeee25629 --- /dev/null +++ b/Code/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/Code.iml" filepath="$PROJECT_DIR$/Code.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/Code/.idea/uiDesigner.xml b/Code/.idea/uiDesigner.xml new file mode 100644 index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373 --- /dev/null +++ b/Code/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Palette2"> + <group name="Swing"> + <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> + </item> + <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true"> + <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> + <initial-values> + <property name="text" value="Button" /> + </initial-values> + </item> + <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="RadioButton" /> + </initial-values> + </item> + <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="CheckBox" /> + </initial-values> + </item> + <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="Label" /> + </initial-values> + </item> + <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> + <preferred-size width="-1" height="20" /> + </default-constraints> + </item> + <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> + </item> + </group> + </component> +</project> \ No newline at end of file diff --git a/Code/Code.iml b/Code/Code.iml new file mode 100644 index 0000000000000000000000000000000000000000..0d50060a3c872e77f794e313bbd1af20b64338a9 --- /dev/null +++ b/Code/Code.iml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="module-library"> + <library> + <CLASSES> + <root url="jar://$MODULE_DIR$/../../../Simulateurs/iFogSim2/iFogSim/jars/gurobi.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> + </orderEntry> + <orderEntry type="module-library"> + <library> + <CLASSES> + <root url="jar://$MODULE_DIR$/../../../Simulateurs/iFogSim2/iFogSim/jars/javailp-1.2a.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> + </orderEntry> + <orderEntry type="module-library"> + <library> + <CLASSES> + <root url="file://$MODULE_DIR$/../../../Simulateurs/iFogSim2/iFogSim/jars/commons-math3-3.5" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + <jarDirectory url="file://$MODULE_DIR$/../../../Simulateurs/iFogSim2/iFogSim/jars/commons-math3-3.5" recursive="false" /> + </library> + </orderEntry> + <orderEntry type="library" name="jgrapht.core" level="project" /> + </component> +</module> \ No newline at end of file diff --git a/Code/gurobi.log b/Code/gurobi.log new file mode 100644 index 0000000000000000000000000000000000000000..de6ac2cd602eda4954c3c05b61a50697af0f6758 --- /dev/null +++ b/Code/gurobi.log @@ -0,0 +1,9017 @@ + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:42 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:43 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:44 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:45 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:46 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:46 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:47 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:47 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:47 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:48 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:48 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:49 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:49 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:50 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:50 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:50 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:51 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:51 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:52 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:52 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:52 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:53 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:53 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:53 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:53 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:54 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:54 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:54 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:55 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:55 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:55 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:55 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:56 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:56 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:57 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:57 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:57 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:58 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:58 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:58 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:58 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:59 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:59 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:59 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:59 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:27:59 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:00 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:00 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:00 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:00 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:00 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:00 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:01 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:01 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:01 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:01 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:01 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:01 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:02 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:02 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:02 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:02 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:02 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:02 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:03 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:03 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:03 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:03 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:03 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:04 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:04 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:04 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:04 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:04 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:05 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:05 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:05 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:05 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:05 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:05 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:06 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:06 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:06 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:06 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:06 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:07 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:07 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:07 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:07 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:07 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:07 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:08 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:08 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:08 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:08 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:08 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:09 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:09 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:09 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:09 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:09 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:10 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:10 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:10 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:10 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:10 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:11 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:28:11 2024 + + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:51 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x48c622f9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:52 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x48c622f9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:54 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x315081c9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.14 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:55 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x315081c9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:56 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xda1d9508 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:57 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xda1d9508 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.17 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:58 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x54319f3a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.16s + +Explored 0 nodes (0 simplex iterations) in 0.32 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 14:47:59 2024 + +Academic license - for non-commercial use only + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x48c622f9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.17 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:15 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x48c622f9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:17 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x315081c9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:18 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x315081c9 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:19 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xda1d9508 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:20 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xda1d9508 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:21 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x54319f3a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:22 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x54319f3a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:23 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x671e62fe +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:24 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x671e62fe +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xa38f2e5f +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xa38f2e5f +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:26 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x9af763dc +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:27 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x9af763dc +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:28 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xf8c853c5 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 8e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:29 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xf8c853c5 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 8e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:30 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x9bb0a40b +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [4e+01, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4428 rows and 3176 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.17 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:30 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x9bb0a40b +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [4e+01, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4428 rows and 3176 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.18 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:31 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85593 nonzeros +Model fingerprint: 0xa135b765 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [4e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4362 rows and 3646 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:32 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85593 nonzeros +Model fingerprint: 0xa135b765 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [4e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4362 rows and 3646 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:33 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85609 nonzeros +Model fingerprint: 0x8b932602 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4378 rows and 4120 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.12 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:33 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85609 nonzeros +Model fingerprint: 0x8b932602 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4378 rows and 4120 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.12 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:34 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xaf4adb34 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.13s + +Explored 0 nodes (0 simplex iterations) in 0.19 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:35 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xaf4adb34 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.14 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:36 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x28039bbc +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:36 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x28039bbc +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.14 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:37 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xd60673db +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.11s + +Explored 0 nodes (0 simplex iterations) in 0.18 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:38 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xd60673db +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:39 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xfa097477 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:39 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xfa097477 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:40 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xc20e5e13 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.12s + +Explored 0 nodes (0 simplex iterations) in 0.19 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:41 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xc20e5e13 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.12 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:42 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x46e29f20 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:42 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x46e29f20 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.15 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:43 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x5d97937e +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:44 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x5d97937e +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [4e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.14 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:44 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x8dd9689c +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 3e+02] + Objective range [4e+01, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:45 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0x8dd9689c +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 3e+02] + Objective range [4e+01, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:46 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85585 nonzeros +Model fingerprint: 0x3abfb53a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [4e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4354 rows and 3326 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.12 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:46 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85585 nonzeros +Model fingerprint: 0x3abfb53a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [4e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4354 rows and 3326 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85593 nonzeros +Model fingerprint: 0x3bca734d +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4362 rows and 3690 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85593 nonzeros +Model fingerprint: 0x3bca734d +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4362 rows and 3690 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.14 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:48 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85597 nonzeros +Model fingerprint: 0x6d5fce7a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [1e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4366 rows and 4020 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.13 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:48 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85597 nonzeros +Model fingerprint: 0x6d5fce7a +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 4e+04] + Objective range [1e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4366 rows and 4020 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.12 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:49 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xe9dff1b8 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.05s + +Explored 0 nodes (0 simplex iterations) in 0.11 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:50 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xe9dff1b8 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.07s + +Explored 0 nodes (0 simplex iterations) in 0.12 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:50 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xf8c376c3 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.09s + +Explored 0 nodes (0 simplex iterations) in 0.16 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:51 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xf8c376c3 +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.10s + +Explored 0 nodes (0 simplex iterations) in 0.19 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:52 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xb84d54ee +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.08s + +Explored 0 nodes (0 simplex iterations) in 0.17 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:05:52 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 5332 rows, 4278 columns and 85581 nonzeros +Model fingerprint: 0xb84d54ee +Variable types: 0 continuous, 4278 integer (2162 binary) +Coefficient statistics: + Matrix range [1e+00, 2e+02] + Objective range [3e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 4416 rows and 3152 columns +Presolve time: 0.16s + +Explored 0 nodes (0 simplex iterations) in 0.26 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:45 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x9f27c4df +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612127e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.21268 0 14 - 361.21268 - - 0s + 0 0 445.70080 0 30 - 445.70080 - - 0s + 0 0 446.20384 0 20 - 446.20384 - - 0s + 0 0 446.95771 0 35 - 446.95771 - - 0s + 0 0 467.98069 0 28 - 467.98069 - - 0s + 0 0 468.22258 0 29 - 468.22258 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 684.01168 0 36 - 684.01168 - - 0s + 0 0 687.96070 0 36 - 687.96070 - - 0s +H 0 0 777.4852859 687.96070 11.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 11 + StrongCG: 2 + Flow cover: 10 + Zero half: 1 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (212 simplex iterations) in 0.47 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 777.485 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.774852859196e+02, best bound 7.774852859196e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:46 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x9f27c4df +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612127e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.21268 0 14 - 361.21268 - - 0s + 0 0 445.70080 0 30 - 445.70080 - - 0s + 0 0 446.20384 0 20 - 446.20384 - - 0s + 0 0 446.95771 0 35 - 446.95771 - - 0s + 0 0 467.98069 0 28 - 467.98069 - - 0s + 0 0 468.22258 0 29 - 468.22258 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 684.01168 0 36 - 684.01168 - - 0s + 0 0 687.96070 0 36 - 687.96070 - - 0s +H 0 0 777.4852859 687.96070 11.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 11 + StrongCG: 2 + Flow cover: 10 + Zero half: 1 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (212 simplex iterations) in 0.45 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 777.485 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.774852859196e+02, best bound 7.774852859196e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa1887ec7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.631469e+02, 86 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.14695 0 14 - 363.14695 - - 0s + 0 0 447.74726 0 34 - 447.74726 - - 0s + 0 0 448.74355 0 34 - 448.74355 - - 0s + 0 0 448.99477 0 34 - 448.99477 - - 0s + 0 0 467.28964 0 25 - 467.28964 - - 0s + 0 0 467.31618 0 25 - 467.31618 - - 0s + 0 0 589.70129 0 30 - 589.70129 - - 0s + 0 0 594.55652 0 32 - 594.55652 - - 0s + 0 0 594.55652 0 31 - 594.55652 - - 0s + 0 0 616.90013 0 31 - 616.90013 - - 0s + 0 0 616.90013 0 33 - 616.90013 - - 0s +H 0 0 985.6827395 616.90013 37.4% - 0s +H 0 0 777.0967571 616.90013 20.6% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + StrongCG: 1 + Flow cover: 5 + Zero half: 2 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (211 simplex iterations) in 0.42 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.097 985.683 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.770967571098e+02, best bound 7.770967571098e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa1887ec7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.631469e+02, 86 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.14695 0 14 - 363.14695 - - 0s + 0 0 447.74726 0 34 - 447.74726 - - 0s + 0 0 448.74355 0 34 - 448.74355 - - 0s + 0 0 448.99477 0 34 - 448.99477 - - 0s + 0 0 467.28964 0 25 - 467.28964 - - 0s + 0 0 467.31618 0 25 - 467.31618 - - 0s + 0 0 589.70129 0 30 - 589.70129 - - 0s + 0 0 594.55652 0 32 - 594.55652 - - 0s + 0 0 594.55652 0 31 - 594.55652 - - 0s + 0 0 616.90013 0 31 - 616.90013 - - 0s + 0 0 616.90013 0 33 - 616.90013 - - 0s +H 0 0 985.6827395 616.90013 37.4% - 0s +H 0 0 777.0967571 616.90013 20.6% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + StrongCG: 1 + Flow cover: 5 + Zero half: 2 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (211 simplex iterations) in 0.41 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.097 985.683 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.770967571098e+02, best bound 7.770967571098e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x8264b64e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.669926e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 366.99259 0 14 - 366.99259 - - 0s + 0 0 454.81034 0 26 - 454.81034 - - 0s + 0 0 455.32449 0 20 - 455.32449 - - 0s + 0 0 455.86124 0 35 - 455.86124 - - 0s + 0 0 476.81381 0 26 - 476.81381 - - 0s + 0 0 480.81179 0 26 - 480.81179 - - 0s + 0 0 482.50283 0 29 - 482.50283 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 30 - 622.05385 - - 0s +H 0 0 814.1555193 622.05385 23.6% - 0s +H 0 0 782.4647174 622.05385 20.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (256 simplex iterations) in 0.43 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 782.465 814.156 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.824647173694e+02, best bound 7.824647173694e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:48 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x8264b64e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.669926e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 366.99259 0 14 - 366.99259 - - 0s + 0 0 454.81034 0 26 - 454.81034 - - 0s + 0 0 455.32449 0 20 - 455.32449 - - 0s + 0 0 455.86124 0 35 - 455.86124 - - 0s + 0 0 476.81381 0 26 - 476.81381 - - 0s + 0 0 480.81179 0 26 - 480.81179 - - 0s + 0 0 482.50283 0 29 - 482.50283 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 30 - 622.05385 - - 0s +H 0 0 814.1555193 622.05385 23.6% - 0s +H 0 0 782.4647174 622.05385 20.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (256 simplex iterations) in 0.43 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 782.465 814.156 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.824647173694e+02, best bound 7.824647173694e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:48 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe9a197c9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.735041e+02, 97 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 373.50407 0 14 - 373.50407 - - 0s + 0 0 457.64418 0 29 - 457.64418 - - 0s + 0 0 458.43041 0 33 - 458.43041 - - 0s + 0 0 459.32719 0 34 - 459.32719 - - 0s + 0 0 459.37579 0 34 - 459.37579 - - 0s +H 0 0 790.8262513 459.37579 41.9% - 0s + 0 0 495.37323 0 27 790.82625 495.37323 37.4% - 0s + 0 0 499.12085 0 28 790.82625 499.12085 36.9% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + Flow cover: 12 + Inf proof: 2 + Zero half: 3 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (162 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 790.826 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.908262512524e+02, best bound 7.908262512524e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:49 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe9a197c9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.735041e+02, 97 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 373.50407 0 14 - 373.50407 - - 0s + 0 0 457.64418 0 29 - 457.64418 - - 0s + 0 0 458.43041 0 33 - 458.43041 - - 0s + 0 0 459.32719 0 34 - 459.32719 - - 0s + 0 0 459.37579 0 34 - 459.37579 - - 0s +H 0 0 790.8262513 459.37579 41.9% - 0s + 0 0 495.37323 0 27 790.82625 495.37323 37.4% - 0s + 0 0 499.12085 0 28 790.82625 499.12085 36.9% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + Flow cover: 12 + Inf proof: 2 + Zero half: 3 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (162 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 790.826 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.908262512524e+02, best bound 7.908262512524e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:49 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x7f8d7a00 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.769709e+02, 94 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 376.97085 0 14 - 376.97085 - - 0s + 0 0 462.98331 0 30 - 462.98331 - - 0s + 0 0 463.49240 0 32 - 463.49240 - - 0s + 0 0 463.92382 0 34 - 463.92382 - - 0s + 0 0 489.82122 0 31 - 489.82122 - - 0s + 0 0 491.01412 0 30 - 491.01412 - - 0s +H 0 0 819.0298409 491.01412 40.0% - 0s +H 0 0 793.8472735 491.01412 38.1% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 1 + Flow cover: 11 + Inf proof: 1 + RLT: 3 + +Explored 1 nodes (177 simplex iterations) in 0.45 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 793.847 819.03 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.938472734776e+02, best bound 7.938472734776e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:50 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x7f8d7a00 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.769709e+02, 94 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 376.97085 0 14 - 376.97085 - - 0s + 0 0 462.98331 0 30 - 462.98331 - - 0s + 0 0 463.49240 0 32 - 463.49240 - - 0s + 0 0 463.92382 0 34 - 463.92382 - - 0s + 0 0 489.82122 0 31 - 489.82122 - - 0s + 0 0 491.01412 0 30 - 491.01412 - - 0s +H 0 0 819.0298409 491.01412 40.0% - 0s +H 0 0 793.8472735 491.01412 38.1% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 1 + Flow cover: 11 + Inf proof: 1 + RLT: 3 + +Explored 1 nodes (177 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 793.847 819.03 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.938472734776e+02, best bound 7.938472734776e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:50 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x47f74b14 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.06s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.965968e+02, 87 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 396.59685 0 14 - 396.59685 - - 0s + 0 0 480.80107 0 33 - 480.80107 - - 0s +H 0 0 829.9074799 480.80107 42.1% - 0s + 0 0 481.39663 0 35 829.90748 481.39663 42.0% - 0s + 0 0 553.91629 0 25 829.90748 553.91629 33.3% - 0s + 0 0 593.47073 0 29 829.90748 593.47073 28.5% - 0s + 0 0 597.95780 0 33 829.90748 597.95780 27.9% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 2 + Flow cover: 9 + Inf proof: 2 + Zero half: 5 + RLT: 2 + +Explored 1 nodes (175 simplex iterations) in 0.37 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 829.907 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.299074798515e+02, best bound 8.299074798515e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:50 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x47f74b14 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.965968e+02, 87 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 396.59685 0 14 - 396.59685 - - 0s + 0 0 480.80107 0 33 - 480.80107 - - 0s +H 0 0 829.9074799 480.80107 42.1% - 0s + 0 0 481.39663 0 35 829.90748 481.39663 42.0% - 0s + 0 0 553.91629 0 25 829.90748 553.91629 33.3% - 0s + 0 0 593.47073 0 29 829.90748 593.47073 28.5% - 0s + 0 0 597.95780 0 33 829.90748 597.95780 27.9% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 2 + Flow cover: 9 + Inf proof: 2 + Zero half: 5 + RLT: 2 + +Explored 1 nodes (175 simplex iterations) in 0.30 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 829.907 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.299074798515e+02, best bound 8.299074798515e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:51 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x715e9916 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 4.191180e+02, 88 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.11800 0 14 - 419.11800 - - 0s + 0 0 493.86511 0 31 - 493.86511 - - 0s + 0 0 494.75310 0 33 - 494.75310 - - 0s + 0 0 495.77935 0 35 - 495.77935 - - 0s + 0 0 517.15766 0 26 - 517.15766 - - 0s +H 0 0 866.9599398 517.15766 40.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s +H 0 0 847.3391449 525.83651 37.9% - 0s + 0 0 707.64888 0 36 847.33914 707.64888 16.5% - 0s + 0 0 757.55261 0 35 847.33914 757.55261 10.6% - 0s + 0 0 765.95177 0 35 847.33914 765.95177 9.61% - 0s + +Cutting planes: + Gomory: 1 + MIR: 17 + Flow cover: 7 + Inf proof: 1 + Zero half: 7 + RLT: 4 + +Explored 1 nodes (175 simplex iterations) in 0.41 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 847.339 866.96 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.473391448781e+02, best bound 8.473391448781e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:51 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x715e9916 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 4.191180e+02, 88 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.11800 0 14 - 419.11800 - - 0s + 0 0 493.86511 0 31 - 493.86511 - - 0s + 0 0 494.75310 0 33 - 494.75310 - - 0s + 0 0 495.77935 0 35 - 495.77935 - - 0s + 0 0 517.15766 0 26 - 517.15766 - - 0s +H 0 0 866.9599398 517.15766 40.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s +H 0 0 847.3391449 525.83651 37.9% - 0s + 0 0 707.64888 0 36 847.33914 707.64888 16.5% - 0s + 0 0 757.55261 0 35 847.33914 757.55261 10.6% - 0s + 0 0 765.95177 0 35 847.33914 765.95177 9.61% - 0s + +Cutting planes: + Gomory: 1 + MIR: 17 + Flow cover: 7 + Inf proof: 1 + Zero half: 7 + RLT: 4 + +Explored 1 nodes (175 simplex iterations) in 0.40 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 847.339 866.96 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.473391448781e+02, best bound 8.473391448781e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:52 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa068249a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) +Found heuristic solution: objective 922.7580884 + +Root relaxation: objective 4.196677e+02, 80 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.66767 0 14 922.75809 419.66767 54.5% - 0s + 0 0 516.38146 0 30 922.75809 516.38146 44.0% - 0s + 0 0 518.10740 0 36 922.75809 518.10740 43.9% - 0s + 0 0 584.91355 0 23 922.75809 584.91355 36.6% - 0s + 0 0 632.02275 0 33 922.75809 632.02275 31.5% - 0s + 0 0 633.13855 0 34 922.75809 633.13855 31.4% - 0s +H 0 0 878.2952021 633.13855 27.9% - 0s + +Cutting planes: + Gomory: 2 + MIR: 10 + Flow cover: 10 + Inf proof: 1 + Zero half: 4 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (182 simplex iterations) in 0.35 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 878.295 922.758 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.782952021047e+02, best bound 8.782952021047e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:52 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa068249a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) +Found heuristic solution: objective 922.7580884 + +Root relaxation: objective 4.196677e+02, 80 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.66767 0 14 922.75809 419.66767 54.5% - 0s + 0 0 516.38146 0 30 922.75809 516.38146 44.0% - 0s + 0 0 518.10740 0 36 922.75809 518.10740 43.9% - 0s + 0 0 584.91355 0 23 922.75809 584.91355 36.6% - 0s + 0 0 632.02275 0 33 922.75809 632.02275 31.5% - 0s + 0 0 633.13855 0 34 922.75809 633.13855 31.4% - 0s +H 0 0 878.2952021 633.13855 27.9% - 0s + +Cutting planes: + Gomory: 2 + MIR: 10 + Flow cover: 10 + Inf proof: 1 + Zero half: 4 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (182 simplex iterations) in 0.32 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 878.295 922.758 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.782952021047e+02, best bound 8.782952021047e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:52 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x410a323e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 825 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 5.058364e+02, 74 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 505.83641 0 15 - 505.83641 - - 0s + 0 0 599.48211 0 36 - 599.48211 - - 0s + 0 0 602.91370 0 34 - 602.91370 - - 0s + 0 0 628.13414 0 39 - 628.13414 - - 0s + 0 0 632.95363 0 39 - 632.95363 - - 0s + 0 0 633.17689 0 40 - 633.17689 - - 0s +H 0 0 977.7633232 633.17689 35.2% - 0s + +Cutting planes: + Gomory: 3 + Clique: 1 + MIR: 17 + StrongCG: 2 + Flow cover: 7 + Zero half: 1 + Mod-K: 1 + RLT: 9 + +Explored 1 nodes (151 simplex iterations) in 0.30 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 977.763 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.777633232288e+02, best bound 9.777633232288e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:53 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x410a323e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 825 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 5.058364e+02, 74 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 505.83641 0 15 - 505.83641 - - 0s + 0 0 599.48211 0 36 - 599.48211 - - 0s + 0 0 602.91370 0 34 - 602.91370 - - 0s + 0 0 628.13414 0 39 - 628.13414 - - 0s + 0 0 632.95363 0 39 - 632.95363 - - 0s + 0 0 633.17689 0 40 - 633.17689 - - 0s +H 0 0 977.7633232 633.17689 35.2% - 0s + +Cutting planes: + Gomory: 3 + Clique: 1 + MIR: 17 + StrongCG: 2 + Flow cover: 7 + Zero half: 1 + Mod-K: 1 + RLT: 9 + +Explored 1 nodes (151 simplex iterations) in 0.32 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 977.763 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.777633232288e+02, best bound 9.777633232288e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:53 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1373 nonzeros +Model fingerprint: 0xdc21f627 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 157 rows and 204 columns +Presolve time: 0.02s + +Explored 0 nodes (0 simplex iterations) in 0.02 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:53 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1373 nonzeros +Model fingerprint: 0xdc21f627 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 157 rows and 204 columns +Presolve time: 0.03s + +Explored 0 nodes (0 simplex iterations) in 0.03 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:53 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1377 nonzeros +Model fingerprint: 0x85610366 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 6 rows and 63 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.01 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:53 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1377 nonzeros +Model fingerprint: 0x85610366 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 6 rows and 63 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.00 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:53 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x270a20b2 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612904e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.29040 0 14 - 361.29040 - - 0s + 0 0 446.45478 0 34 - 446.45478 - - 0s +H 0 0 774.8181295 446.45478 42.4% - 0s + 0 0 446.63812 0 35 774.81813 446.63812 42.4% - 0s + 0 0 468.00635 0 23 774.81813 468.00635 39.6% - 0s + 0 0 473.12403 0 21 774.81813 473.12403 38.9% - 0s + 0 0 598.34280 0 29 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 31 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 33 774.81813 598.34280 22.8% - 0s + +Cutting planes: + Gomory: 1 + MIR: 14 + Flow cover: 13 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (211 simplex iterations) in 0.47 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 774.818 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.748181294994e+02, best bound 7.747713995505e+02, gap 0.0060% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:54 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x270a20b2 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612904e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.29040 0 14 - 361.29040 - - 0s + 0 0 446.45478 0 34 - 446.45478 - - 0s +H 0 0 774.8181295 446.45478 42.4% - 0s + 0 0 446.63812 0 35 774.81813 446.63812 42.4% - 0s + 0 0 468.00635 0 23 774.81813 468.00635 39.6% - 0s + 0 0 473.12403 0 21 774.81813 473.12403 38.9% - 0s + 0 0 598.34280 0 29 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 31 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 33 774.81813 598.34280 22.8% - 0s + +Cutting planes: + Gomory: 1 + MIR: 14 + Flow cover: 13 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (211 simplex iterations) in 0.36 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 774.818 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.748181294994e+02, best bound 7.747713995505e+02, gap 0.0060% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:54 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4043d94b +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.637007e+02, 92 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.70075 0 14 - 363.70075 - - 0s + 0 0 450.32351 0 33 - 450.32351 - - 0s + 0 0 451.09419 0 34 - 451.09419 - - 0s + 0 0 451.20327 0 35 - 451.20327 - - 0s + 0 0 470.18596 0 27 - 470.18596 - - 0s + 0 0 470.52219 0 27 - 470.52219 - - 0s +H 0 0 806.9075458 470.52219 41.7% - 0s +H 0 0 777.9670646 470.52219 39.5% - 0s + 0 0 777.90792 0 36 777.96706 777.90792 0.01% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (215 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.967 806.908 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.779670646087e+02, best bound 7.779079178855e+02, gap 0.0076% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:55 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4043d94b +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.637007e+02, 92 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.70075 0 14 - 363.70075 - - 0s + 0 0 450.32351 0 33 - 450.32351 - - 0s + 0 0 451.09419 0 34 - 451.09419 - - 0s + 0 0 451.20327 0 35 - 451.20327 - - 0s + 0 0 470.18596 0 27 - 470.18596 - - 0s + 0 0 470.52219 0 27 - 470.52219 - - 0s +H 0 0 806.9075458 470.52219 41.7% - 0s +H 0 0 777.9670646 470.52219 39.5% - 0s + 0 0 777.90792 0 36 777.96706 777.90792 0.01% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (215 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.967 806.908 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.779670646087e+02, best bound 7.779079178855e+02, gap 0.0076% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:55 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe45ea3f7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.682655e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 368.26551 0 14 - 368.26551 - - 0s + 0 0 452.34768 0 31 - 452.34768 - - 0s +H 0 0 801.7131035 452.34768 43.6% - 0s + 0 0 453.16816 0 32 801.71310 453.16816 43.5% - 0s + 0 0 453.94500 0 34 801.71310 453.94500 43.4% - 0s + 0 0 453.95325 0 34 801.71310 453.95325 43.4% - 0s +H 0 0 783.7444243 453.95325 42.1% - 0s + 0 0 477.23219 0 28 783.74442 477.23219 39.1% - 0s + 0 0 526.97556 0 27 783.74442 526.97556 32.8% - 0s + +Cutting planes: + Gomory: 1 + MIR: 12 + StrongCG: 1 + Flow cover: 11 + Inf proof: 1 + Zero half: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (155 simplex iterations) in 0.24 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 783.744 801.713 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.837444243008e+02, best bound 7.837444243008e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:55 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe45ea3f7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.682655e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 368.26551 0 14 - 368.26551 - - 0s + 0 0 452.34768 0 31 - 452.34768 - - 0s +H 0 0 801.7131035 452.34768 43.6% - 0s + 0 0 453.16816 0 32 801.71310 453.16816 43.5% - 0s + 0 0 453.94500 0 34 801.71310 453.94500 43.4% - 0s + 0 0 453.95325 0 34 801.71310 453.95325 43.4% - 0s +H 0 0 783.7444243 453.95325 42.1% - 0s + 0 0 477.23219 0 28 783.74442 477.23219 39.1% - 0s + 0 0 526.97556 0 27 783.74442 526.97556 32.8% - 0s + +Cutting planes: + Gomory: 1 + MIR: 12 + StrongCG: 1 + Flow cover: 11 + Inf proof: 1 + Zero half: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (155 simplex iterations) in 0.26 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 783.744 801.713 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.837444243008e+02, best bound 7.837444243008e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:56 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x1c82be2d +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.708318e+02, 97 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 370.83179 0 14 - 370.83179 - - 0s + 0 0 456.33860 0 32 - 456.33860 - - 0s + 0 0 456.87817 0 32 - 456.87817 - - 0s + 0 0 457.34308 0 34 - 457.34308 - - 0s + 0 0 457.40081 0 34 - 457.40081 - - 0s + 0 0 481.44824 0 28 - 481.44824 - - 0s + 0 0 483.93940 0 27 - 483.93940 - - 0s +H 0 0 810.5420431 600.96821 25.9% - 0s + 0 0 600.96821 0 33 810.54204 600.96821 25.9% - 0s + 0 0 600.96821 0 34 810.54204 600.96821 25.9% - 0s +H 0 0 786.0498092 600.96821 23.5% - 0s + +Cutting planes: + Gomory: 1 + MIR: 18 + StrongCG: 1 + Flow cover: 10 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (196 simplex iterations) in 0.34 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 786.05 810.542 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.860498091825e+02, best bound 7.860498091825e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:56 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x1c82be2d +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.708318e+02, 97 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 370.83179 0 14 - 370.83179 - - 0s + 0 0 456.33860 0 32 - 456.33860 - - 0s + 0 0 456.87817 0 32 - 456.87817 - - 0s + 0 0 457.34308 0 34 - 457.34308 - - 0s + 0 0 457.40081 0 34 - 457.40081 - - 0s + 0 0 481.44824 0 28 - 481.44824 - - 0s + 0 0 483.93940 0 27 - 483.93940 - - 0s +H 0 0 810.5420431 600.96821 25.9% - 0s + 0 0 600.96821 0 33 810.54204 600.96821 25.9% - 0s + 0 0 600.96821 0 34 810.54204 600.96821 25.9% - 0s +H 0 0 786.0498092 600.96821 23.5% - 0s + +Cutting planes: + Gomory: 1 + MIR: 18 + StrongCG: 1 + Flow cover: 10 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (196 simplex iterations) in 0.36 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 786.05 810.542 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.860498091825e+02, best bound 7.860498091825e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:56 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xb1d83d9a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.842145e+02, 88 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 384.21451 0 14 - 384.21451 - - 0s + 0 0 469.65099 0 33 - 469.65099 - - 0s + 0 0 470.22421 0 35 - 470.22421 - - 0s + 0 0 486.63965 0 22 - 486.63965 - - 0s + 0 0 542.45753 0 30 - 542.45753 - - 0s + 0 0 542.45753 0 32 - 542.45753 - - 0s +H 0 0 810.7857384 542.45753 33.1% - 0s + 0 0 702.51466 0 33 810.78574 702.51466 13.4% - 0s + 0 0 795.47507 0 35 810.78574 795.47507 1.89% - 0s + 0 0 810.78574 0 35 810.78574 810.78574 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 5 + Flow cover: 7 + Zero half: 2 + Mod-K: 1 + RLT: 4 + +Explored 1 nodes (228 simplex iterations) in 0.32 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 810.786 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.107857384067e+02, best bound 8.107857384067e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:57 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xb1d83d9a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.842145e+02, 88 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 384.21451 0 14 - 384.21451 - - 0s + 0 0 469.65099 0 33 - 469.65099 - - 0s + 0 0 470.22421 0 35 - 470.22421 - - 0s + 0 0 486.63965 0 22 - 486.63965 - - 0s + 0 0 542.45753 0 30 - 542.45753 - - 0s + 0 0 542.45753 0 32 - 542.45753 - - 0s +H 0 0 810.7857384 542.45753 33.1% - 0s + 0 0 702.51466 0 33 810.78574 702.51466 13.4% - 0s + 0 0 795.47507 0 35 810.78574 795.47507 1.89% - 0s + 0 0 810.78574 0 35 810.78574 810.78574 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 5 + Flow cover: 7 + Zero half: 2 + Mod-K: 1 + RLT: 4 + +Explored 1 nodes (228 simplex iterations) in 0.37 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 810.786 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.107857384067e+02, best bound 8.107857384067e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:57 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x70f0d930 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.971123e+02, 97 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 397.11228 0 14 - 397.11228 - - 0s + 0 0 478.42073 0 35 - 478.42073 - - 0s +H 0 0 832.3498432 478.42073 42.5% - 0s + 0 0 479.32363 0 36 832.34984 479.32363 42.4% - 0s +H 0 0 830.3533550 500.82678 39.7% - 0s + 0 0 564.53129 0 25 830.35336 564.53129 32.0% - 0s + 0 0 605.90750 0 27 830.35336 605.90750 27.0% - 0s + 0 0 613.74082 0 27 830.35336 613.74082 26.1% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + Flow cover: 7 + Zero half: 6 + RLT: 3 + +Explored 1 nodes (170 simplex iterations) in 0.34 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 830.353 832.35 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.303533550333e+02, best bound 8.303533550333e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:58 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x70f0d930 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.971123e+02, 97 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 397.11228 0 14 - 397.11228 - - 0s + 0 0 478.42073 0 35 - 478.42073 - - 0s +H 0 0 832.3498432 478.42073 42.5% - 0s + 0 0 479.32363 0 36 832.34984 479.32363 42.4% - 0s +H 0 0 830.3533550 500.82678 39.7% - 0s + 0 0 564.53129 0 25 830.35336 564.53129 32.0% - 0s + 0 0 605.90750 0 27 830.35336 605.90750 27.0% - 0s + 0 0 613.74082 0 27 830.35336 613.74082 26.1% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + Flow cover: 7 + Zero half: 6 + RLT: 3 + +Explored 1 nodes (170 simplex iterations) in 0.32 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 830.353 832.35 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.303533550333e+02, best bound 8.303533550333e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:58 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf1905166 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.986538e+02, 96 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 398.65382 0 14 - 398.65382 - - 0s + 0 0 490.77730 0 34 - 490.77730 - - 0s + 0 0 494.24064 0 35 - 494.24064 - - 0s + 0 0 494.24064 0 37 - 494.24064 - - 0s + 0 0 522.78249 0 25 - 522.78249 - - 0s +H 0 0 839.2646286 522.78249 37.7% - 0s + 0 0 535.94500 0 26 839.26463 535.94500 36.1% - 0s + +Cutting planes: + Gomory: 1 + MIR: 10 + Flow cover: 9 + Zero half: 3 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (184 simplex iterations) in 0.24 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 839.265 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.392646286028e+02, best bound 8.392646286028e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:58 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf1905166 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.986538e+02, 96 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 398.65382 0 14 - 398.65382 - - 0s + 0 0 490.77730 0 34 - 490.77730 - - 0s + 0 0 494.24064 0 35 - 494.24064 - - 0s + 0 0 494.24064 0 37 - 494.24064 - - 0s + 0 0 522.78249 0 25 - 522.78249 - - 0s +H 0 0 839.2646286 522.78249 37.7% - 0s + 0 0 535.94500 0 26 839.26463 535.94500 36.1% - 0s + +Cutting planes: + Gomory: 1 + MIR: 10 + Flow cover: 9 + Zero half: 3 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (184 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 839.265 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.392646286028e+02, best bound 8.392646286028e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:59 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x8114104a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 8e+01] + Objective range [5e+01, 8e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 65 rows and 87 columns +Presolve time: 0.03s +Presolved: 102 rows, 123 columns, 837 nonzeros +Variable types: 0 continuous, 123 integer (68 binary) + +Root relaxation: objective 4.350949e+02, 75 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 435.09486 0 15 - 435.09486 - - 0s + 0 0 536.97961 0 35 - 536.97961 - - 0s +H 0 0 904.9899649 536.97961 40.7% - 0s + 0 0 581.11910 0 43 904.98996 581.11910 35.8% - 0s +H 0 0 895.3481251 581.11910 35.1% - 0s + 0 0 638.31868 0 40 895.34813 638.31868 28.7% - 0s + 0 0 643.87754 0 39 895.34813 643.87754 28.1% - 0s + 0 0 654.88473 0 39 895.34813 654.88473 26.9% - 0s + +Cutting planes: + Gomory: 4 + MIR: 15 + StrongCG: 2 + Flow cover: 5 + Inf proof: 2 + Zero half: 5 + RLT: 4 + +Explored 1 nodes (169 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 895.348 904.99 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.953481251103e+02, best bound 8.953481251103e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:59 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x8114104a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 8e+01] + Objective range [5e+01, 8e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 65 rows and 87 columns +Presolve time: 0.03s +Presolved: 102 rows, 123 columns, 837 nonzeros +Variable types: 0 continuous, 123 integer (68 binary) + +Root relaxation: objective 4.350949e+02, 75 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 435.09486 0 15 - 435.09486 - - 0s + 0 0 536.97961 0 35 - 536.97961 - - 0s +H 0 0 904.9899649 536.97961 40.7% - 0s + 0 0 581.11910 0 43 904.98996 581.11910 35.8% - 0s +H 0 0 895.3481251 581.11910 35.1% - 0s + 0 0 638.31868 0 40 895.34813 638.31868 28.7% - 0s + 0 0 643.87754 0 39 895.34813 643.87754 28.1% - 0s + 0 0 654.88473 0 39 895.34813 654.88473 26.9% - 0s + +Cutting planes: + Gomory: 4 + MIR: 15 + StrongCG: 2 + Flow cover: 5 + Inf proof: 2 + Zero half: 5 + RLT: 4 + +Explored 1 nodes (169 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 895.348 904.99 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.953481251103e+02, best bound 8.953481251103e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:55:59 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1373 nonzeros +Model fingerprint: 0xa8e8bcab +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 85 rows and 116 columns +Presolve time: 0.02s +Presolved: 82 rows, 94 columns, 576 nonzeros +Variable types: 0 continuous, 94 integer (52 binary) + +Root relaxation: objective 5.336761e+02, 38 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 533.67608 0 14 - 533.67608 - - 0s + 0 0 719.61078 0 26 - 719.61078 - - 0s + 0 0 724.50734 0 32 - 724.50734 - - 0s + 0 0 793.96586 0 27 - 793.96586 - - 0s + 0 0 942.50888 0 33 - 942.50888 - - 0s + +Cutting planes: + Gomory: 1 + MIR: 13 + StrongCG: 2 + Flow cover: 6 + Inf proof: 1 + Zero half: 6 + RLT: 2 + +Explored 1 nodes (105 simplex iterations) in 0.18 seconds +Thread count was 8 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:00 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1373 nonzeros +Model fingerprint: 0xa8e8bcab +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 85 rows and 116 columns +Presolve time: 0.02s +Presolved: 82 rows, 94 columns, 576 nonzeros +Variable types: 0 continuous, 94 integer (52 binary) + +Root relaxation: objective 5.336761e+02, 38 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 533.67608 0 14 - 533.67608 - - 0s + 0 0 719.61078 0 26 - 719.61078 - - 0s + 0 0 724.50734 0 32 - 724.50734 - - 0s + 0 0 793.96586 0 27 - 793.96586 - - 0s + 0 0 942.50888 0 33 - 942.50888 - - 0s + +Cutting planes: + Gomory: 1 + MIR: 13 + StrongCG: 2 + Flow cover: 6 + Inf proof: 1 + Zero half: 6 + RLT: 2 + +Explored 1 nodes (105 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:00 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1375 nonzeros +Model fingerprint: 0xe0890e7a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 140 rows and 194 columns +Presolve time: 0.01s + +Explored 0 nodes (0 simplex iterations) in 0.01 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:00 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1375 nonzeros +Model fingerprint: 0xe0890e7a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 140 rows and 194 columns +Presolve time: 0.02s + +Explored 0 nodes (0 simplex iterations) in 0.02 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:00 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1374 nonzeros +Model fingerprint: 0x58ebd7eb +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [1e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 9 rows and 64 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.01 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:00 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1374 nonzeros +Model fingerprint: 0x58ebd7eb +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [1e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 9 rows and 64 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.00 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:00 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa0e2e9a7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.617329e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.73290 0 14 - 361.73290 - - 0s + 0 0 447.27037 0 33 - 447.27037 - - 0s + 0 0 448.07551 0 34 - 448.07551 - - 0s + 0 0 448.16295 0 35 - 448.16295 - - 0s + 0 0 466.35796 0 27 - 466.35796 - - 0s + 0 0 466.77263 0 27 - 466.77263 - - 0s + 0 0 467.10840 0 29 - 467.10840 - - 0s + 0 0 607.02634 0 34 - 607.02634 - - 0s + 0 0 615.77604 0 38 - 615.77604 - - 0s + 0 0 615.77604 0 37 - 615.77604 - - 0s + 0 0 615.77604 0 40 - 615.77604 - - 0s + 0 0 615.77604 0 28 - 615.77604 - - 0s + 0 0 615.77604 0 32 - 615.77604 - - 0s +H 0 0 801.2877652 615.77604 23.2% - 0s +H 0 0 775.4998652 615.77604 20.6% - 0s + +Cutting planes: + Gomory: 1 + MIR: 11 + Flow cover: 13 + GUB cover: 1 + Inf proof: 1 + Mod-K: 2 + RLT: 3 + +Explored 1 nodes (244 simplex iterations) in 0.56 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 775.5 801.288 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.754998651895e+02, best bound 7.754998651895e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:01 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa0e2e9a7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.617329e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.73290 0 14 - 361.73290 - - 0s + 0 0 447.27037 0 33 - 447.27037 - - 0s + 0 0 448.07551 0 34 - 448.07551 - - 0s + 0 0 448.16295 0 35 - 448.16295 - - 0s + 0 0 466.35796 0 27 - 466.35796 - - 0s + 0 0 466.77263 0 27 - 466.77263 - - 0s + 0 0 467.10840 0 29 - 467.10840 - - 0s + 0 0 607.02634 0 34 - 607.02634 - - 0s + 0 0 615.77604 0 38 - 615.77604 - - 0s + 0 0 615.77604 0 37 - 615.77604 - - 0s + 0 0 615.77604 0 40 - 615.77604 - - 0s + 0 0 615.77604 0 28 - 615.77604 - - 0s + 0 0 615.77604 0 32 - 615.77604 - - 0s +H 0 0 801.2877652 615.77604 23.2% - 0s +H 0 0 775.4998652 615.77604 20.6% - 0s + +Cutting planes: + Gomory: 1 + MIR: 11 + Flow cover: 13 + GUB cover: 1 + Inf proof: 1 + Mod-K: 2 + RLT: 3 + +Explored 1 nodes (244 simplex iterations) in 0.41 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 775.5 801.288 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.754998651895e+02, best bound 7.754998651895e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 15:56:01 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xdf042b5e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.643723e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 364.37228 0 14 - 364.37228 - - 0s + 0 0 449.00614 0 35 - 449.00614 - - 0s + 0 0 449.40547 0 35 - 449.40547 - - 0s + 0 0 471.36362 0 22 - 471.36362 - - 0s + 0 0 477.86244 0 21 - 477.86244 - - 0s + 0 0 540.50725 0 27 - 540.50725 - - 0s + 0 0 557.49898 0 37 - 557.49898 - - 0s +H 0 0 778.2555880 557.49898 28.4% - 0s + +Cutting planes: + Gomory: 2 + MIR: 16 + Flow cover: 11 + Inf proof: 1 + Zero half: 1 + RLT: 5 + +Explored 1 nodes (221 simplex iterations) in 0.51 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 778.256 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.782555880190e+02, best bound 7.782555880190e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:15 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x9f27c4df +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612127e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.21268 0 14 - 361.21268 - - 0s + 0 0 445.70080 0 30 - 445.70080 - - 0s + 0 0 446.20384 0 20 - 446.20384 - - 0s + 0 0 446.95771 0 35 - 446.95771 - - 0s + 0 0 467.98069 0 28 - 467.98069 - - 0s + 0 0 468.22258 0 29 - 468.22258 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 684.01168 0 36 - 684.01168 - - 0s + 0 0 687.96070 0 36 - 687.96070 - - 0s +H 0 0 777.4852859 687.96070 11.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 11 + StrongCG: 2 + Flow cover: 10 + Zero half: 1 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (212 simplex iterations) in 0.46 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 777.485 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.774852859196e+02, best bound 7.774852859196e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:16 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x9f27c4df +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612127e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.21268 0 14 - 361.21268 - - 0s + 0 0 445.70080 0 30 - 445.70080 - - 0s + 0 0 446.20384 0 20 - 446.20384 - - 0s + 0 0 446.95771 0 35 - 446.95771 - - 0s + 0 0 467.98069 0 28 - 467.98069 - - 0s + 0 0 468.22258 0 29 - 468.22258 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 618.26001 0 33 - 618.26001 - - 0s + 0 0 684.01168 0 36 - 684.01168 - - 0s + 0 0 687.96070 0 36 - 687.96070 - - 0s +H 0 0 777.4852859 687.96070 11.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 11 + StrongCG: 2 + Flow cover: 10 + Zero half: 1 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (212 simplex iterations) in 0.50 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 777.485 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.774852859196e+02, best bound 7.774852859196e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:17 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa1887ec7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.06s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.631469e+02, 86 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.14695 0 14 - 363.14695 - - 0s + 0 0 447.74726 0 34 - 447.74726 - - 0s + 0 0 448.74355 0 34 - 448.74355 - - 0s + 0 0 448.99477 0 34 - 448.99477 - - 0s + 0 0 467.28964 0 25 - 467.28964 - - 0s + 0 0 467.31618 0 25 - 467.31618 - - 0s + 0 0 589.70129 0 30 - 589.70129 - - 0s + 0 0 594.55652 0 32 - 594.55652 - - 0s + 0 0 594.55652 0 31 - 594.55652 - - 0s + 0 0 616.90013 0 31 - 616.90013 - - 0s + 0 0 616.90013 0 33 - 616.90013 - - 0s +H 0 0 985.6827395 616.90013 37.4% - 0s +H 0 0 777.0967571 616.90013 20.6% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + StrongCG: 1 + Flow cover: 5 + Zero half: 2 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (211 simplex iterations) in 0.43 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.097 985.683 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.770967571098e+02, best bound 7.770967571098e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:17 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa1887ec7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.631469e+02, 86 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.14695 0 14 - 363.14695 - - 0s + 0 0 447.74726 0 34 - 447.74726 - - 0s + 0 0 448.74355 0 34 - 448.74355 - - 0s + 0 0 448.99477 0 34 - 448.99477 - - 0s + 0 0 467.28964 0 25 - 467.28964 - - 0s + 0 0 467.31618 0 25 - 467.31618 - - 0s + 0 0 589.70129 0 30 - 589.70129 - - 0s + 0 0 594.55652 0 32 - 594.55652 - - 0s + 0 0 594.55652 0 31 - 594.55652 - - 0s + 0 0 616.90013 0 31 - 616.90013 - - 0s + 0 0 616.90013 0 33 - 616.90013 - - 0s +H 0 0 985.6827395 616.90013 37.4% - 0s +H 0 0 777.0967571 616.90013 20.6% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + StrongCG: 1 + Flow cover: 5 + Zero half: 2 + Mod-K: 2 + RLT: 2 + +Explored 1 nodes (211 simplex iterations) in 0.40 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.097 985.683 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.770967571098e+02, best bound 7.770967571098e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:18 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x8264b64e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.669926e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 366.99259 0 14 - 366.99259 - - 0s + 0 0 454.81034 0 26 - 454.81034 - - 0s + 0 0 455.32449 0 20 - 455.32449 - - 0s + 0 0 455.86124 0 35 - 455.86124 - - 0s + 0 0 476.81381 0 26 - 476.81381 - - 0s + 0 0 480.81179 0 26 - 480.81179 - - 0s + 0 0 482.50283 0 29 - 482.50283 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 30 - 622.05385 - - 0s +H 0 0 814.1555193 622.05385 23.6% - 0s +H 0 0 782.4647174 622.05385 20.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (256 simplex iterations) in 0.43 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 782.465 814.156 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.824647173694e+02, best bound 7.824647173694e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:18 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x8264b64e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.669926e+02, 91 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 366.99259 0 14 - 366.99259 - - 0s + 0 0 454.81034 0 26 - 454.81034 - - 0s + 0 0 455.32449 0 20 - 455.32449 - - 0s + 0 0 455.86124 0 35 - 455.86124 - - 0s + 0 0 476.81381 0 26 - 476.81381 - - 0s + 0 0 480.81179 0 26 - 480.81179 - - 0s + 0 0 482.50283 0 29 - 482.50283 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 41 - 622.05385 - - 0s + 0 0 622.05385 0 30 - 622.05385 - - 0s +H 0 0 814.1555193 622.05385 23.6% - 0s +H 0 0 782.4647174 622.05385 20.5% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (256 simplex iterations) in 0.44 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 782.465 814.156 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.824647173694e+02, best bound 7.824647173694e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:19 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe9a197c9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.735041e+02, 97 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 373.50407 0 14 - 373.50407 - - 0s + 0 0 457.64418 0 29 - 457.64418 - - 0s + 0 0 458.43041 0 33 - 458.43041 - - 0s + 0 0 459.32719 0 34 - 459.32719 - - 0s + 0 0 459.37579 0 34 - 459.37579 - - 0s +H 0 0 790.8262513 459.37579 41.9% - 0s + 0 0 495.37323 0 27 790.82625 495.37323 37.4% - 0s + 0 0 499.12085 0 28 790.82625 499.12085 36.9% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + Flow cover: 12 + Inf proof: 2 + Zero half: 3 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (162 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 790.826 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.908262512524e+02, best bound 7.908262512524e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:19 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe9a197c9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.735041e+02, 97 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 373.50407 0 14 - 373.50407 - - 0s + 0 0 457.64418 0 29 - 457.64418 - - 0s + 0 0 458.43041 0 33 - 458.43041 - - 0s + 0 0 459.32719 0 34 - 459.32719 - - 0s + 0 0 459.37579 0 34 - 459.37579 - - 0s +H 0 0 790.8262513 459.37579 41.9% - 0s + 0 0 495.37323 0 27 790.82625 495.37323 37.4% - 0s + 0 0 499.12085 0 28 790.82625 499.12085 36.9% - 0s + +Cutting planes: + Gomory: 1 + MIR: 16 + Flow cover: 12 + Inf proof: 2 + Zero half: 3 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (162 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 790.826 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.908262512524e+02, best bound 7.908262512524e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:19 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x7f8d7a00 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.769709e+02, 94 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 376.97085 0 14 - 376.97085 - - 0s + 0 0 462.98331 0 30 - 462.98331 - - 0s + 0 0 463.49240 0 32 - 463.49240 - - 0s + 0 0 463.92382 0 34 - 463.92382 - - 0s + 0 0 489.82122 0 31 - 489.82122 - - 0s + 0 0 491.01412 0 30 - 491.01412 - - 0s +H 0 0 819.0298409 491.01412 40.0% - 0s +H 0 0 793.8472735 491.01412 38.1% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 1 + Flow cover: 11 + Inf proof: 1 + RLT: 3 + +Explored 1 nodes (177 simplex iterations) in 0.37 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 793.847 819.03 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.938472734776e+02, best bound 7.938472734776e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:20 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x7f8d7a00 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.769709e+02, 94 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 376.97085 0 14 - 376.97085 - - 0s + 0 0 462.98331 0 30 - 462.98331 - - 0s + 0 0 463.49240 0 32 - 463.49240 - - 0s + 0 0 463.92382 0 34 - 463.92382 - - 0s + 0 0 489.82122 0 31 - 489.82122 - - 0s + 0 0 491.01412 0 30 - 491.01412 - - 0s +H 0 0 819.0298409 491.01412 40.0% - 0s +H 0 0 793.8472735 491.01412 38.1% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 1 + Flow cover: 11 + Inf proof: 1 + RLT: 3 + +Explored 1 nodes (177 simplex iterations) in 0.30 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 793.847 819.03 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.938472734776e+02, best bound 7.938472734776e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:20 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x47f74b14 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.965968e+02, 87 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 396.59685 0 14 - 396.59685 - - 0s + 0 0 480.80107 0 33 - 480.80107 - - 0s +H 0 0 829.9074799 480.80107 42.1% - 0s + 0 0 481.39663 0 35 829.90748 481.39663 42.0% - 0s + 0 0 553.91629 0 25 829.90748 553.91629 33.3% - 0s + 0 0 593.47073 0 29 829.90748 593.47073 28.5% - 0s + 0 0 597.95780 0 33 829.90748 597.95780 27.9% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 2 + Flow cover: 9 + Inf proof: 2 + Zero half: 5 + RLT: 2 + +Explored 1 nodes (175 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 829.907 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.299074798515e+02, best bound 8.299074798515e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:20 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x47f74b14 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.965968e+02, 87 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 396.59685 0 14 - 396.59685 - - 0s + 0 0 480.80107 0 33 - 480.80107 - - 0s +H 0 0 829.9074799 480.80107 42.1% - 0s + 0 0 481.39663 0 35 829.90748 481.39663 42.0% - 0s + 0 0 553.91629 0 25 829.90748 553.91629 33.3% - 0s + 0 0 593.47073 0 29 829.90748 593.47073 28.5% - 0s + 0 0 597.95780 0 33 829.90748 597.95780 27.9% - 0s + +Cutting planes: + Gomory: 3 + MIR: 15 + StrongCG: 2 + Flow cover: 9 + Inf proof: 2 + Zero half: 5 + RLT: 2 + +Explored 1 nodes (175 simplex iterations) in 0.34 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 829.907 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.299074798515e+02, best bound 8.299074798515e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:21 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x715e9916 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 4.191180e+02, 88 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.11800 0 14 - 419.11800 - - 0s + 0 0 493.86511 0 31 - 493.86511 - - 0s + 0 0 494.75310 0 33 - 494.75310 - - 0s + 0 0 495.77935 0 35 - 495.77935 - - 0s + 0 0 517.15766 0 26 - 517.15766 - - 0s +H 0 0 866.9599398 517.15766 40.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s +H 0 0 847.3391449 525.83651 37.9% - 0s + 0 0 707.64888 0 36 847.33914 707.64888 16.5% - 0s + 0 0 757.55261 0 35 847.33914 757.55261 10.6% - 0s + 0 0 765.95177 0 35 847.33914 765.95177 9.61% - 0s + +Cutting planes: + Gomory: 1 + MIR: 17 + Flow cover: 7 + Inf proof: 1 + Zero half: 7 + RLT: 4 + +Explored 1 nodes (175 simplex iterations) in 0.39 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 847.339 866.96 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.473391448781e+02, best bound 8.473391448781e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:21 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x715e9916 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 4.191180e+02, 88 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.11800 0 14 - 419.11800 - - 0s + 0 0 493.86511 0 31 - 493.86511 - - 0s + 0 0 494.75310 0 33 - 494.75310 - - 0s + 0 0 495.77935 0 35 - 495.77935 - - 0s + 0 0 517.15766 0 26 - 517.15766 - - 0s +H 0 0 866.9599398 517.15766 40.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s + 0 0 525.83651 0 23 866.95994 525.83651 39.3% - 0s +H 0 0 847.3391449 525.83651 37.9% - 0s + 0 0 707.64888 0 36 847.33914 707.64888 16.5% - 0s + 0 0 757.55261 0 35 847.33914 757.55261 10.6% - 0s + 0 0 765.95177 0 35 847.33914 765.95177 9.61% - 0s + +Cutting planes: + Gomory: 1 + MIR: 17 + Flow cover: 7 + Inf proof: 1 + Zero half: 7 + RLT: 4 + +Explored 1 nodes (175 simplex iterations) in 0.37 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 847.339 866.96 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.473391448781e+02, best bound 8.473391448781e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:22 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa068249a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) +Found heuristic solution: objective 922.7580884 + +Root relaxation: objective 4.196677e+02, 80 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.66767 0 14 922.75809 419.66767 54.5% - 0s + 0 0 516.38146 0 30 922.75809 516.38146 44.0% - 0s + 0 0 518.10740 0 36 922.75809 518.10740 43.9% - 0s + 0 0 584.91355 0 23 922.75809 584.91355 36.6% - 0s + 0 0 632.02275 0 33 922.75809 632.02275 31.5% - 0s + 0 0 633.13855 0 34 922.75809 633.13855 31.4% - 0s +H 0 0 878.2952021 633.13855 27.9% - 0s + +Cutting planes: + Gomory: 2 + MIR: 10 + Flow cover: 10 + Inf proof: 1 + Zero half: 4 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (182 simplex iterations) in 0.34 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 878.295 922.758 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.782952021047e+02, best bound 8.782952021047e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:22 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xa068249a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) +Found heuristic solution: objective 922.7580884 + +Root relaxation: objective 4.196677e+02, 80 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 419.66767 0 14 922.75809 419.66767 54.5% - 0s + 0 0 516.38146 0 30 922.75809 516.38146 44.0% - 0s + 0 0 518.10740 0 36 922.75809 518.10740 43.9% - 0s + 0 0 584.91355 0 23 922.75809 584.91355 36.6% - 0s + 0 0 632.02275 0 33 922.75809 632.02275 31.5% - 0s + 0 0 633.13855 0 34 922.75809 633.13855 31.4% - 0s +H 0 0 878.2952021 633.13855 27.9% - 0s + +Cutting planes: + Gomory: 2 + MIR: 10 + Flow cover: 10 + Inf proof: 1 + Zero half: 4 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (182 simplex iterations) in 0.31 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 878.295 922.758 + +Optimal solution found (tolerance 1.00e-04) +Best objective 8.782952021047e+02, best bound 8.782952021047e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:22 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x410a323e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 825 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 5.058364e+02, 74 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 505.83641 0 15 - 505.83641 - - 0s + 0 0 599.48211 0 36 - 599.48211 - - 0s + 0 0 602.91370 0 34 - 602.91370 - - 0s + 0 0 628.13414 0 39 - 628.13414 - - 0s + 0 0 632.95363 0 39 - 632.95363 - - 0s + 0 0 633.17689 0 40 - 633.17689 - - 0s +H 0 0 977.7633232 633.17689 35.2% - 0s + +Cutting planes: + Gomory: 3 + Clique: 1 + MIR: 17 + StrongCG: 2 + Flow cover: 7 + Zero half: 1 + Mod-K: 1 + RLT: 9 + +Explored 1 nodes (151 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 977.763 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.777633232288e+02, best bound 9.777633232288e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:23 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x410a323e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 825 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 5.058364e+02, 74 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 505.83641 0 15 - 505.83641 - - 0s + 0 0 599.48211 0 36 - 599.48211 - - 0s + 0 0 602.91370 0 34 - 602.91370 - - 0s + 0 0 628.13414 0 39 - 628.13414 - - 0s + 0 0 632.95363 0 39 - 632.95363 - - 0s + 0 0 633.17689 0 40 - 633.17689 - - 0s +H 0 0 977.7633232 633.17689 35.2% - 0s + +Cutting planes: + Gomory: 3 + Clique: 1 + MIR: 17 + StrongCG: 2 + Flow cover: 7 + Zero half: 1 + Mod-K: 1 + RLT: 9 + +Explored 1 nodes (151 simplex iterations) in 0.34 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 977.763 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.777633232288e+02, best bound 9.777633232288e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:23 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1373 nonzeros +Model fingerprint: 0xdc21f627 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 157 rows and 204 columns +Presolve time: 0.06s + +Explored 0 nodes (0 simplex iterations) in 0.07 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:23 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1373 nonzeros +Model fingerprint: 0xdc21f627 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 157 rows and 204 columns +Presolve time: 0.02s + +Explored 0 nodes (0 simplex iterations) in 0.03 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:23 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1377 nonzeros +Model fingerprint: 0x85610366 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 6 rows and 63 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.00 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:23 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1377 nonzeros +Model fingerprint: 0x85610366 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [5e+01, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 6 rows and 63 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.00 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:24 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x270a20b2 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612904e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.29040 0 14 - 361.29040 - - 0s + 0 0 446.45478 0 34 - 446.45478 - - 0s +H 0 0 774.8181295 446.45478 42.4% - 0s + 0 0 446.63812 0 35 774.81813 446.63812 42.4% - 0s + 0 0 468.00635 0 23 774.81813 468.00635 39.6% - 0s + 0 0 473.12403 0 21 774.81813 473.12403 38.9% - 0s + 0 0 598.34280 0 29 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 31 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 33 774.81813 598.34280 22.8% - 0s + +Cutting planes: + Gomory: 1 + MIR: 14 + Flow cover: 13 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (211 simplex iterations) in 0.53 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 774.818 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.748181294994e+02, best bound 7.747713995505e+02, gap 0.0060% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:24 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x270a20b2 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.612904e+02, 91 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 361.29040 0 14 - 361.29040 - - 0s + 0 0 446.45478 0 34 - 446.45478 - - 0s +H 0 0 774.8181295 446.45478 42.4% - 0s + 0 0 446.63812 0 35 774.81813 446.63812 42.4% - 0s + 0 0 468.00635 0 23 774.81813 468.00635 39.6% - 0s + 0 0 473.12403 0 21 774.81813 473.12403 38.9% - 0s + 0 0 598.34280 0 29 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 31 774.81813 598.34280 22.8% - 0s + 0 0 598.34280 0 33 774.81813 598.34280 22.8% - 0s + +Cutting planes: + Gomory: 1 + MIR: 14 + Flow cover: 13 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (211 simplex iterations) in 0.47 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 774.818 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.748181294994e+02, best bound 7.747713995505e+02, gap 0.0060% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4043d94b +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.637007e+02, 92 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.70075 0 14 - 363.70075 - - 0s + 0 0 450.32351 0 33 - 450.32351 - - 0s + 0 0 451.09419 0 34 - 451.09419 - - 0s + 0 0 451.20327 0 35 - 451.20327 - - 0s + 0 0 470.18596 0 27 - 470.18596 - - 0s + 0 0 470.52219 0 27 - 470.52219 - - 0s +H 0 0 806.9075458 470.52219 41.7% - 0s +H 0 0 777.9670646 470.52219 39.5% - 0s + 0 0 777.90792 0 36 777.96706 777.90792 0.01% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (215 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.967 806.908 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.779670646087e+02, best bound 7.779079178855e+02, gap 0.0076% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:17:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4043d94b +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [5e+01, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 851 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.637007e+02, 92 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 363.70075 0 14 - 363.70075 - - 0s + 0 0 450.32351 0 33 - 450.32351 - - 0s + 0 0 451.09419 0 34 - 451.09419 - - 0s + 0 0 451.20327 0 35 - 451.20327 - - 0s + 0 0 470.18596 0 27 - 470.18596 - - 0s + 0 0 470.52219 0 27 - 470.52219 - - 0s +H 0 0 806.9075458 470.52219 41.7% - 0s +H 0 0 777.9670646 470.52219 39.5% - 0s + 0 0 777.90792 0 36 777.96706 777.90792 0.01% - 0s + +Cutting planes: + Gomory: 2 + MIR: 15 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (215 simplex iterations) in 0.37 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 777.967 806.908 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.779670646087e+02, best bound 7.779079178855e+02, gap 0.0076% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:24:11 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:24:12 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.37 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:24:12 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:24:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.19 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:24:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:28:24 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.30 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:28:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.30 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:28:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:28:26 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:28:26 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:28:27 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:07 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:08 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.35 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:08 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:08 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.19 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:09 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:09 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:09 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0xcd9269e8 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.373285e+02, 61 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 337.32848 0 20 - 337.32848 - - 0s + 0 0 365.24353 0 13 - 365.24353 - - 0s +H 0 0 976.2251107 365.24353 62.6% - 0s + 0 0 577.99599 0 32 976.22511 577.99599 40.8% - 0s + 0 0 601.24891 0 34 976.22511 601.24891 38.4% - 0s +H 0 0 609.6670876 601.24891 1.38% - 0s + +Cutting planes: + Gomory: 3 + Cover: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 7 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.26 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 609.667 976.225 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.096670875788e+02, best bound 6.096670875788e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:10 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0xcd9269e8 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.373285e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 337.32848 0 20 - 337.32848 - - 0s + 0 0 365.24353 0 13 - 365.24353 - - 0s +H 0 0 976.2251107 365.24353 62.6% - 0s + 0 0 577.99599 0 32 976.22511 577.99599 40.8% - 0s + 0 0 601.24891 0 34 976.22511 601.24891 38.4% - 0s +H 0 0 609.6670876 601.24891 1.38% - 0s + +Cutting planes: + Gomory: 3 + Cover: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 7 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.25 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 609.667 976.225 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.096670875788e+02, best bound 6.096670875788e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:10 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x534dcdbd +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.407837e+02, 61 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 340.78375 0 20 - 340.78375 - - 0s + 0 0 365.41481 0 13 - 365.41481 - - 0s +H 0 0 959.5591379 367.99579 61.6% - 0s + 0 0 420.33458 0 32 959.55914 420.33458 56.2% - 0s + 0 0 462.52307 0 34 959.55914 462.52307 51.8% - 0s +H 0 0 663.2505468 578.59532 12.8% - 0s + 0 0 592.21657 0 20 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 14 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 21 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 32 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 20 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 19 663.25055 592.21657 10.7% - 0s +H 0 0 605.8159159 592.21657 2.24% - 0s + 0 0 605.81592 0 21 605.81592 605.81592 0.00% - 0s + +Cutting planes: + Cover: 1 + MIR: 10 + StrongCG: 3 + Flow cover: 6 + Inf proof: 1 + Zero half: 1 + +Explored 1 nodes (295 simplex iterations) in 0.41 seconds +Thread count was 8 (of 8 available processors) + +Solution count 3: 605.816 663.251 959.559 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.058159158676e+02, best bound 6.058159158676e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:10 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x534dcdbd +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.407837e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 340.78375 0 20 - 340.78375 - - 0s + 0 0 365.41481 0 13 - 365.41481 - - 0s +H 0 0 959.5591379 367.99579 61.6% - 0s + 0 0 420.33458 0 32 959.55914 420.33458 56.2% - 0s + 0 0 462.52307 0 34 959.55914 462.52307 51.8% - 0s +H 0 0 663.2505468 578.59532 12.8% - 0s + 0 0 592.21657 0 20 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 14 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 21 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 32 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 20 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 19 663.25055 592.21657 10.7% - 0s +H 0 0 605.8159159 592.21657 2.24% - 0s + 0 0 605.81592 0 21 605.81592 605.81592 0.00% - 0s + +Cutting planes: + Cover: 1 + MIR: 10 + StrongCG: 3 + Flow cover: 6 + Inf proof: 1 + Zero half: 1 + +Explored 1 nodes (295 simplex iterations) in 0.40 seconds +Thread count was 8 (of 8 available processors) + +Solution count 3: 605.816 663.251 959.559 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.058159158676e+02, best bound 6.058159158676e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:11 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x377618e2 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.06s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.608428e+02, 56 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 360.84283 0 14 - 360.84283 - - 0s + 0 0 386.51815 0 21 - 386.51815 - - 0s + 0 0 449.32252 0 25 - 449.32252 - - 0s + 0 0 471.02951 0 26 - 471.02951 - - 0s + 0 0 471.02951 0 37 - 471.02951 - - 0s +H 0 0 688.7420768 471.02951 31.6% - 0s + 0 0 471.02951 0 38 688.74208 471.02951 31.6% - 0s +H 0 0 620.0892502 471.02951 24.0% - 0s + +Cutting planes: + Gomory: 2 + MIR: 9 + StrongCG: 2 + Flow cover: 8 + GUB cover: 1 + Mod-K: 3 + RLT: 3 + +Explored 1 nodes (163 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 620.089 688.742 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.200892502244e+02, best bound 6.200892502244e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:11 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x377618e2 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.608428e+02, 56 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 360.84283 0 14 - 360.84283 - - 0s + 0 0 386.51815 0 21 - 386.51815 - - 0s + 0 0 449.32252 0 25 - 449.32252 - - 0s + 0 0 471.02951 0 26 - 471.02951 - - 0s + 0 0 471.02951 0 37 - 471.02951 - - 0s +H 0 0 688.7420768 471.02951 31.6% - 0s + 0 0 471.02951 0 38 688.74208 471.02951 31.6% - 0s +H 0 0 620.0892502 471.02951 24.0% - 0s + +Cutting planes: + Gomory: 2 + MIR: 9 + StrongCG: 2 + Flow cover: 8 + GUB cover: 1 + Mod-K: 3 + RLT: 3 + +Explored 1 nodes (163 simplex iterations) in 0.24 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 620.089 688.742 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.200892502244e+02, best bound 6.200892502244e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:11 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0xccaa240b +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.807692e+02, 66 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 380.76925 0 9 - 380.76925 - - 0s + 0 0 383.34892 0 15 - 383.34892 - - 0s +H 0 0 985.2979388 383.34892 61.1% - 0s + 0 0 436.51227 0 20 985.29794 436.51227 55.7% - 0s + 0 0 472.56305 0 22 985.29794 472.56305 52.0% - 0s + 0 0 472.56305 0 30 985.29794 472.56305 52.0% - 0s +H 0 0 718.0961134 472.56305 34.2% - 0s +H 0 0 632.6169488 472.56305 25.3% - 0s + +Cutting planes: + Gomory: 1 + MIR: 3 + StrongCG: 3 + Flow cover: 8 + Inf proof: 1 + Zero half: 1 + +Explored 1 nodes (145 simplex iterations) in 0.26 seconds +Thread count was 8 (of 8 available processors) + +Solution count 3: 632.617 718.096 985.298 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.326169488258e+02, best bound 6.326169488258e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:12 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0xccaa240b +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.807692e+02, 66 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 380.76925 0 9 - 380.76925 - - 0s + 0 0 383.34892 0 15 - 383.34892 - - 0s +H 0 0 985.2979388 383.34892 61.1% - 0s + 0 0 436.51227 0 20 985.29794 436.51227 55.7% - 0s + 0 0 472.56305 0 22 985.29794 472.56305 52.0% - 0s + 0 0 472.56305 0 30 985.29794 472.56305 52.0% - 0s +H 0 0 718.0961134 472.56305 34.2% - 0s +H 0 0 632.6169488 472.56305 25.3% - 0s + +Cutting planes: + Gomory: 1 + MIR: 3 + StrongCG: 3 + Flow cover: 8 + Inf proof: 1 + Zero half: 1 + +Explored 1 nodes (145 simplex iterations) in 0.31 seconds +Thread count was 8 (of 8 available processors) + +Solution count 3: 632.617 718.096 985.298 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.326169488258e+02, best bound 6.326169488258e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:12 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x5c5f5e0c +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.05s +Presolved: 101 rows, 121 columns, 814 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 3.965426e+02, 68 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 396.54264 0 14 - 396.54264 - - 0s +H 0 0 748.6673713 396.54264 47.0% - 0s + 0 0 470.60101 0 16 748.66737 470.60101 37.1% - 0s + 0 0 567.80339 0 34 748.66737 567.80339 24.2% - 0s + 0 0 748.66737 0 31 748.66737 748.66737 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 2 + Flow cover: 2 + +Explored 1 nodes (143 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 748.667 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.486673712729e+02, best bound 7.486673712729e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:12 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x5c5f5e0c +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 814 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 3.965426e+02, 68 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 396.54264 0 14 - 396.54264 - - 0s +H 0 0 748.6673713 396.54264 47.0% - 0s + 0 0 470.60101 0 16 748.66737 470.60101 37.1% - 0s + 0 0 567.80339 0 34 748.66737 567.80339 24.2% - 0s + 0 0 748.66737 0 31 748.66737 748.66737 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 2 + Flow cover: 2 + +Explored 1 nodes (143 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 748.667 + +Optimal solution found (tolerance 1.00e-04) +Best objective 7.486673712729e+02, best bound 7.486673712729e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x737f20a9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [1e+02, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 68 rows and 93 columns +Presolve time: 0.06s +Presolved: 99 rows, 117 columns, 808 nonzeros +Variable types: 0 continuous, 117 integer (65 binary) + +Root relaxation: objective 4.980622e+02, 64 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 498.06221 0 20 - 498.06221 - - 0s + 0 0 593.23494 0 19 - 593.23494 - - 0s +H 0 0 979.0100869 593.23494 39.4% - 0s + 0 0 687.05553 0 27 979.01009 687.05553 29.8% - 0s + 0 0 699.82031 0 27 979.01009 699.82031 28.5% - 0s + 0 2 699.82031 0 27 979.01009 699.82031 28.5% - 0s +* 34 0 13 926.5728065 911.53065 1.62% 12.7 0s + +Cutting planes: + Gomory: 1 + MIR: 3 + StrongCG: 2 + RLT: 2 + +Explored 36 nodes (585 simplex iterations) in 0.50 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 926.573 979.01 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.265728065237e+02, best bound 9.265728065237e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x737f20a9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [1e+02, 1e+05] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 68 rows and 93 columns +Presolve time: 0.04s +Presolved: 99 rows, 117 columns, 808 nonzeros +Variable types: 0 continuous, 117 integer (65 binary) + +Root relaxation: objective 4.980622e+02, 64 iterations, 0.02 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 498.06221 0 20 - 498.06221 - - 0s + 0 0 593.23494 0 19 - 593.23494 - - 0s +H 0 0 979.0100869 593.23494 39.4% - 0s + 0 0 687.05553 0 27 979.01009 687.05553 29.8% - 0s + 0 0 699.82031 0 27 979.01009 699.82031 28.5% - 0s + 0 2 699.82031 0 27 979.01009 699.82031 28.5% - 0s +* 34 0 13 926.5728065 911.53065 1.62% 12.7 0s + +Cutting planes: + Gomory: 1 + MIR: 3 + StrongCG: 2 + RLT: 2 + +Explored 36 nodes (585 simplex iterations) in 0.69 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 926.573 979.01 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.265728065237e+02, best bound 9.265728065237e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1365 nonzeros +Model fingerprint: 0x5996c9e3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [2e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 99 rows and 146 columns +Presolve time: 0.04s +Presolved: 68 rows, 64 columns, 389 nonzeros +Variable types: 0 continuous, 64 integer (36 binary) + +Root relaxation: objective 4.762871e+02, 33 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 476.28711 0 9 - 476.28711 - - 0s + 0 0 718.97487 0 10 - 718.97487 - - 0s +H 0 0 940.8714547 718.97487 23.6% - 0s + 0 0 940.87145 0 33 940.87145 940.87145 0.00% - 0s + +Cutting planes: + Gomory: 3 + Implied bound: 1 + MIR: 9 + StrongCG: 2 + Flow cover: 3 + +Explored 1 nodes (75 simplex iterations) in 0.12 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 940.871 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.408714547093e+02, best bound 9.408714547093e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1365 nonzeros +Model fingerprint: 0x5996c9e3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [2e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 99 rows and 146 columns +Presolve time: 0.04s +Presolved: 68 rows, 64 columns, 389 nonzeros +Variable types: 0 continuous, 64 integer (36 binary) + +Root relaxation: objective 4.762871e+02, 33 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 476.28711 0 9 - 476.28711 - - 0s + 0 0 718.97487 0 10 - 718.97487 - - 0s +H 0 0 940.8714547 718.97487 23.6% - 0s + 0 0 940.87145 0 33 940.87145 940.87145 0.00% - 0s + +Cutting planes: + Gomory: 3 + Implied bound: 1 + MIR: 9 + StrongCG: 2 + Flow cover: 3 + +Explored 1 nodes (75 simplex iterations) in 0.16 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 940.871 + +Optimal solution found (tolerance 1.00e-04) +Best objective 9.408714547093e+02, best bound 9.408714547093e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1369 nonzeros +Model fingerprint: 0x4f965c3e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [2e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 6 rows and 67 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.00 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1369 nonzeros +Model fingerprint: 0x4f965c3e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 1e+04] + Objective range [2e+02, 2e+06] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 6 rows and 67 columns +Presolve time: 0.00s + +Explored 0 nodes (0 simplex iterations) in 0.00 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:37:15 2024 + +Academic license - for non-commercial use only + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:24 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.36 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:24 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x6a8fdea3 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.267558e+02, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 326.75580 0 20 - 326.75580 - - 0s + 0 0 350.50720 0 13 - 350.50720 - - 0s +H 0 0 588.3963919 357.40053 39.3% - 0s + 0 0 409.28479 0 24 588.39639 409.28479 30.4% - 0s + 0 0 431.12383 0 35 588.39639 431.12383 26.7% - 0s + +Cutting planes: + MIR: 14 + StrongCG: 3 + Flow cover: 11 + Inf proof: 3 + Mod-K: 4 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.25 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 588.396 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883963918989e+02, best bound 5.883963918989e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x21caf129 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.277408e+02, 62 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 327.74082 0 15 - 327.74082 - - 0s +H 0 0 643.0999555 327.74082 49.0% - 0s + 0 0 351.66983 0 7 643.09996 351.66983 45.3% - 0s + 0 0 571.84537 0 30 643.09996 571.84537 11.1% - 0s +H 0 0 587.6952214 571.84537 2.70% - 0s + 0 0 584.05922 0 30 587.69522 584.05922 0.62% - 0s + 0 0 587.69522 0 32 587.69522 587.69522 0.00% - 0s + +Cutting planes: + Gomory: 2 + MIR: 1 + StrongCG: 1 + Flow cover: 3 + RLT: 2 + +Explored 1 nodes (131 simplex iterations) in 0.19 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 587.695 643.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.876952213579e+02, best bound 5.876952213579e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:25 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.28 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:26 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x14e3ead5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.328173e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 332.81734 0 20 - 332.81734 - - 0s + 0 0 358.79167 0 13 - 358.79167 - - 0s +H 0 0 595.0129880 359.89164 39.5% - 0s + 0 0 415.67609 0 24 595.01299 415.67609 30.1% - 0s + 0 0 538.35384 0 35 595.01299 538.35384 9.52% - 0s + +Cutting planes: + MIR: 15 + StrongCG: 3 + Flow cover: 8 + Inf proof: 2 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (142 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 595.013 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.950129879898e+02, best bound 5.950129879898e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:26 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0xcd9269e8 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.373285e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 337.32848 0 20 - 337.32848 - - 0s + 0 0 365.24353 0 13 - 365.24353 - - 0s +H 0 0 976.2251107 365.24353 62.6% - 0s + 0 0 577.99599 0 32 976.22511 577.99599 40.8% - 0s + 0 0 601.24891 0 34 976.22511 601.24891 38.4% - 0s +H 0 0 609.6670876 601.24891 1.38% - 0s + +Cutting planes: + Gomory: 3 + Cover: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 7 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.31 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 609.667 976.225 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.096670875788e+02, best bound 6.096670875788e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:26 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0xcd9269e8 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.373285e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 337.32848 0 20 - 337.32848 - - 0s + 0 0 365.24353 0 13 - 365.24353 - - 0s +H 0 0 976.2251107 365.24353 62.6% - 0s + 0 0 577.99599 0 32 976.22511 577.99599 40.8% - 0s + 0 0 601.24891 0 34 976.22511 601.24891 38.4% - 0s +H 0 0 609.6670876 601.24891 1.38% - 0s + +Cutting planes: + Gomory: 3 + Cover: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 7 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (145 simplex iterations) in 0.30 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 609.667 976.225 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.096670875788e+02, best bound 6.096670875788e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 16:52:27 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1364 nonzeros +Model fingerprint: 0x534dcdbd +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [1e+00, 5e+01] + Objective range [1e+02, 5e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 846 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 3.407837e+02, 61 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 340.78375 0 20 - 340.78375 - - 0s + 0 0 365.41481 0 13 - 365.41481 - - 0s +H 0 0 959.5591379 367.99579 61.6% - 0s + 0 0 420.33458 0 32 959.55914 420.33458 56.2% - 0s + 0 0 462.52307 0 34 959.55914 462.52307 51.8% - 0s +H 0 0 663.2505468 578.59532 12.8% - 0s + 0 0 592.21657 0 20 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 14 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 21 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 32 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 20 663.25055 592.21657 10.7% - 0s + 0 0 592.21657 0 19 663.25055 592.21657 10.7% - 0s +H 0 0 605.8159159 592.21657 2.24% - 0s + 0 0 605.81592 0 21 605.81592 605.81592 0.00% - 0s + +Cutting planes: + Cover: 1 + MIR: 10 + StrongCG: 3 + Flow cover: 6 + Inf proof: 1 + Zero half: 1 + +Explored 1 nodes (295 simplex iterations) in 0.50 seconds +Thread count was 8 (of 8 available processors) + +Solution count 3: 605.816 663.251 959.559 + +Optimal solution found (tolerance 1.00e-04) +Best objective 6.058159158676e+02, best bound 6.058159158676e+02, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:03:39 2024 + +Academic license - for non-commercial use only + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:33 2024 + +Academic license - for non-commercial use only + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:45 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:46 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.16 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:46 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.26 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.07s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.05s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:47 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:48 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf18f66c1 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.778199e+03, 56 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2778.19884 0 18 - 2778.19884 - - 0s + 0 0 2798.76566 0 23 - 2798.76566 - - 0s + 0 0 2817.72206 0 24 - 2817.72206 - - 0s + 0 0 2830.48629 0 34 - 2830.48629 - - 0s +H 0 0 3043.9418621 2830.48629 7.01% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 3 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (127 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 3043.94 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.043941862101e+03, best bound 3.043941862101e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:48 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf18f66c1 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.778199e+03, 56 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2778.19884 0 18 - 2778.19884 - - 0s + 0 0 2798.76566 0 23 - 2798.76566 - - 0s + 0 0 2817.72206 0 24 - 2817.72206 - - 0s + 0 0 2830.48629 0 34 - 2830.48629 - - 0s +H 0 0 3043.9418621 2830.48629 7.01% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 3 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (127 simplex iterations) in 0.25 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 3043.94 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.043941862101e+03, best bound 3.043941862101e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:08:48 2024 + +Academic license - for non-commercial use only + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:46:05 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.15 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:46:06 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:46:06 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:46:06 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:46:07 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.24 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:46:07 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.31 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:15 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.16 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:15 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.25 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:16 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:16 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.22 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:16 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:17 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf18f66c1 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.778199e+03, 56 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2778.19884 0 18 - 2778.19884 - - 0s + 0 0 2798.76566 0 23 - 2798.76566 - - 0s + 0 0 2817.72206 0 24 - 2817.72206 - - 0s + 0 0 2830.48629 0 34 - 2830.48629 - - 0s +H 0 0 3043.9418621 2830.48629 7.01% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 3 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (127 simplex iterations) in 0.24 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 3043.94 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.043941862101e+03, best bound 3.043941862101e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:17 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf18f66c1 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.778199e+03, 56 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2778.19884 0 18 - 2778.19884 - - 0s + 0 0 2798.76566 0 23 - 2798.76566 - - 0s + 0 0 2817.72206 0 24 - 2817.72206 - - 0s + 0 0 2830.48629 0 34 - 2830.48629 - - 0s +H 0 0 3043.9418621 2830.48629 7.01% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 3 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (127 simplex iterations) in 0.26 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 3043.94 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.043941862101e+03, best bound 3.043941862101e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:17 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x52766cd6 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.05s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 3.147442e+03, 72 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 3147.44183 0 18 - 3147.44183 - - 0s + 0 0 3202.97115 0 29 - 3202.97115 - - 0s + 0 0 3227.92326 0 34 - 3227.92326 - - 0s + 0 0 3227.92326 0 34 - 3227.92326 - - 0s + 0 0 3328.91461 0 26 - 3328.91461 - - 0s + 0 0 3328.91461 0 27 - 3328.91461 - - 0s +H 0 0 3708.7246299 3328.91461 10.2% - 0s +H 0 0 3643.7808591 3328.91461 8.64% - 0s + +Cutting planes: + Gomory: 1 + MIR: 9 + StrongCG: 3 + Flow cover: 5 + Zero half: 2 + Mod-K: 1 + +Explored 1 nodes (150 simplex iterations) in 0.33 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 3643.78 3708.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.643780859051e+03, best bound 3.643780859051e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:18 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x52766cd6 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 3.147442e+03, 72 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 3147.44183 0 18 - 3147.44183 - - 0s + 0 0 3202.97115 0 29 - 3202.97115 - - 0s + 0 0 3227.92326 0 34 - 3227.92326 - - 0s + 0 0 3227.92326 0 34 - 3227.92326 - - 0s + 0 0 3328.91461 0 26 - 3328.91461 - - 0s + 0 0 3328.91461 0 27 - 3328.91461 - - 0s +H 0 0 3708.7246299 3328.91461 10.2% - 0s +H 0 0 3643.7808591 3328.91461 8.64% - 0s + +Cutting planes: + Gomory: 1 + MIR: 9 + StrongCG: 3 + Flow cover: 5 + Zero half: 2 + Mod-K: 1 + +Explored 1 nodes (150 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 3643.78 3708.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.643780859051e+03, best bound 3.643780859051e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 17:50:18 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x99a844a8 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 90 columns +Presolve time: 0.04s +Presolved: 101 rows, 120 columns, 808 nonzeros +Variable types: 0 continuous, 120 integer (66 binary) + +Root relaxation: objective 3.722087e+03, 67 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 3722.08662 0 20 - 3722.08662 - - 0s + 0 0 3804.58756 0 26 - 3804.58756 - - 0s + 0 0 3861.04983 0 26 - 3861.04983 - - 0s + 0 0 3861.04983 0 26 - 3861.04983 - - 0s + 0 2 3880.78096 0 26 - 3880.78096 - - 0s +* 20 5 7 4104.8954313 3944.82410 3.90% 12.3 0s + +Cutting planes: + Gomory: 1 + MIR: 3 + StrongCG: 2 + Flow cover: 1 + RLT: 2 + +Explored 25 nodes (380 simplex iterations) in 0.52 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 4104.9 + +Optimal solution found (tolerance 1.00e-04) +Best objective 4.104895431277e+03, best bound 4.104895431277e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x98bbcb51 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.020384e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2020.38400 0 12 - 2020.38400 - - 0s +H 0 0 2258.7731631 2020.38400 10.6% - 0s + 0 0 2021.05625 0 16 2258.77316 2021.05625 10.5% - 0s + 0 0 2258.77316 0 24 2258.77316 2258.77316 0.00% - 0s + +Cutting planes: + Gomory: 3 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (94 simplex iterations) in 0.16 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2258.77 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.258773163108e+03, best bound 2.258773163108e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:13 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xec63dc0e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [6e+01, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.04s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 1.822815e+03, 75 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1822.81490 0 12 - 1822.81490 - - 0s + 0 0 1898.15771 0 18 - 1898.15771 - - 0s +H 0 0 2118.1227500 1898.15771 10.4% - 0s + 0 0 1918.78874 0 28 2118.12275 1918.78874 9.41% - 0s + +Cutting planes: + Gomory: 2 + MIR: 9 + StrongCG: 1 + Flow cover: 5 + Zero half: 6 + Mod-K: 1 + RLT: 2 + +Explored 1 nodes (137 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2118.12 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.118122750030e+03, best bound 2.118122750030e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x5eb90ee1 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.02s +Presolved: 103 rows, 125 columns, 849 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.089204e+03, 55 iterations, 0.02 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2089.20425 0 19 - 2089.20425 - - 0s + 0 0 2127.82771 0 19 - 2127.82771 - - 0s + 0 0 2170.32256 0 28 - 2170.32256 - - 0s + 0 0 2182.20137 0 35 - 2182.20137 - - 0s +H 0 0 2364.1798394 2182.20137 7.70% - 0s + +Cutting planes: + Gomory: 1 + MIR: 6 + StrongCG: 3 + Flow cover: 9 + Zero half: 1 + RLT: 2 + +Explored 1 nodes (192 simplex iterations) in 0.29 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2364.18 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.364179839378e+03, best bound 2.364179839378e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x38129fc9 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [6e+01, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.05s +Presolved: 103 rows, 125 columns, 849 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 1.332535e+03, 66 iterations, 0.02 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1332.53511 0 18 - 1332.53511 - - 0s + 0 0 1355.65066 0 12 - 1355.65066 - - 0s + 0 0 1411.94613 0 26 - 1411.94613 - - 0s +H 0 0 1647.7227500 1411.94613 14.3% - 0s + 0 0 1426.51344 0 29 1647.72275 1426.51344 13.4% - 0s +H 0 0 1592.3731631 1426.51344 10.4% - 0s + +Cutting planes: + Gomory: 2 + MIR: 10 + StrongCG: 2 + Flow cover: 8 + Zero half: 1 + Mod-K: 2 + +Explored 1 nodes (127 simplex iterations) in 0.20 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1592.37 1647.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.592373163108e+03, best bound 1.592373163108e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x95628b29 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.372699e+03, 55 iterations, 0.02 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2372.69912 0 9 - 2372.69912 - - 0s + 0 0 2431.43973 0 16 - 2431.43973 - - 0s + 0 0 2564.93746 0 15 - 2564.93746 - - 0s +H 0 0 2668.0069668 2564.93746 3.86% - 0s + +Cutting planes: + Gomory: 1 + MIR: 6 + StrongCG: 2 + Flow cover: 2 + Mod-K: 2 + +Explored 1 nodes (113 simplex iterations) in 0.18 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2668.01 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.668006966846e+03, best bound 2.668006966846e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:14 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x500f6a35 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.332535e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1332.53511 0 19 - 1332.53511 - - 0s +H 0 0 1647.7227500 1332.53511 19.1% - 0s + 0 0 1356.48400 0 12 1647.72275 1356.48400 17.7% - 0s +H 0 0 1592.3731631 1577.37316 0.94% - 0s + 0 0 1592.37316 0 32 1592.37316 1592.37316 0.00% - 0s + +Cutting planes: + Gomory: 6 + MIR: 9 + StrongCG: 3 + Flow cover: 4 + Zero half: 1 + RLT: 2 + +Explored 1 nodes (129 simplex iterations) in 0.15 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1592.37 1647.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.592373163108e+03, best bound 1.592373163108e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:15 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x59ee382a +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.761031e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2761.03085 0 19 - 2761.03085 - - 0s + 0 0 2780.30357 0 24 - 2780.30357 - - 0s + 0 0 2807.56079 0 20 - 2807.56079 - - 0s + 0 0 2807.56079 0 22 - 2807.56079 - - 0s + 0 0 2807.56079 0 22 - 2807.56079 - - 0s + 0 2 2841.87796 0 22 - 2841.87796 - - 0s +* 33 20 9 3161.0281240 2941.39320 6.95% 13.8 0s +* 69 0 9 3020.2479376 3020.24794 0.00% 9.4 0s + +Cutting planes: + Gomory: 5 + Flow cover: 1 + Inf proof: 2 + RLT: 2 + +Explored 70 nodes (780 simplex iterations) in 0.62 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 3020.25 3161.03 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.020247937630e+03, best bound 3.020247937630e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:15 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf63c815e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.332535e+03, 63 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1332.53511 0 19 - 1332.53511 - - 0s +H 0 0 1647.7227500 1332.53511 19.1% - 0s + 0 0 1469.01191 0 10 1647.72275 1469.01191 10.8% - 0s +H 0 0 1592.3731631 1469.01191 7.75% - 0s + 0 0 1469.84525 0 16 1592.37316 1469.84525 7.69% - 0s + 0 0 1469.84525 0 13 1592.37316 1469.84525 7.69% - 0s + 0 0 1469.84525 0 21 1592.37316 1469.84525 7.69% - 0s + 0 0 1592.37316 0 18 1592.37316 1592.37316 0.00% - 0s + +Cutting planes: + Gomory: 3 + MIR: 3 + Flow cover: 3 + +Explored 1 nodes (264 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1592.37 1647.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.592373163108e+03, best bound 1.592373163108e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:16 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xefdf62c7 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 3.132635e+03, 71 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 3132.63460 0 9 - 3132.63460 - - 0s + 0 0 3152.39053 0 28 - 3152.39053 - - 0s + 0 0 3189.58796 0 25 - 3189.58796 - - 0s + 0 0 3221.96376 0 27 - 3221.96376 - - 0s + 0 0 3383.32922 0 20 - 3383.32922 - - 0s + 0 0 3383.32922 0 21 - 3383.32922 - - 0s +H 0 0 3686.7968331 3383.32922 8.23% - 0s +H 0 0 3623.9381063 3383.32922 6.64% - 0s + +Cutting planes: + Gomory: 1 + Cover: 1 + MIR: 10 + StrongCG: 3 + Flow cover: 2 + Inf proof: 4 + Zero half: 1 + Mod-K: 1 + RLT: 1 + +Explored 1 nodes (185 simplex iterations) in 0.34 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 3623.94 3686.8 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.623938106292e+03, best bound 3.623938106292e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:46:16 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xba7c206e +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.05s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.332535e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1332.53511 0 19 - 1332.53511 - - 0s +H 0 0 1647.7227500 1332.53511 19.1% - 0s + 0 0 1356.48400 0 12 1647.72275 1356.48400 17.7% - 0s +H 0 0 1592.3731631 1577.37316 0.94% - 0s + 0 0 1592.37316 0 32 1592.37316 1592.37316 0.00% - 0s + +Cutting planes: + Gomory: 6 + MIR: 9 + StrongCG: 3 + Flow cover: 4 + Zero half: 1 + RLT: 2 + +Explored 1 nodes (129 simplex iterations) in 0.19 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1592.37 1647.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.592373163108e+03, best bound 1.592373163108e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:35 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x4b7a1cea +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 2.021421e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2021.42102 0 12 - 2021.42102 - - 0s +H 0 0 2261.1963919 2021.42102 10.6% - 0s + 0 0 2021.72034 0 16 2261.19639 2021.72034 10.6% - 0s + 0 0 2261.19639 0 25 2261.19639 2261.19639 0.00% - 0s + +Cutting planes: + Gomory: 4 + MIR: 9 + StrongCG: 5 + Flow cover: 2 + Mod-K: 3 + RLT: 2 + +Explored 1 nodes (95 simplex iterations) in 0.17 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2261.2 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.261196391899e+03, best bound 2.261196391899e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:35 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x83ddb69c +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [6e+01, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 64 rows and 85 columns +Presolve time: 0.03s +Presolved: 103 rows, 125 columns, 848 nonzeros +Variable types: 0 continuous, 125 integer (69 binary) + +Root relaxation: objective 1.823645e+03, 84 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1823.64467 0 4 - 1823.64467 - - 0s + 0 0 1898.64556 0 10 - 1898.64556 - - 0s + 0 0 2005.15101 0 32 - 2005.15101 - - 0s +H 0 0 2120.3325079 2005.15101 5.43% - 0s + +Cutting planes: + Gomory: 2 + MIR: 4 + StrongCG: 1 + Flow cover: 7 + Inf proof: 3 + Zero half: 1 + +Explored 1 nodes (148 simplex iterations) in 0.22 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2120.33 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.120332507871e+03, best bound 2.120332507871e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:36 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x849bb5b4 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.090810e+03, 52 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2090.80995 0 17 - 2090.80995 - - 0s +H 0 0 2400.1140777 2090.80995 12.9% - 0s + 0 0 2130.78551 0 12 2400.11408 2130.78551 11.2% - 0s + 0 0 2180.04511 0 36 2400.11408 2180.04511 9.17% - 0s + 0 0 2238.67688 0 34 2400.11408 2238.67688 6.73% - 0s +H 0 0 2365.9018976 2238.67688 5.38% - 0s + +Cutting planes: + MIR: 8 + StrongCG: 1 + Flow cover: 9 + GUB cover: 1 + Zero half: 2 + +Explored 1 nodes (146 simplex iterations) in 0.27 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 2365.9 2400.11 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.365901897627e+03, best bound 2.365901897627e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:36 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xd381d586 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [6e+01, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.05s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.334141e+03, 55 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1334.14082 0 16 - 1334.14082 - - 0s +H 0 0 1649.4999555 1334.14082 19.1% - 0s + 0 0 1358.06983 0 7 1649.49996 1358.06983 17.7% - 0s + 0 0 1358.06983 0 13 1649.49996 1358.06983 17.7% - 0s + 0 0 1358.06983 0 13 1649.49996 1358.06983 17.7% - 0s + 0 0 1369.30262 0 7 1649.49996 1369.30262 17.0% - 0s +H 0 0 1594.0952214 1395.26695 12.5% - 0s + 0 0 1594.09522 0 18 1594.09522 1594.09522 0.00% - 0s + +Cutting planes: + Gomory: 8 + Cover: 1 + MIR: 10 + StrongCG: 2 + Flow cover: 5 + Mod-K: 2 + +Explored 1 nodes (179 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1594.1 1649.5 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.594095221358e+03, best bound 1.594095221358e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:36 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe900d6b5 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [1e+02, 1e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.378461e+03, 55 iterations, 0.01 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2378.46069 0 9 - 2378.46069 - - 0s + 0 0 2439.11472 0 17 - 2439.11472 - - 0s +H 0 0 2674.5974919 2439.11472 8.80% - 0s + 0 0 2500.18454 0 9 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 7 2674.59749 2500.18454 6.52% - 0s + 0 0 2500.18454 0 15 2674.59749 2500.18454 6.52% - 0s + +Cutting planes: + Gomory: 2 + Implied bound: 4 + MIR: 7 + StrongCG: 3 + Flow cover: 6 + Mod-K: 5 + RLT: 3 + Relax-and-lift: 1 + +Explored 1 nodes (136 simplex iterations) in 0.21 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 2674.6 + +Optimal solution found (tolerance 1.00e-04) +Best objective 2.674597491905e+03, best bound 2.674597491905e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:36 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xee01c785 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [4e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.339217e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1339.21734 0 20 - 1339.21734 - - 0s +H 0 0 1654.3132751 1339.21734 19.0% - 0s + 0 0 1366.13440 0 12 1654.31328 1366.13440 17.4% - 0s +H 0 0 1601.4129880 1583.51502 1.12% - 0s + 0 0 1601.41299 0 34 1601.41299 1601.41299 0.00% - 0s + +Cutting planes: + Gomory: 1 + MIR: 9 + StrongCG: 4 + Flow cover: 4 + Zero half: 1 + RLT: 2 + +Explored 1 nodes (156 simplex iterations) in 0.14 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1601.41 1654.31 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.601412987990e+03, best bound 1.601412987990e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:37 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xf18f66c1 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 2.778199e+03, 56 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 2778.19884 0 18 - 2778.19884 - - 0s + 0 0 2798.76566 0 23 - 2798.76566 - - 0s + 0 0 2817.72206 0 24 - 2817.72206 - - 0s + 0 0 2830.48629 0 34 - 2830.48629 - - 0s +H 0 0 3043.9418621 2830.48629 7.01% - 0s + +Cutting planes: + Gomory: 1 + MIR: 15 + StrongCG: 2 + Flow cover: 3 + Inf proof: 1 + Zero half: 1 + Mod-K: 1 + RLT: 3 + +Explored 1 nodes (127 simplex iterations) in 0.24 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 3043.94 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.043941862101e+03, best bound 3.043941862101e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:37 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xe893c54d +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [5e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.343728e+03, 63 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1343.72848 0 20 - 1343.72848 - - 0s + 0 0 1398.35865 0 12 - 1398.35865 - - 0s + 0 0 1424.20736 0 35 - 1424.20736 - - 0s +H 0 0 1667.1015018 1424.20736 14.6% - 0s + 0 0 1589.73066 0 36 1667.10150 1589.73066 4.64% - 0s +H 0 0 1616.0670876 1589.73066 1.63% - 0s + +Cutting planes: + Cover: 1 + MIR: 7 + StrongCG: 2 + Flow cover: 7 + Zero half: 1 + RLT: 3 + +Explored 1 nodes (162 simplex iterations) in 0.25 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1616.07 1667.1 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.616067087579e+03, best bound 1.616067087579e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:37 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x52766cd6 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.03s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 3.147442e+03, 72 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 3147.44183 0 18 - 3147.44183 - - 0s + 0 0 3202.97115 0 29 - 3202.97115 - - 0s + 0 0 3227.92326 0 34 - 3227.92326 - - 0s + 0 0 3227.92326 0 34 - 3227.92326 - - 0s + 0 0 3328.91461 0 26 - 3328.91461 - - 0s + 0 0 3328.91461 0 27 - 3328.91461 - - 0s +H 0 0 3708.7246299 3328.91461 10.2% - 0s +H 0 0 3643.7808591 3328.91461 8.64% - 0s + +Cutting planes: + Gomory: 1 + MIR: 9 + StrongCG: 3 + Flow cover: 5 + Zero half: 2 + Mod-K: 1 + +Explored 1 nodes (150 simplex iterations) in 0.25 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 3643.78 3708.72 + +Optimal solution found (tolerance 1.00e-04) +Best objective 3.643780859051e+03, best bound 3.643780859051e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:38 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x32cd7160 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 89 columns +Presolve time: 0.04s +Presolved: 101 rows, 121 columns, 817 nonzeros +Variable types: 0 continuous, 121 integer (67 binary) + +Root relaxation: objective 1.347184e+03, 53 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1347.18375 0 20 - 1347.18375 - - 0s +H 0 0 1669.6505468 1347.18375 19.3% - 0s + 0 0 1372.94809 0 12 1669.65055 1372.94809 17.8% - 0s +H 0 0 1612.2159159 1590.38204 1.35% - 0s + 0 0 1612.21592 0 34 1612.21592 1612.21592 0.00% - 0s + +Cutting planes: + Gomory: 1 + MIR: 9 + StrongCG: 4 + Flow cover: 4 + Zero half: 1 + RLT: 2 + +Explored 1 nodes (118 simplex iterations) in 0.16 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1612.22 1669.65 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.612215915868e+03, best bound 1.612215915868e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:38 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x99a844a8 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [1e+02, 2e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 90 columns +Presolve time: 0.02s +Presolved: 101 rows, 120 columns, 808 nonzeros +Variable types: 0 continuous, 120 integer (66 binary) + +Root relaxation: objective 3.722087e+03, 67 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 3722.08662 0 20 - 3722.08662 - - 0s + 0 0 3804.58756 0 26 - 3804.58756 - - 0s + 0 0 3861.04983 0 26 - 3861.04983 - - 0s + 0 0 3861.04983 0 26 - 3861.04983 - - 0s + 0 2 3880.78096 0 26 - 3880.78096 - - 0s +* 20 5 7 4104.8954313 3944.82410 3.90% 12.3 0s + +Cutting planes: + Gomory: 1 + MIR: 3 + StrongCG: 2 + Flow cover: 1 + RLT: 2 + +Explored 25 nodes (380 simplex iterations) in 0.45 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 4104.9 + +Optimal solution found (tolerance 1.00e-04) +Best objective 4.104895431277e+03, best bound 4.104895431277e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:38 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0x44371e98 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [6e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 66 rows and 90 columns +Presolve time: 0.03s +Presolved: 101 rows, 120 columns, 808 nonzeros +Variable types: 0 continuous, 120 integer (66 binary) + +Root relaxation: objective 1.367243e+03, 73 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1367.24283 0 16 - 1367.24283 - - 0s + 0 0 1374.04240 0 19 - 1374.04240 - - 0s + 0 0 1419.67906 0 22 - 1419.67906 - - 0s + 0 0 1446.00663 0 18 - 1446.00663 - - 0s + 0 0 1446.00663 0 18 - 1446.00663 - - 0s +H 0 0 1626.4892502 1446.00663 11.1% - 0s + +Cutting planes: + Gomory: 3 + Flow cover: 1 + +Explored 1 nodes (172 simplex iterations) in 0.35 seconds +Thread count was 8 (of 8 available processors) + +Solution count 1: 1626.49 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.626489250224e+03, best bound 1.626489250224e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:39 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xec872999 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [9e-01, 5e+01] + Objective range [1e+02, 4e+03] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 68 rows and 94 columns +Presolve time: 0.05s +Presolved: 99 rows, 116 columns, 786 nonzeros +Variable types: 0 continuous, 116 integer (64 binary) + +Root relaxation: objective 4.449370e+03, 54 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 4449.37004 0 16 - 4449.37004 - - 0s + 0 0 4490.73372 0 28 - 4490.73372 - - 0s + 0 0 4506.20147 0 33 - 4506.20147 - - 0s + 0 0 4509.63726 0 32 - 4509.63726 - - 0s + 0 0 4509.63726 0 32 - 4509.63726 - - 0s +H 0 0 6030.6854326 4509.63726 25.2% - 0s + 0 2 4594.49073 0 32 6030.68543 4594.49073 23.8% - 0s +* 24 2 13 5883.9839266 5883.98393 0.00% 11.7 0s + +Cutting planes: + Gomory: 3 + MIR: 6 + Flow cover: 2 + Relax-and-lift: 1 + +Explored 25 nodes (399 simplex iterations) in 0.53 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 5883.98 6030.69 + +Optimal solution found (tolerance 1.00e-04) +Best objective 5.883983926624e+03, best bound 5.883983926624e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:39 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xdecf3d1d +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [9e-01, 5e+01] + Objective range [6e+01, 6e+02] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 68 rows and 94 columns +Presolve time: 0.03s +Presolved: 99 rows, 116 columns, 786 nonzeros +Variable types: 0 continuous, 116 integer (64 binary) + +Root relaxation: objective 1.387169e+03, 43 iterations, 0.00 seconds + + Nodes | Current Node | Objective Bounds | Work + Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time + + 0 0 1387.16925 0 12 - 1387.16925 - - 0s +H 0 0 1724.4961134 1387.16925 19.6% - 0s + 0 0 1409.82748 0 17 1724.49611 1409.82748 18.2% - 0s + 0 0 1504.76006 0 21 1724.49611 1504.76006 12.7% - 0s + 0 0 1628.45279 0 22 1724.49611 1628.45279 5.57% - 0s + 0 0 1629.87215 0 27 1724.49611 1629.87215 5.49% - 0s +H 0 0 1639.0169488 1629.87215 0.56% - 0s + +Cutting planes: + Gomory: 1 + MIR: 6 + StrongCG: 2 + Flow cover: 6 + Zero half: 1 + RLT: 2 + +Explored 1 nodes (114 simplex iterations) in 0.23 seconds +Thread count was 8 (of 8 available processors) + +Solution count 2: 1639.02 1724.5 + +Optimal solution found (tolerance 1.00e-04) +Best objective 1.639016948826e+03, best bound 1.639016948826e+03, gap 0.0000% + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:40 2024 + +Academic license - for non-commercial use only +Gurobi Optimizer version 9.0.2 build v9.0.2rc0 (win64) +Optimize a model with 167 rows, 210 columns and 1372 nonzeros +Model fingerprint: 0xec2d4b05 +Variable types: 0 continuous, 210 integer (110 binary) +Coefficient statistics: + Matrix range [8e-01, 5e+01] + Objective range [1e+02, 1e+04] + Bounds range [1e+00, 6e+00] + RHS range [1e+00, 1e+02] +Presolve removed 163 rows and 209 columns +Presolve time: 0.04s + +Explored 0 nodes (0 simplex iterations) in 0.04 seconds +Thread count was 1 (of 8 available processors) + +Solution count 0 + +Model is infeasible +Best objective -, best bound -, gap - + +Gurobi 9.0.2 (win64, Java) logging started Fri Sep 27 18:47:40 2024 + +Academic license - for non-commercial use only diff --git a/Code/out/production/Code/MixedReality_Optimization.class b/Code/out/production/Code/MixedReality_Optimization.class new file mode 100644 index 0000000000000000000000000000000000000000..66be1749c70a2b330022005c1dfdf4b20b5123ef Binary files /dev/null and b/Code/out/production/Code/MixedReality_Optimization.class differ diff --git a/Code/out/production/Code/application/AppLink.class b/Code/out/production/Code/application/AppLink.class new file mode 100644 index 0000000000000000000000000000000000000000..c8677d70c07fe5df96c74bef9787c072ed7ae16e Binary files /dev/null and b/Code/out/production/Code/application/AppLink.class differ diff --git a/Code/out/production/Code/application/Application.class b/Code/out/production/Code/application/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..88541eda98e2f68053b121477c7a32435033fe34 Binary files /dev/null and b/Code/out/production/Code/application/Application.class differ diff --git a/Code/out/production/Code/device/Device.class b/Code/out/production/Code/device/Device.class new file mode 100644 index 0000000000000000000000000000000000000000..850ff235cade8c8060a02f82353b9f58d931489c Binary files /dev/null and b/Code/out/production/Code/device/Device.class differ diff --git a/Code/out/production/Code/placement/OptimalRequestPlacement_Marginal.class b/Code/out/production/Code/placement/OptimalRequestPlacement_Marginal.class new file mode 100644 index 0000000000000000000000000000000000000000..8e07d0bc2f5a263bb34c853d4d0530166e698e9d Binary files /dev/null and b/Code/out/production/Code/placement/OptimalRequestPlacement_Marginal.class differ diff --git a/Code/out/production/Code/placement/OptimalRequestPlacement_Overall.class b/Code/out/production/Code/placement/OptimalRequestPlacement_Overall.class new file mode 100644 index 0000000000000000000000000000000000000000..125abb520ce6bda082f363d0ca4ddfedb3411fb7 Binary files /dev/null and b/Code/out/production/Code/placement/OptimalRequestPlacement_Overall.class differ diff --git a/Code/out/production/Code/placement/RequestPlacementLogic.class b/Code/out/production/Code/placement/RequestPlacementLogic.class new file mode 100644 index 0000000000000000000000000000000000000000..6bebe76c4605b363693a05e6ba96dfa78eec73a8 Binary files /dev/null and b/Code/out/production/Code/placement/RequestPlacementLogic.class differ diff --git a/Code/out/production/Code/placement/RequestPlacementOutput.class b/Code/out/production/Code/placement/RequestPlacementOutput.class new file mode 100644 index 0000000000000000000000000000000000000000..ac90ffc9c1484cce2a63496cd2f7193e305d2f79 Binary files /dev/null and b/Code/out/production/Code/placement/RequestPlacementOutput.class differ diff --git a/Code/out/production/Code/solver/SolverGurobi$1.class b/Code/out/production/Code/solver/SolverGurobi$1.class new file mode 100644 index 0000000000000000000000000000000000000000..11e7c7501631100634dbc7f6b5811ef55cbef3f9 Binary files /dev/null and b/Code/out/production/Code/solver/SolverGurobi$1.class differ diff --git a/Code/out/production/Code/solver/SolverGurobi$Hook.class b/Code/out/production/Code/solver/SolverGurobi$Hook.class new file mode 100644 index 0000000000000000000000000000000000000000..33385f5b1bebf233eab04344795c7cad5b80c2cb Binary files /dev/null and b/Code/out/production/Code/solver/SolverGurobi$Hook.class differ diff --git a/Code/out/production/Code/solver/SolverGurobi.class b/Code/out/production/Code/solver/SolverGurobi.class new file mode 100644 index 0000000000000000000000000000000000000000..4577ee7ec3aba58279b77c2cc0c89a0da1d7bbbf Binary files /dev/null and b/Code/out/production/Code/solver/SolverGurobi.class differ diff --git a/Code/out/production/Code/system/Location.class b/Code/out/production/Code/system/Location.class new file mode 100644 index 0000000000000000000000000000000000000000..2396a01257a45e6b0c97e3c9ef521414c62f1385 Binary files /dev/null and b/Code/out/production/Code/system/Location.class differ diff --git a/Code/out/production/Code/system/Network.class b/Code/out/production/Code/system/Network.class new file mode 100644 index 0000000000000000000000000000000000000000..57a4b161e059e492ed9d7fe2cf62c9145def4c06 Binary files /dev/null and b/Code/out/production/Code/system/Network.class differ diff --git a/Code/out/production/Code/utils/Config.class b/Code/out/production/Code/utils/Config.class new file mode 100644 index 0000000000000000000000000000000000000000..8fe4a9607f101d9e23cd6a070d821c0e98d7cb79 Binary files /dev/null and b/Code/out/production/Code/utils/Config.class differ diff --git a/Code/out/production/Code/utils/Distribution.class b/Code/out/production/Code/utils/Distribution.class new file mode 100644 index 0000000000000000000000000000000000000000..9d8983e850985ead7718ebd69a31e9a153c51803 Binary files /dev/null and b/Code/out/production/Code/utils/Distribution.class differ diff --git a/Code/out/production/Code/utils/NormalDistribution.class b/Code/out/production/Code/utils/NormalDistribution.class new file mode 100644 index 0000000000000000000000000000000000000000..542305a4a4e0a329985bbd25d85592c828cc6fe2 Binary files /dev/null and b/Code/out/production/Code/utils/NormalDistribution.class differ diff --git a/Code/out/production/Code/utils/Triple.class b/Code/out/production/Code/utils/Triple.class new file mode 100644 index 0000000000000000000000000000000000000000..c71ec368ddfb5c592f2c7138f005235d63a4f60c Binary files /dev/null and b/Code/out/production/Code/utils/Triple.class differ diff --git a/Code/out/production/Code/utils/Utils.class b/Code/out/production/Code/utils/Utils.class new file mode 100644 index 0000000000000000000000000000000000000000..85d4b021f8cde4f89f95ffb1424315aa9edb05a5 Binary files /dev/null and b/Code/out/production/Code/utils/Utils.class differ diff --git a/Code/src/MixedReality_Optimization.java b/Code/src/MixedReality_Optimization.java new file mode 100644 index 0000000000000000000000000000000000000000..2a680304b3c3bdc6e05db6203fa147b4b06bb060 --- /dev/null +++ b/Code/src/MixedReality_Optimization.java @@ -0,0 +1,224 @@ +import application.Application; +import placement.OptimalRequestPlacement_Marginal; +import placement.OptimalRequestPlacement_Overall; +import placement.RequestPlacementOutput; +import system.Network; +import utils.Config; +import device.Device; + +import java.io.IOException; +import java.util.*; + +/** + * Setup for Mixed Reality to test the placement of one request in different scenarios + * + * @author Klervie Toczé + */ +public class MixedReality_Optimization { + + public static void main(String[] args) { + + try { + //Parameters for the different studies + int numberOfFunctionInstances = 2; + Boolean usingUniformLoadDistribution = false; + int standardDeviation = 10; + Boolean linksAreLoaded = true; + Boolean randomStartLocation = false; + + String appId = "MR_Service"; // identifier of the application + Application application = createApplication(appId); + + //TODO Check whether this is still actual + System.out.println("Description of the experiment:"); + System.out.println("- Number of functions instances: " + numberOfFunctionInstances); + if (usingUniformLoadDistribution) + {System.out.println("- Load distribution: NORMAL with std " + standardDeviation);} + else{ + System.out.println("- Load distribution: UNIFORM"); + } + System.out.println(" The (mean) load increases by 10% per scenario"); + if(linksAreLoaded){ + System.out.println("- Load on links: following a NORMAL distribution"); + }else{ + System.out.println("- Load on links: 0%"); + } + if (randomStartLocation) + {System.out.println("- Start location: RANDOM ");} + else{ + System.out.println("- Start location: FIXED"); + } + + //Determine startLocation = at which device the request is received. This is the placing device + String startLocation; + if (randomStartLocation){ + Random randomLoc = new Random(); + Integer randomStart=randomLoc.nextInt(11); + startLocation= "gateway_" + randomStart.toString(); + System.out.println("Random start location is "+startLocation); + } + else{ + //For this scenario the start node is NOT random between scenarios + Integer randomStart=0; + startLocation= "gateway_" + randomStart; + System.out.println("Non random start location is "+startLocation); + } + + System.out.println("Creating the network to be used"); + Network network = new Network(application,startLocation); + + System.out.println("Placing the function instances"); + placeFunctionInstances(numberOfFunctionInstances,network.getEdgeDevices()); + + System.out.println("Optimizing the placement of one request"); + + //Below are the different optimization objectives + OptimalRequestPlacement_Overall requestPlacementManager_obj1= new OptimalRequestPlacement_Overall(network); + OptimalRequestPlacement_Marginal requestPlacementManager_obj2= new OptimalRequestPlacement_Marginal(network); + + //for each repetition + for (int a = 0; a< Config.REPETITION_NUMBER; a++) { + System.out.println("Repetition " + a); + + //for each utilization scenario + for (int i = 0; i < Config.LOAD_SCENARIO_NUMBER; i++) { + System.out.println("Utilization scenario " + i); + + //Reset the timing/energy variables + network.clear(); + + //Create utilization data + network.createUtilizationData(i,a,usingUniformLoadDistribution,standardDeviation,linksAreLoaded); + + //For every optimization objective to be tested + //Objective1 - Optimization Overall Energy + long startTiming = Calendar.getInstance().getTimeInMillis(); + RequestPlacementOutput output_obj1 = requestPlacementManager_obj1.run(application, startLocation); + long endTiming = Calendar.getInstance().getTimeInMillis(); + //Calculate and print how long it took to get the placement + long executionTime = endTiming - startTiming; + System.out.println("OVERALL OPT Placement request execution time: " + executionTime + " ms"); + + //Evaluate the placement according to the other metrics + network.evaluatePlacementOutput(output_obj1, startLocation, startLocation); + + //Objective2 - Optimization Marginal Energy + startTiming = Calendar.getInstance().getTimeInMillis(); + RequestPlacementOutput output_obj2 = requestPlacementManager_obj2.run(application, startLocation); + endTiming = Calendar.getInstance().getTimeInMillis(); + //Calculate and print how long it took to get the placement + executionTime = endTiming - startTiming; + System.out.println("MARGINAL OPT Placement request execution time: " + executionTime + " ms"); + + //Evaluate the placement according to the other metrics + network.evaluatePlacementOutput(output_obj2, startLocation, startLocation); + + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static Application createApplication(String appId) { + + Application application = Application.createApplication(appId); + + //Defining the different parts of the request function chain + application.addAppLink("encodingModule_client", "decodingModule_edge", 200,250); + application.addAppLink("decodingModule_edge", "pointcloudModule", 2000,500); + application.addAppLink("pointcloudModule", "graphicoverlayModule", 1000,750); + application.addAppLink("graphicoverlayModule", "encodingModule_edge", 200,500); + application.addAppLink("encodingModule_edge", "decodingModule_client", 200, 250); + + //The request chain for the placement + List<String> requestChain = new ArrayList<>(); + requestChain.add(0,"decodingModule_edge"); + requestChain.add(1,"pointcloudModule"); + requestChain.add(2,"graphicoverlayModule"); + requestChain.add(3,"encodingModule_edge"); + application.setRequestChain(requestChain); + + return application; + } + + private static void placeFunctionInstances(int numberOfInstances,List<Device> edgeDevices){ + if(numberOfInstances>=2){ + for(Device device : edgeDevices){ + if(device.getName().equals("gateway_0")){ + device.placeModuleOnDevice("decodingModule_edge"); + device.placeModuleOnDevice("encodingModule_edge"); + } + if(device.getName().equals("gateway_3")){ + device.placeModuleOnDevice("decodingModule_edge"); + device.placeModuleOnDevice("encodingModule_edge"); + } + if(device.getName().equals("gateway_5")){ + device.placeModuleOnDevice("pointcloudModule"); + } + if(device.getName().equals("gateway_7")){ + device.placeModuleOnDevice("pointcloudModule"); + } + if(device.getName().equals("gateway_6")){ + device.placeModuleOnDevice("graphicoverlayModule"); + } + if(device.getName().equals("gateway_8")){ + device.placeModuleOnDevice("graphicoverlayModule"); + } + } + } + if(numberOfInstances>=4){ + for(Device device : edgeDevices){ + if(device.getName().equals("gateway_6")){ + device.placeModuleOnDevice("decodingModule_edge"); + device.placeModuleOnDevice("encodingModule_edge"); + } + if(device.getName().equals("gateway_9")){ + device.placeModuleOnDevice("decodingModule_edge"); + device.placeModuleOnDevice("encodingModule_edge"); + } + if(device.getName().equals("gateway_4")){ + device.placeModuleOnDevice("pointcloudModule"); + } + if(device.getName().equals("gateway_0")){ + device.placeModuleOnDevice("pointcloudModule"); + } + if(device.getName().equals("gateway_2")){ + device.placeModuleOnDevice("graphicoverlayModule"); + } + if(device.getName().equals("gateway_7")){ + device.placeModuleOnDevice("graphicoverlayModule"); + } + } + } + if(numberOfInstances>=6){ + for(Device device : edgeDevices){ + if(device.getName().equals("gateway_7")){ + device.placeModuleOnDevice("encodingModule_edge"); + } + if(device.getName().equals("gateway_5")){ + device.placeModuleOnDevice("encodingModule_edge"); + } + if(device.getName().equals("gateway_2")){ + device.placeModuleOnDevice("decodingModule_edge"); + } + if(device.getName().equals("gateway_4")){ + device.placeModuleOnDevice("decodingModule_edge"); + } + if(device.getName().equals("gateway_6")){ + device.placeModuleOnDevice("pointcloudModule"); + } + if(device.getName().equals("gateway_10")){ + device.placeModuleOnDevice("pointcloudModule"); + } + if(device.getName().equals("gateway_0")){ + device.placeModuleOnDevice("graphicoverlayModule"); + } + if(device.getName().equals("gateway_9")){ + device.placeModuleOnDevice("graphicoverlayModule"); + } + } + } + } + +} \ No newline at end of file diff --git a/Code/src/application/AppLink.java b/Code/src/application/AppLink.java new file mode 100644 index 0000000000000000000000000000000000000000..dc5efad0589083d3e77e85b8eda5331bc2e87f39 --- /dev/null +++ b/Code/src/application/AppLink.java @@ -0,0 +1,56 @@ +package application; + +/** + * Class represents application links which connect modules together and represent data dependency between them. + * @author Klervie Toczé + * + */ +public class AppLink { + + private String source; + private String destination; + /** + * CPU length (in MIPS) of tuples carried by the application link + */ + private double tupleCpuLength; + /** + * Network length (in bytes) of tuples carried by the application link + */ + private double tupleNwLength; + + public AppLink(String source, String destination, double tupleCpuLength, + double tupleNwLength){ + setSource(source); + setDestination(destination); + setTupleNwLength(tupleNwLength); + setTupleCpuLength(tupleCpuLength); + } + + public void setSource(String source) { + this.source = source; + } + public String getDestination() { + return destination; + } + public void setDestination(String destination) { + this.destination = destination; + } + public double getTupleCpuLength() { + return tupleCpuLength; + } + public void setTupleCpuLength(double tupleCpuLength) { + this.tupleCpuLength = tupleCpuLength; + } + public double getTupleNwLength() { + return tupleNwLength; + } + public void setTupleNwLength(double tupleNwLength) { + this.tupleNwLength = tupleNwLength; + } + + @Override + public String toString() { + return "AppLink [source=" + source + ", destination=" + destination + + "]"; + } +} diff --git a/Code/src/application/Application.java b/Code/src/application/Application.java new file mode 100644 index 0000000000000000000000000000000000000000..547fba3039060751de0ddd959f7e7470e8c8af5a --- /dev/null +++ b/Code/src/application/Application.java @@ -0,0 +1,83 @@ +package application; + +import java.util.ArrayList; +import java.util.List; + +/** + * Class holding information about the application request chain and service placement of the different functions + * @author Klervie Toczé + * + */ +public class Application { + + private String appId; + //private List<String> functions; + private List<AppLink> links; + + private List<String> requestChain; //The list of components that are part of the request + + public static Application createApplication(String appId){ + return new Application(appId); + } + + /*public void addAppFunction(String functionName) { + functions.add(functionName); + }*/ + + public void addAppLink(String source, String destination, double tupleCPULength, + double tupleNwLength){ + AppLink link = new AppLink(source, destination, tupleCPULength,tupleNwLength); + getLinks().add(link); + } + + public Application(String appId) { + setAppId(appId); + //setFunctions(new ArrayList<>()); + setLinks(new ArrayList<>()); + } + + public void setAppId(String appId) { + this.appId = appId; + } + //public List<String> getFunctions() { + // return functions; + //} + /*public void setFunctions(List<String> functions) { + this.functions = functions; + }*/ + + public List<AppLink> getLinks() { + return links; + } + public void setLinks(List<AppLink> links) { + this.links = links; + } + + public void setRequestChain(List<String> requestChain) { + this.requestChain = requestChain; + } + + public List<String> getRequestChain() { + return requestChain; + } + + //Function to get the network size needed to come to the target function (i.e. on the incoming edge to the target function) + public Double getTargetFunctionNwSize(String moduleName){ + Double nwLength=0.0; + for(AppLink link : getLinks()) { + if (link.getDestination().equals(moduleName)) { + nwLength = link.getTupleNwLength(); + } + } + return nwLength; + } + public Double getTargetFunctionCPUSize(String moduleName){ + Double CPUsize=0.0; + for(AppLink link : getLinks()) { + if (link.getDestination().equals(moduleName)) { + CPUsize = link.getTupleCpuLength(); + } + } + return CPUsize; + } +} diff --git a/Code/src/device/Device.java b/Code/src/device/Device.java new file mode 100644 index 0000000000000000000000000000000000000000..191f842a4a3052a280bcd33a6e661fa2d1d07049 --- /dev/null +++ b/Code/src/device/Device.java @@ -0,0 +1,62 @@ +package device; + +import system.Location; + +import java.util.ArrayList; +import java.util.List; + +public class Device { + + protected String deviceType = null; + public static final String EDGE = "edge"; // edge device used for orchestration or computation + + protected String name; + protected Location locationInformation; + protected double mips; + protected List<String> modulesPlacedOnDevice; + + public Device(String name, String deviceType, double mips) { + setName(name); + setDeviceType(deviceType); + this.mips=mips; + modulesPlacedOnDevice= new ArrayList<>(); + } + + public String getName() { + return name; + } + + public void setName(String name){ + this.name= name; + } + + public Location getLocationInformation() { + return this.locationInformation; + } + public void setLocationInformation(Location locationInfo) { + this.locationInformation= locationInfo; + } + + public void placeModuleOnDevice(String moduleName){ + //For now we can only place one module one time + if(!modulesPlacedOnDevice.contains(moduleName)){ + modulesPlacedOnDevice.add(moduleName); + } + } + + public List<String> getPlacedModulesOnDevice(){ + return modulesPlacedOnDevice; + } + + protected void setDeviceType(String deviceType) { + if (deviceType.equals(Device.EDGE)) + this.deviceType = deviceType; + else + System.out.println("ERROR Device type is not supported, see Device class"); + } + + public String getDeviceType() { + return deviceType; + } + +} diff --git a/Code/src/placement/OptimalRequestPlacement_Marginal.java b/Code/src/placement/OptimalRequestPlacement_Marginal.java new file mode 100644 index 0000000000000000000000000000000000000000..989179f1b0a73761b3c1e3d24a87b8e91fd7bc66 --- /dev/null +++ b/Code/src/placement/OptimalRequestPlacement_Marginal.java @@ -0,0 +1,358 @@ +package placement; + +import application.Application; +import device.Device; +import net.sf.javailp.*; +import org.apache.commons.math3.util.Pair; +import system.Network; +import utils.Triple; +import utils.Utils; + +import java.util.*; + +/** + * Created by Klervie Toczé + * Request Placement using ILP + * Optimization objective: Marginal Energy + */ +public class OptimalRequestPlacement_Marginal implements RequestPlacementLogic { + + Network network; + List<Device> edgeDevicesInArea;//edge devices that can be considered for placement + Map<String,Device> edgeDevicesInAreaByName; + + private String startLocation; //The device name of the start location for the request + private String destinationLocation; //The device name of the destination location for the request + + public OptimalRequestPlacement_Marginal(Network network) { + this.network=network; + this.edgeDevicesInArea=network.getEdgeDevices(); + this.edgeDevicesInAreaByName = new HashMap<>(); + for (Device device : edgeDevicesInArea){ + this.edgeDevicesInAreaByName.put(device.getName(),device); + } + } + + private Triple<List<String>,List<String>,List<String>> optimizationSolve(List<String> requestChain){ + + SolverFactory factory = new SolverFactoryGurobi(); + factory.setParameter(Solver.VERBOSE,0); + factory.setParameter(Solver.TIMEOUT,1000); //Timeout of 1000 seconds + + //Get the names of the function instances + List<String> functionInstancesLongNames = new ArrayList<>(); + List<String> functionInstancesShortNames = new ArrayList<>(); + functionInstancesShortNames.add(Utils.START); + functionInstancesLongNames.add(Utils.START); + for (Device device : edgeDevicesInArea){ + if(device.getDeviceType()== Device.EDGE) { + //We are not interested by adding end device nodes + //The function instances placed are accessible via Device + for (String module:device.getPlacedModulesOnDevice()){ + //Note: the dash in between is to facilitate re-split later + String longName= device.getName() +"-" + module; + //Create a shorter name - Assuming a node name of type "gateway_0", we want the first character and the number + // followed by the two first letters of the module name + String shortNameDevice; + String nodeName=device.getName(); + if (nodeName.charAt(nodeName.length()-2)!="_".charAt(0)){ + shortNameDevice= ""+nodeName.charAt(0)+nodeName.charAt(nodeName.length()-2)+nodeName.charAt(nodeName.length()-1); + } + else { + shortNameDevice= ""+nodeName.charAt(0)+nodeName.charAt(nodeName.length()-1); + } + String shortName = shortNameDevice +module.charAt(0)+module.charAt(1); + functionInstancesShortNames.add(shortName); + functionInstancesLongNames.add(longName); + } + } + } + functionInstancesShortNames.add(Utils.END); + functionInstancesLongNames.add(Utils.END); + + //Create a shorter version of the names for the requestChain + List<String> shortNameRequestChain = new ArrayList<>(); + for (String longName : requestChain){ + String shortName = ""+longName.charAt(0)+longName.charAt(1)+longName.charAt(2); + shortNameRequestChain.add(shortName); + } + + //Input variables + //Create/Get the coefficients for the lambdas values in the objective function + int beta = requestChain.size()+2;//Add to be +2 to be number of links between instance + 1 due to constraint 6 + double deadline = 100; + + Problem problem = new Problem(); + + //Decision variables + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + problem.setVarType("x" + functionInstancesShortNames.get(i) + functionInstancesShortNames.get(j), Boolean.class); + } + } + for (int i=0;i<functionInstancesShortNames.size();i++){ + problem.setVarType("y"+functionInstancesShortNames.get(i), Boolean.class); + } + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + problem.setVarType("o" + functionInstancesShortNames.get(i) + functionInstancesShortNames.get(j), Integer.class); + problem.setVarLowerBound("o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j),0); + problem.setVarUpperBound("o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j),beta); + } + } + + //Create the objective constraint + Linear linear = new Linear(); + //Travelling part + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + linear.add(network.getLinkMarginalEnergyConsumption(functionInstancesLongNames.get(i),functionInstancesLongNames.get(j),this.startLocation,this.destinationLocation), "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + } + //Purchasing part + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //Exclude the start and end nodes + linear.add(network.getInstanceMarginalEnergyConsumption(functionInstancesLongNames.get(i)), "y"+functionInstancesShortNames.get(i)); + } + problem.setObjective(linear, OptType.MIN); + + //Add the constraints + //Number 6 + //Special case source + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(0)); + } + for (int j=0;j<functionInstancesShortNames.size();j++){//z + linear.add(-1, "x"+functionInstancesShortNames.get(0)+functionInstancesShortNames.get(j)); + } + problem.add("6-source",linear, "=", -1); + //Special case destination + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(functionInstancesShortNames.size()-1)); + } + for (int j=0;j<functionInstancesShortNames.size();j++){//z + linear.add(-1, "x"+functionInstancesShortNames.get(functionInstancesShortNames.size()-1)+functionInstancesShortNames.get(j)); + } + problem.add("7-dest",linear, "=", 1); + //Regular case + linear = new Linear(); + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //v minus source and destination + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(i)); + } + for (int j=0;j<functionInstancesShortNames.size();j++){//z + linear.add(-1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + problem.add("5-regular"+i,linear, "=", 0); + linear = new Linear(); //Do not forget to reset! + } + //Number 8 + linear = new Linear(); + for (int i=0;i<requestChain.size();i++){ //f + for (int j=1;j<functionInstancesShortNames.size()-1;j++){//v [(should not place on the source or the end)] + linear.add(isFunctionInstanceForFunction(functionInstancesLongNames.get(j),requestChain.get(i)), "y"+functionInstancesShortNames.get(j)); + } + problem.add("8_"+i,linear, "=", 1); + linear = new Linear(); + } + + //Number 9 + linear = new Linear(); + for (int j=1;j<functionInstancesShortNames.size()-1;j++){//v - source - destination + for (int k=0;k<functionInstancesShortNames.size();k++) {//w + linear.add(1, "x" + functionInstancesShortNames.get(j) + functionInstancesShortNames.get(k)); + } + linear.add(-1, "y" + functionInstancesShortNames.get(j)); + problem.add("9_"+j,linear, "=",0); + linear = new Linear(); + } + //Number 10 + for (int i=0;i<functionInstancesShortNames.size();i++){ //w + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//v + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(i)); + } + problem.add("10_"+i,linear, "<=", 1); + } + //Number 11 + for (int i=0;i<functionInstancesShortNames.size();i++){ //v + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + problem.add("11_"+i,linear, "<=", 1); + } + + //Number 12 + linear = new Linear(); + for (int i=0;i<functionInstancesShortNames.size();i++){ //v + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + linear.add(-beta, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + problem.add("12_"+i+"_"+j,linear, "<=", 0); + linear = new Linear(); + } + } + //Number 13 - special case source node + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++) {//w + linear.add(1, "o"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(0)); + linear.add(-1, "o"+functionInstancesShortNames.get(0)+functionInstancesShortNames.get(j)); + linear.add(-1, "x"+functionInstancesShortNames.get(0)+functionInstancesShortNames.get(j)); + } + problem.add("13-source",linear, "=", -beta); + // Number 13 + linear = new Linear(); + for (int i=1;i<functionInstancesShortNames.size()-1;i++) { //v - source - destination + for (int j=0;j<functionInstancesShortNames.size();j++) {//w + linear.add(1, "o"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(i)); + linear.add(-1, "o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + linear.add(-1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + problem.add("13_"+i,linear, "=", 0); + linear = new Linear(); + } + //Number 14 - My alternative of constraint to enforce order + linear = new Linear(); + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //v (- destination) - source (cannot place on source anyway) + for (int j=1;j<functionInstancesShortNames.size()-1;j++){ //w (- destination) - source + if (i != j) { + for (int k = 0; k < requestChain.size(); k++) { + for (int l = 0; l < requestChain.size(); l++) { + if(k!=l){ + //The order in the request chain order should be the order in which the function should be placed + if(k==l-1){ + if(isFunctionInstanceForFunction(functionInstancesLongNames.get(i),requestChain.get(k))==1 &&isFunctionInstanceForFunction(functionInstancesLongNames.get(j),requestChain.get(l)) ==1) { + for (int m = 0; m < functionInstancesShortNames.size()-1; m++) {//alpha + linear.add(isFunctionInstanceForFunction(functionInstancesLongNames.get(i),requestChain.get(k)), "o" + functionInstancesShortNames.get(m) + functionInstancesShortNames.get(i)); + linear.add(-isFunctionInstanceForFunction(functionInstancesLongNames.get(j),requestChain.get(l)) , "o" + functionInstancesShortNames.get(m) + functionInstancesShortNames.get(j)); + linear.add(-beta, "x" + functionInstancesShortNames.get(m)+functionInstancesShortNames.get(j)); + } + linear.add(-1, "x" + functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + linear.add(-beta, "y" + functionInstancesShortNames.get(i)); + linear.add(beta, "y" + functionInstancesShortNames.get(j)); + problem.add("14new_" + i + "_" + j + "_" + k + "_" + l, linear, ">=", -beta); + linear = new Linear(); + } + } + } + } + } + } + } + } + + //Number 15 + linear = new Linear(); + //Travelling part + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + linear.add(network.getLinkTransmissionTime(functionInstancesLongNames.get(i),functionInstancesLongNames.get(j)), "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + } + //Purchasing part + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //Exclude the start node and the end node + String currentName = functionInstancesLongNames.get(i); + Pair<String, String> nameSplit= Utils.splitLongFunctionInstanceName(currentName); + linear.add(network.getExecutionTime(nameSplit.getKey(),nameSplit.getValue()), "y"+functionInstancesShortNames.get(i)); + } + problem.add("15",linear, "<=", deadline); + + //No self loop + linear = new Linear(); + for (int i=0;i<functionInstancesShortNames.size();i++){ + linear.add(1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(i)); + } + problem.add("noSelfLoop",linear, "=", 0); + + //Force so that nothing is placed on start and end + linear = new Linear(); + linear.add(1, "y"+functionInstancesShortNames.get(0)); + problem.add("NoPlacementOnStart",linear, "=", 0); + linear = new Linear(); + linear.add(1, "y"+functionInstancesShortNames.get(functionInstancesShortNames.size()-1)); + problem.add("NoPlacementOnEnd",linear, "=", 0); + + //Solve the problem + Solver solver = new SolverGurobi(); + Result result = solver.solve(problem); + + if (result == null){ + //Infeasible model, the request most likely cannot be served in time and should be dropped to avoid wasting resources + System.out.println("The request is infeasible"); + return null; + } + + System.out.println(result); + + //Transform the solver output into a placement variable + List<String> optimalTourOrder = new LinkedList<>(); + List<String> optimalTourVisitReason = new LinkedList<>(); + List<String> allElementsForTiming = new LinkedList<>(); + + //Get which links were selected by the solver + Map<String,String> selectedLinks =new HashMap<>(); + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + //Check all the decision variables x values and extract the ones selected + if (result.getPrimalValue("x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)).intValue()==1){ + selectedLinks.put(functionInstancesLongNames.get(i),functionInstancesLongNames.get(j)); + allElementsForTiming.add(functionInstancesLongNames.get(i)+"=>"+functionInstancesLongNames.get(j)); //Add all links + } + } + } + //Follow the path and fill the pre-return variables + //Deal with the start device + optimalTourOrder.add(startLocation); + optimalTourVisitReason.add("Start"); + String currentInstance = selectedLinks.get(Utils.START); + //Deal with the middle devices based on the solver output + while(!currentInstance.equals(Utils.END)){ + allElementsForTiming.add(currentInstance); + Pair<String,String> instanceSplit = Utils.splitLongFunctionInstanceName(currentInstance); + optimalTourOrder.add(instanceSplit.getKey()); + optimalTourVisitReason.add(instanceSplit.getValue()); + currentInstance=selectedLinks.get(currentInstance); + } + + //Deal with the destination device + optimalTourOrder.add(destinationLocation); + optimalTourVisitReason.add("Destination"); + + //Creating the return variable + Triple<List<String>,List<String>,List<String>> placement= new Triple<>(optimalTourOrder,optimalTourVisitReason, allElementsForTiming); + return placement; + } + + public RequestPlacementOutput run(Application currentApplication, String startLocation) { + //Getting the start location, i.e. the device at which the tuple is received + this.startLocation = startLocation; + this.destinationLocation = startLocation;//In the current implementation, start and end device are the same. + + RequestPlacementOutput placement = new RequestPlacementOutput(); + List<String> requestChain = currentApplication.getRequestChain(); + + Triple<List<String>,List<String>,List<String>> output = optimizationSolve(requestChain); + if (output == null){ + //No placement solution + return null; + } + + //Fix the placement class + placement.setObtainedTour(output.getLeft()); + placement.setObtainedTourVisitReason(output.getMiddle()); + placement.updateAppFunctionToDevice(); + placement.setElementsForTiming(output.getRight()); + + return placement; + } + + private int isFunctionInstanceForFunction(String longFunctionInstanceName,String functionName){ + //Note: we assume that the long name is "device name" +"-"+"functionName" + //If it is not like that, this function does not work + boolean answer =longFunctionInstanceName.contains(functionName); + return (answer) ? 1 : 0; + } + +} diff --git a/Code/src/placement/OptimalRequestPlacement_Overall.java b/Code/src/placement/OptimalRequestPlacement_Overall.java new file mode 100644 index 0000000000000000000000000000000000000000..96c5a122dc49bacae2f20eeda9291a9371b48823 --- /dev/null +++ b/Code/src/placement/OptimalRequestPlacement_Overall.java @@ -0,0 +1,358 @@ +package placement; + +import application.Application; +import net.sf.javailp.*; +import device.Device; +import org.apache.commons.math3.util.Pair; +import system.Network; +import utils.Triple; +import utils.Utils; + +import java.util.*; + +/** + * Created by Klervie Toczé + * Request Placement using ILP + * Optimization objective: Overall Energy + */ +public class OptimalRequestPlacement_Overall implements RequestPlacementLogic { + + Network network; + List<Device> edgeDevicesInArea;//edge devices that can be considered for placement + Map<String,Device> edgeDevicesInAreaByName; + + private String startLocation; //The device name of the start location for the request + private String destinationLocation; //The device name of the destination location for the request + + public OptimalRequestPlacement_Overall(Network network) { + this.network=network; + this.edgeDevicesInArea=network.getEdgeDevices(); + this.edgeDevicesInAreaByName = new HashMap<>(); + for (Device device : edgeDevicesInArea){ + this.edgeDevicesInAreaByName.put(device.getName(),device); + } + } + + private Triple<List<String>,List<String>,List<String>> optimizationSolve(List<String> requestChain){ + + SolverFactory factory = new SolverFactoryGurobi(); + factory.setParameter(Solver.VERBOSE,0); + factory.setParameter(Solver.TIMEOUT,1000); //Timeout of 1000 seconds + + //Get the names of the function instances + List<String> functionInstancesLongNames = new ArrayList<>(); + List<String> functionInstancesShortNames = new ArrayList<>(); + functionInstancesShortNames.add(Utils.START); + functionInstancesLongNames.add(Utils.START); + for (Device device : edgeDevicesInArea){ + if(device.getDeviceType()== Device.EDGE) { + //We are not interested by adding end device nodes + //The function instances placed are accessible via Device + for (String module:device.getPlacedModulesOnDevice()){ + //Note: the dash in between is to facilitate re-split later + String longName= device.getName() +"-" + module; + //Create a shorter name - Assuming a node name of type "gateway_0", we want the first character and the number + // followed by the two first letters of the module name + String shortNameDevice; + String nodeName=device.getName(); + if (nodeName.charAt(nodeName.length()-2)!="_".charAt(0)){ + shortNameDevice= ""+nodeName.charAt(0)+nodeName.charAt(nodeName.length()-2)+nodeName.charAt(nodeName.length()-1); + } + else { + shortNameDevice= ""+nodeName.charAt(0)+nodeName.charAt(nodeName.length()-1); + } + String shortName = shortNameDevice +module.charAt(0)+module.charAt(1); + functionInstancesShortNames.add(shortName); + functionInstancesLongNames.add(longName); + } + } + } + functionInstancesShortNames.add(Utils.END); + functionInstancesLongNames.add(Utils.END); + + //Create a shorter version of the names for the requestChain + List<String> shortNameRequestChain = new ArrayList<>(); + for (String longName : requestChain){ + String shortName = ""+longName.charAt(0)+longName.charAt(1)+longName.charAt(2); + shortNameRequestChain.add(shortName); + } + + //Input variables + //Create/Get the coefficients for the lambdas values in the objective function + int beta = requestChain.size()+2;//Add to be +2 to be number of links between instance + 1 due to constraint 6 + double deadline = 100; + + Problem problem = new Problem(); + + //Decision variables + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + problem.setVarType("x" + functionInstancesShortNames.get(i) + functionInstancesShortNames.get(j), Boolean.class); + } + } + for (int i=0;i<functionInstancesShortNames.size();i++){ + problem.setVarType("y"+functionInstancesShortNames.get(i), Boolean.class); + } + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + problem.setVarType("o" + functionInstancesShortNames.get(i) + functionInstancesShortNames.get(j), Integer.class); + problem.setVarLowerBound("o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j),0); + problem.setVarUpperBound("o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j),beta); + } + } + + //Create the objective constraint + Linear linear = new Linear(); + //Travelling part + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + linear.add(network.getLinkEnergyConsumption(functionInstancesLongNames.get(i),functionInstancesLongNames.get(j),this.startLocation,this.destinationLocation), "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + } + //Purchasing part + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //Exclude the start and end nodes + linear.add(network.getInstanceEnergyConsumption(functionInstancesLongNames.get(i)), "y"+functionInstancesShortNames.get(i)); + } + problem.setObjective(linear, OptType.MIN); + + //Add the constraints + //Number 6 + //Special case source + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(0)); + } + for (int j=0;j<functionInstancesShortNames.size();j++){//z + linear.add(-1, "x"+functionInstancesShortNames.get(0)+functionInstancesShortNames.get(j)); + } + problem.add("6-source",linear, "=", -1); + //Special case destination + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(functionInstancesShortNames.size()-1)); + } + for (int j=0;j<functionInstancesShortNames.size();j++){//z + linear.add(-1, "x"+functionInstancesShortNames.get(functionInstancesShortNames.size()-1)+functionInstancesShortNames.get(j)); + } + problem.add("7-dest",linear, "=", 1); + //Regular case + linear = new Linear(); + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //v minus source and destination + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(i)); + } + for (int j=0;j<functionInstancesShortNames.size();j++){//z + linear.add(-1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + problem.add("5-regular"+i,linear, "=", 0); + linear = new Linear(); //Do not forget to reset! + } + //Number 8 + linear = new Linear(); + for (int i=0;i<requestChain.size();i++){ //f + for (int j=1;j<functionInstancesShortNames.size()-1;j++){//v [(should not place on the source or the end)] + linear.add(isFunctionInstanceForFunction(functionInstancesLongNames.get(j),requestChain.get(i)), "y"+functionInstancesShortNames.get(j)); + } + problem.add("8_"+i,linear, "=", 1); + linear = new Linear(); + } + + //Number 9 + linear = new Linear(); + for (int j=1;j<functionInstancesShortNames.size()-1;j++){//v - source - destination + for (int k=0;k<functionInstancesShortNames.size();k++) {//w + linear.add(1, "x" + functionInstancesShortNames.get(j) + functionInstancesShortNames.get(k)); + } + linear.add(-1, "y" + functionInstancesShortNames.get(j)); + problem.add("9_"+j,linear, "=",0); + linear = new Linear(); + } + //Number 10 + for (int i=0;i<functionInstancesShortNames.size();i++){ //w + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//v + linear.add(1, "x"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(i)); + } + problem.add("10_"+i,linear, "<=", 1); + } + //Number 11 + for (int i=0;i<functionInstancesShortNames.size();i++){ //v + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + problem.add("11_"+i,linear, "<=", 1); + } + + //Number 12 + linear = new Linear(); + for (int i=0;i<functionInstancesShortNames.size();i++){ //v + for (int j=0;j<functionInstancesShortNames.size();j++){//w + linear.add(1, "o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + linear.add(-beta, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + problem.add("12_"+i+"_"+j,linear, "<=", 0); + linear = new Linear(); + } + } + //Number 13 - special case source node + linear = new Linear(); + for (int j=0;j<functionInstancesShortNames.size();j++) {//w + linear.add(1, "o"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(0)); + linear.add(-1, "o"+functionInstancesShortNames.get(0)+functionInstancesShortNames.get(j)); + linear.add(-1, "x"+functionInstancesShortNames.get(0)+functionInstancesShortNames.get(j)); + } + problem.add("13-source",linear, "=", -beta); + // Number 13 + linear = new Linear(); + for (int i=1;i<functionInstancesShortNames.size()-1;i++) { //v - source - destination + for (int j=0;j<functionInstancesShortNames.size();j++) {//w + linear.add(1, "o"+functionInstancesShortNames.get(j)+functionInstancesShortNames.get(i)); + linear.add(-1, "o"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + linear.add(-1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + problem.add("13_"+i,linear, "=", 0); + linear = new Linear(); + } + //Number 14 - My alternative of constraint to enforce order + linear = new Linear(); + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //v (- destination) - source (cannot place on source anyway) + for (int j=1;j<functionInstancesShortNames.size()-1;j++){ //w (- destination) - source + if (i != j) { + for (int k = 0; k < requestChain.size(); k++) { + for (int l = 0; l < requestChain.size(); l++) { + if(k!=l){ + //The order in the request chain order should be the order in which the function should be placed + if(k==l-1){ + if(isFunctionInstanceForFunction(functionInstancesLongNames.get(i),requestChain.get(k))==1 &&isFunctionInstanceForFunction(functionInstancesLongNames.get(j),requestChain.get(l)) ==1) { + for (int m = 0; m < functionInstancesShortNames.size()-1; m++) {//alpha + linear.add(isFunctionInstanceForFunction(functionInstancesLongNames.get(i),requestChain.get(k)), "o" + functionInstancesShortNames.get(m) + functionInstancesShortNames.get(i)); + linear.add(-isFunctionInstanceForFunction(functionInstancesLongNames.get(j),requestChain.get(l)) , "o" + functionInstancesShortNames.get(m) + functionInstancesShortNames.get(j)); + linear.add(-beta, "x" + functionInstancesShortNames.get(m)+functionInstancesShortNames.get(j)); + } + linear.add(-1, "x" + functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + linear.add(-beta, "y" + functionInstancesShortNames.get(i)); + linear.add(beta, "y" + functionInstancesShortNames.get(j)); + problem.add("14new_" + i + "_" + j + "_" + k + "_" + l, linear, ">=", -beta); + linear = new Linear(); + } + } + } + } + } + } + } + } + + //Number 15 + linear = new Linear(); + //Travelling part + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + linear.add(network.getLinkTransmissionTime(functionInstancesLongNames.get(i),functionInstancesLongNames.get(j)), "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)); + } + } + //Purchasing part + for (int i=1;i<functionInstancesShortNames.size()-1;i++){ //Exclude the start node and the end node + String currentName = functionInstancesLongNames.get(i); + Pair<String, String> nameSplit= Utils.splitLongFunctionInstanceName(currentName); + linear.add(network.getExecutionTime(nameSplit.getKey(),nameSplit.getValue()), "y"+functionInstancesShortNames.get(i)); + } + problem.add("15",linear, "<=", deadline); + + //No self loop + linear = new Linear(); + for (int i=0;i<functionInstancesShortNames.size();i++){ + linear.add(1, "x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(i)); + } + problem.add("noSelfLoop",linear, "=", 0); + + //Force so that nothing is placed on start and end + linear = new Linear(); + linear.add(1, "y"+functionInstancesShortNames.get(0)); + problem.add("NoPlacementOnStart",linear, "=", 0); + linear = new Linear(); + linear.add(1, "y"+functionInstancesShortNames.get(functionInstancesShortNames.size()-1)); + problem.add("NoPlacementOnEnd",linear, "=", 0); + + //Solve the problem + Solver solver = new SolverGurobi(); + Result result = solver.solve(problem); + + if (result == null){ + //Infeasible model, the request most likely cannot be served in time and should be dropped to avoid wasting resources + System.out.println("The request is infeasible"); + return null; + } + + System.out.println(result); + + //Transform the solver output into a placement variable + List<String> optimalTourOrder = new LinkedList<>(); + List<String> optimalTourVisitReason = new LinkedList<>(); + List<String> allElementsForTiming = new LinkedList<>(); + + //Get which links were selected by the solver + Map<String,String> selectedLinks =new HashMap<>(); + for (int i=0;i<functionInstancesShortNames.size();i++){ + for (int j=0;j<functionInstancesShortNames.size();j++){ + //Check all the decision variables x values and extract the ones selected + if (result.getPrimalValue("x"+functionInstancesShortNames.get(i)+functionInstancesShortNames.get(j)).intValue()==1){ + selectedLinks.put(functionInstancesLongNames.get(i),functionInstancesLongNames.get(j)); + allElementsForTiming.add(functionInstancesLongNames.get(i)+"=>"+functionInstancesLongNames.get(j)); //Add all links + } + } + } + //Follow the path and fill the pre-return variables + //Deal with the start device + optimalTourOrder.add(startLocation); + optimalTourVisitReason.add("Start"); + String currentInstance = selectedLinks.get(Utils.START); + //Deal with the middle devices based on the solver output + while(!currentInstance.equals(Utils.END)){ + allElementsForTiming.add(currentInstance); + Pair<String,String> instanceSplit = Utils.splitLongFunctionInstanceName(currentInstance); + optimalTourOrder.add(instanceSplit.getKey()); + optimalTourVisitReason.add(instanceSplit.getValue()); + currentInstance=selectedLinks.get(currentInstance); + } + + //Deal with the destination device + optimalTourOrder.add(destinationLocation); + optimalTourVisitReason.add("Destination"); + + //Creating the return variable + Triple<List<String>,List<String>,List<String>> placement= new Triple<>(optimalTourOrder,optimalTourVisitReason, allElementsForTiming); + return placement; + } + + public RequestPlacementOutput run(Application currentApplication, String startLocation) { + //Getting the start location, i.e. the device at which the tuple is received + this.startLocation = startLocation; + this.destinationLocation = startLocation;//In the current implementation, start and end device are the same. + + RequestPlacementOutput placement = new RequestPlacementOutput(); + List<String> requestChain = currentApplication.getRequestChain(); + + Triple<List<String>,List<String>,List<String>> output = optimizationSolve(requestChain); + if (output == null){ + //No placement solution + return null; + } + + //Fix the placement class + placement.setObtainedTour(output.getLeft()); + placement.setObtainedTourVisitReason(output.getMiddle()); + placement.updateAppFunctionToDevice(); + placement.setElementsForTiming(output.getRight()); + + return placement; + } + + private int isFunctionInstanceForFunction(String longFunctionInstanceName,String functionName){ + //Note: we assume that the long name is "device name" +"-"+"functionName" + //If it is not like that, this function does not work + boolean answer =longFunctionInstanceName.contains(functionName); + return (answer) ? 1 : 0; + } + +} diff --git a/Code/src/placement/RequestPlacementLogic.java b/Code/src/placement/RequestPlacementLogic.java new file mode 100644 index 0000000000000000000000000000000000000000..1a5ca54155301a4357b2040046bec6f957c23911 --- /dev/null +++ b/Code/src/placement/RequestPlacementLogic.java @@ -0,0 +1,10 @@ +package placement; + +import application.Application; + +/** + * Created by Klervie Toczé + */ +public interface RequestPlacementLogic { + RequestPlacementOutput run(Application application, String startLocation); +} diff --git a/Code/src/placement/RequestPlacementOutput.java b/Code/src/placement/RequestPlacementOutput.java new file mode 100644 index 0000000000000000000000000000000000000000..57dbc28785cc9c5f8772929852d58c1cd813ec8b --- /dev/null +++ b/Code/src/placement/RequestPlacementOutput.java @@ -0,0 +1,48 @@ +package placement; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Created by Klervie Toczé + */ +public class RequestPlacementOutput { + + List<String> obtainedTour; //output of the placement + List<String> obtainedTourVisitReason; //output of the placement + List<String> elementsForTiming; //All links and devices to be timed according to the placement + + private Map<String, String> appFunctionToDevice; //Function mapping to device name according to obtained tour + + public RequestPlacementOutput() { + } + + public Map<String, String> getAppFunctionToDevice(){ + return this.appFunctionToDevice; + } + + public List<String> getElementsForTiming() { + return elementsForTiming; + } + + public void setObtainedTour(List<String> obtainedTour) { + this.obtainedTour = obtainedTour; //Note: shallow copy should not be a problem here as we deep copied when exiting the placement class + } + + public void setObtainedTourVisitReason(List<String> obtainedTourVisitReason) { + this.obtainedTourVisitReason = obtainedTourVisitReason; //Note: shallow copy should not be a problem here as we deep copied when exiting the placement class + } + + public void setElementsForTiming(List<String> elementsForTiming){ + this.elementsForTiming=elementsForTiming; + } + + public void updateAppFunctionToDevice(){ + appFunctionToDevice = new HashMap<>(); + for (int i = 1; i< obtainedTour.size()-1; i++){ //We remove the init and end + appFunctionToDevice.put(obtainedTourVisitReason.get(i), obtainedTour.get(i)); + } + } + +} diff --git a/Code/src/solver/SolverGurobi.java b/Code/src/solver/SolverGurobi.java new file mode 100644 index 0000000000000000000000000000000000000000..da19a9f7d1c12c510b889597d166401918c86b14 --- /dev/null +++ b/Code/src/solver/SolverGurobi.java @@ -0,0 +1,190 @@ +package solver;// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +import gurobi.*; +import gurobi.GRB.DoubleAttr; +import gurobi.GRB.DoubleParam; +import gurobi.GRB.IntParam; +import net.sf.javailp.*; + +import java.util.*; + +public class SolverGurobi extends AbstractSolver { + protected final Set<Hook> hooks = new HashSet(); + + public SolverGurobi() { + } + + public Result solve(Problem problem) { + Map<Object, GRBVar> objToVar = new HashMap(); + Map<GRBVar, Object> varToObj = new HashMap(); + + try { + GRBEnv env = new GRBEnv("gurobi.log"); + this.initWithParameters(env); + GRBModel model = new GRBModel(env); + OptType optType = problem.getOptType(); + Map<Object, Double> optimizationCoefficients = new HashMap(); + Linear objective = problem.getObjective(); + Object variable; + double coeff; + if (objective != null) { + for(Iterator i$ = objective.iterator(); i$.hasNext(); optimizationCoefficients.put(variable, coeff)) { + Term term = (Term)i$.next(); + variable = term.getVariable(); + coeff = term.getCoefficient().doubleValue(); + if (optType == OptType.MAX) { + coeff *= -1.0; + } + } + } + + int i = 1; + + double primalValue; + Iterator i$; + for(i$ = problem.getVariables().iterator(); i$.hasNext(); ++i) { + variable = i$.next(); + VarType varType = problem.getVarType(variable); + Number lowerBound = problem.getVarLowerBound(variable); + Number upperBound = problem.getVarUpperBound(variable); + primalValue = lowerBound != null ? lowerBound.doubleValue() : -1.7976931348623157E308; + double ub = upperBound != null ? upperBound.doubleValue() : Double.MAX_VALUE; + String name = variable.toString(); + char type; + switch (varType) { + case BOOL: + type = 'B'; + break; + case INT: + type = 'I'; + break; + default: + type = 'C'; + } + + Double coeff2 = (Double)optimizationCoefficients.get(variable); + if (coeff2 == null) { + coeff2 = 0.0; + } + + GRBVar var = model.addVar(primalValue, ub, coeff2, type, name); + objToVar.put(variable, var); + varToObj.put(var, variable); + } + + model.update(); + + Constraint constraint; + GRBLinExpr expr; + char operator; + for(i$ = problem.getConstraints().iterator(); i$.hasNext(); model.addConstr(expr, operator, constraint.getRhs().doubleValue(), constraint.getName())) { + constraint = (Constraint)i$.next(); + expr = new GRBLinExpr(); + Iterator j$ = constraint.getLhs().iterator(); + + while(j$.hasNext()) { + Term term = (Term)j$.next(); + GRBVar var = (GRBVar)objToVar.get(term.getVariable()); + expr.addTerm(term.getCoefficient().doubleValue(), var); + } + + if (constraint.getOperator() == Operator.GE) { + operator = '>'; + } else if (constraint.getOperator() == Operator.LE) { + operator = '<'; + } else { + operator = '='; + } + } + + i$ = this.hooks.iterator(); + + while(i$.hasNext()) { + Hook hook = (Hook)i$.next(); + hook.call(env, model, objToVar, varToObj, problem); + } + + //The two lines below can be uncommented to investigate why a model is infeasible + //model.computeIIS(); + //model.write("infeasible.ilp"); + + model.optimize(); + System.out.println("Model status is "+ model.get(GRB.IntAttr.Status)); + System.out.println("Model runtime is "+ model.get(GRB.DoubleAttr.Runtime)); + + //Below code to exit in a controlled way if the model is infeasible + if (model.get(GRB.IntAttr.Status) == 3){//INFEASIBLE See https://www.gurobi.com/documentation/9.1/refman/optimization_status_codes.html + return null; + } + + ResultImpl result; + if (problem.getObjective() != null) { + result = new ResultImpl(problem.getObjective()); + } else { + result = new ResultImpl(); + } + + Iterator j$ = objToVar.entrySet().iterator(); + + while(j$.hasNext()) { + Map.Entry<Object, GRBVar> entry = (Map.Entry)j$.next(); + Object variable2 = entry.getKey(); + GRBVar var = (GRBVar)entry.getValue(); + primalValue = var.get(DoubleAttr.X); + if (problem.getVarType(variable2).isInt()) { + int v = (int)Math.round(primalValue); + result.putPrimalValue(variable2, v); + } else { + result.putPrimalValue(variable2, primalValue); + } + } + + return result; + } catch (GRBException var23) { + var23.printStackTrace(); + return null; + } + } + + protected void initWithParameters(GRBEnv env) throws GRBException { + Object verbose = this.parameters.get(1); + Object timeout = this.parameters.get(0); + Number number; + if (verbose != null && verbose instanceof Number) { + number = (Number)verbose; + int value = number.intValue(); + byte msgLevel; + switch (value) { + case 0: + msgLevel = 0; + break; + default: + msgLevel = 1; + } + + env.set(IntParam.OutputFlag, msgLevel); + } + + if (timeout != null && timeout instanceof Number) { + number = (Number)timeout; + double value = number.doubleValue(); + env.set(DoubleParam.TimeLimit, value); + } + + } + + public void addHook(Hook hook) { + this.hooks.add(hook); + } + + public void removeHook(Hook hook) { + this.hooks.remove(hook); + } + + public interface Hook { + void call(GRBEnv var1, GRBModel var2, Map<Object, GRBVar> var3, Map<GRBVar, Object> var4, Problem var5); + } +} diff --git a/Code/src/system/Location.java b/Code/src/system/Location.java new file mode 100644 index 0000000000000000000000000000000000000000..f457244e8f8b7faf54df9c235e76dfff0883f675 --- /dev/null +++ b/Code/src/system/Location.java @@ -0,0 +1,12 @@ +package system; + +public class Location { + + public double latitude; + public double longitude; + + public Location(double latitude, double longitude) { + this.latitude = latitude; + this.longitude = longitude; + } +} diff --git a/Code/src/system/Network.java b/Code/src/system/Network.java new file mode 100644 index 0000000000000000000000000000000000000000..596a8924dbcf614ad1d0f948f5ec6c2813bb856d --- /dev/null +++ b/Code/src/system/Network.java @@ -0,0 +1,600 @@ +package system; + +import application.Application; +import device.Device; +import org.apache.commons.math3.util.Pair; +import placement.RequestPlacementOutput; +import utils.Config; +import utils.Distribution; +import utils.NormalDistribution; +import utils.Utils; +import org.jgrapht.Graph; +import org.jgrapht.GraphPath; +import org.jgrapht.alg.interfaces.ShortestPathAlgorithm; +import org.jgrapht.alg.shortestpath.DijkstraShortestPath; +import org.jgrapht.graph.DefaultUndirectedWeightedGraph; +import org.jgrapht.graph.DefaultWeightedEdge; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Network { + + List<Device> edgeDevices = new ArrayList<Device>(); + Map<String, Device> nameToDevice; + + Application application; + + Graph<Device, DefaultWeightedEdge> graph; + DijkstraShortestPath<Device, DefaultWeightedEdge> dijkstraAlg; + + Map<String,Double> utilization; + Map<String,Double> time_links = new HashMap<>();//Create container + Map<String,Double> energy_links = new HashMap<>();//Create container + Map<String,Double> energy_residual_links = new HashMap<>();//Create container + Map<String,Double> time_devices = new HashMap<>();//Create container + Map<String,Double> energy_devices = new HashMap<>();//Create container + Map<String,Double> energy_residual_devices = new HashMap<>();//Create container + + String placingDevice; + + public Network(Application applicationConsidered, String placingDevice){ + + application= applicationConsidered; + this.placingDevice=placingDevice; + + //Locations according to Abilene + Map<Integer,Location> locationInfo = new HashMap<Integer,Location>(); + + Location location0= new Location(40.71427,-74.00597); + locationInfo.put(0,location0); + Location location1= new Location(41.85003,-87.65005); + locationInfo.put(1,location1); + Location location2= new Location(38.89511,-77.03637); + locationInfo.put(2,location2); + Location location3= new Location(47.60621,-122.33207); + locationInfo.put(3,location3); + Location location4= new Location(37.36883,-122.03635); + locationInfo.put(4,location4); + Location location5= new Location(34.05223,-118.24368); + locationInfo.put(5,location5); + Location location6= new Location(39.73915,-104.9847); + locationInfo.put(6,location6); + Location location7= new Location(39.11417,-94.62746); + locationInfo.put(7,location7); + Location location8= new Location(29.76328,-95.36327); + locationInfo.put(8,location8); + Location location9= new Location(33.749,-84.38798); + locationInfo.put(9,location9); + Location location10= new Location(39.76838,-86.15804); + locationInfo.put(10,location10); + + for (int i = 0; i < 11; i++) { + + Device gateway = createEdgeDevice("gateway_" + i, 300 , Device.EDGE); + gateway.setLocationInformation(locationInfo.get(i)); + edgeDevices.add(gateway); + } + + createNetworkGraph(); + dijkstraAlg = new DijkstraShortestPath<>(graph); + } + + private void createNetworkGraph(){ + graph = new DefaultUndirectedWeightedGraph<>(DefaultWeightedEdge.class); + + //Utility map returning Device based on name - used for creating the links easier + nameToDevice= new HashMap<String, Device>(); + + // Add vertices + for (Device edgeDevice: edgeDevices) { + if(edgeDevice.getName().contains("gateway")){ //All of them should + graph.addVertex(edgeDevice); + //Adding the node to the map + nameToDevice.put(edgeDevice.getName(), edgeDevice); + } + } + + //Add edges - hardcoded to Abilene + graph.addEdge(nameToDevice.get("gateway_0"),nameToDevice.get("gateway_1")); + graph.addEdge(nameToDevice.get("gateway_0"),nameToDevice.get("gateway_2")); + graph.addEdge(nameToDevice.get("gateway_1"),nameToDevice.get("gateway_10")); + graph.addEdge(nameToDevice.get("gateway_2"),nameToDevice.get("gateway_9")); + graph.addEdge(nameToDevice.get("gateway_3"),nameToDevice.get("gateway_6")); + graph.addEdge(nameToDevice.get("gateway_3"),nameToDevice.get("gateway_4")); + graph.addEdge(nameToDevice.get("gateway_4"),nameToDevice.get("gateway_5")); + graph.addEdge(nameToDevice.get("gateway_4"),nameToDevice.get("gateway_6")); + graph.addEdge(nameToDevice.get("gateway_6"),nameToDevice.get("gateway_7")); + graph.addEdge(nameToDevice.get("gateway_7"),nameToDevice.get("gateway_8")); + graph.addEdge(nameToDevice.get("gateway_7"),nameToDevice.get("gateway_10")); + graph.addEdge(nameToDevice.get("gateway_5"),nameToDevice.get("gateway_8")); + graph.addEdge(nameToDevice.get("gateway_8"),nameToDevice.get("gateway_9")); + graph.addEdge(nameToDevice.get("gateway_9"),nameToDevice.get("gateway_10")); + + //Set the edge weights + for (DefaultWeightedEdge edge: graph.edgeSet()){ + double calculatedWeight = calculateWeight(graph.getEdgeSource(edge), graph.getEdgeTarget(edge)); + graph.setEdgeWeight(edge,calculatedWeight); + } + } + + public double getLinkTransmissionTime(String startFunctionInstance, String destinationFunctionInstance){ + //Check if we already have it + Double linkTiming = time_links.get(startFunctionInstance+"=>"+destinationFunctionInstance); + if(linkTiming==null){ + //We need to calculate it + //Get size to be transmitted + Double size = application.getTargetFunctionNwSize(Utils.getTargetFunction(startFunctionInstance+"=>"+destinationFunctionInstance)); + //Get current utilization + Pair<String, String> nameSplitStart= Utils.splitLongFunctionInstanceName(startFunctionInstance); + Pair<String, String> nameSplitDestination= Utils.splitLongFunctionInstanceName(destinationFunctionInstance); + //Check for start/end nodes + if(nameSplitStart.getKey().equals(Utils.START)||nameSplitStart.getKey().equals(Utils.END)){ + //OBS for now start and end are the same + String value= nameSplitStart.getValue();//Should be empty string + nameSplitStart=new Pair<>(placingDevice,value); + } + if(nameSplitDestination.getKey().equals(Utils.START)||nameSplitDestination.getKey().equals(Utils.END)){ + //OBS for now start and end are the same + String value= nameSplitDestination.getValue();//Should be empty string + nameSplitDestination=new Pair<>(placingDevice,value); + } + + //Special case where end and start are the same - then transmission time is 0 + if(nameSplitStart.getKey().equals(nameSplitDestination.getKey())){ + linkTiming=0.0; + }else { + Double currentUtilization = utilization.get(nameSplitStart.getKey() + "=>" + nameSplitDestination.getKey()); + //Get available capacity + Double availableCapacity = Config.DEFAULT_LINK_CAPACITY * (1-(currentUtilization / 100)); + //Get link latency + Double linkLatency = getLinkLatency(nameSplitStart.getKey(), nameSplitDestination.getKey()); + //Calculate according to formula + if (availableCapacity==0){ + linkTiming = Double.valueOf(Config.INFINITE); + }else { + linkTiming = (size / availableCapacity) + linkLatency; + } + } + //Add to the Map variable + time_links.put(startFunctionInstance+"=>"+destinationFunctionInstance, linkTiming); + } + return linkTiming; + } + + public double getExecutionTime(String device, String functionInstance){ + //Check if we already have it + Double deviceTiming = time_devices.get(device+"-"+functionInstance); + if(deviceTiming==null){ + //We need to calculate it + //Get utilization value for this device + Double currentUtilization = utilization.get(device); + //Get size to be calculated + Double size = application.getTargetFunctionCPUSize(functionInstance); + //Get available capacity + Double availableCapacity = Config.DEFAULT_DEVICE_CAPACITY * (1-(currentUtilization / 100));//Note: this is allocating all the available capacity + //Calculate according to formula + if (availableCapacity==0){ + deviceTiming=Double.valueOf(Config.INFINITE); + }else { + deviceTiming = (size / availableCapacity); + } + //Add to the Map variable + time_devices.put(device+"-"+functionInstance, deviceTiming); + } + return deviceTiming; + } + + private double calculateWeight(Device source, Device destination){ + //For this scenario the weight is the latency calculated as the distance between the nodes divided by 100 + double distance = calculateDistance(source.getLocationInformation(),destination.getLocationInformation())/100; + return distance; + } + + public double calculateDistance(Location loc1, Location loc2) { + + final int R = 6371; // Radius of the earth in Kilometers + + double latDistance = Math.toRadians(loc1.latitude - loc2.latitude); + double lonDistance = Math.toRadians(loc1.longitude - loc2.longitude); + double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) + + Math.cos(Math.toRadians(loc1.latitude)) * Math.cos(Math.toRadians(loc2.latitude)) + * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2); + double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + double distance = R * c; // kms + + + distance = Math.pow(distance, 2); + + return Math.sqrt(distance); + } + + private double getLinkLatency(String startDeviceName, String endDeviceName){ + Device startDevice=nameToDevice.get(startDeviceName); + Device endDevice=nameToDevice.get(endDeviceName); + ShortestPathAlgorithm.SingleSourcePaths<Device, DefaultWeightedEdge> iPaths = dijkstraAlg.getPaths(startDevice); + GraphPath<Device, DefaultWeightedEdge> pathToDestination = iPaths.getPath(endDevice); + + //Calculate the latency of the path by summing the edge latency of its edges + double totalLatency = 0; + for (DefaultWeightedEdge link : pathToDestination.getEdgeList()){ + totalLatency+=graph.getEdgeWeight(link); + } + //Calculate latency + return totalLatency; + } + + private double getDynamicPowerForUtilization(double utilizationWithServicePlaced, double dynPower){ + //We consider a linear model were the dynamic power part is 0 at 0% utilization (OBS it still has idle power but this is another constant) + // and Dyn power att 100% utilization + //utilization in percentage + return dynPower*(utilizationWithServicePlaced/100); + } + + public double getLinkEnergyConsumption(String startFunctionInstanceName, String destinationFunctionInstanceName, + String startLocation, String destinationLocation){ + // 0 - Get names + String startDeviceName; + if (startFunctionInstanceName==Utils.START){ + startDeviceName=startLocation; + } + else if (startFunctionInstanceName==Utils.END){ + startDeviceName=destinationLocation; + } + else{ + Pair<String,String> startSplit = Utils.splitLongFunctionInstanceName(startFunctionInstanceName); + startDeviceName= startSplit.getKey(); + } + String destinationDeviceName; + if (destinationFunctionInstanceName==Utils.END){ + destinationDeviceName = destinationLocation; + } + else if (destinationFunctionInstanceName==Utils.START){ + destinationDeviceName = startLocation; + } + else{ + Pair<String,String> destinationSplit = Utils.splitLongFunctionInstanceName(destinationFunctionInstanceName); + destinationDeviceName= destinationSplit.getKey(); + } + + Double currentUtilization = utilization.get(startDeviceName + "=>" + destinationDeviceName); + + // 1- get the linkTiming + double linkTiming=getLinkTransmissionTime(startFunctionInstanceName,destinationFunctionInstanceName); + + // 2 - Check whether we already have calculated the energy + double energy_link; + if(energy_links.get(startFunctionInstanceName + "=>" + destinationFunctionInstanceName)!= null) { + energy_link=energy_links.get(startFunctionInstanceName + "=>" + destinationFunctionInstanceName); + } + else { + //We need to calculate it + + //Get Pidle + int p_link_idle = Config.DEFAULT_LINK_P_IDLE; + //GetPdyn + int p_link_dyn = Config.DEFAULT_LINK_P_DYN; + //Calculate energy + energy_link = p_link_idle * linkTiming + p_link_dyn * linkTiming; + + //Add to Map variables + energy_links.put(startFunctionInstanceName + "=>" + destinationFunctionInstanceName, energy_link); + } + return energy_link; + } + + public double getLinkMarginalEnergyConsumption(String startFunctionInstanceName, String destinationFunctionInstanceName, + String startLocation, String destinationLocation){ + // 0 - Get names + String startDeviceName; + if (startFunctionInstanceName==Utils.START){ + startDeviceName=startLocation; + } + else if (startFunctionInstanceName==Utils.END){ + startDeviceName=destinationLocation; + } + else{ + Pair<String,String> startSplit = Utils.splitLongFunctionInstanceName(startFunctionInstanceName); + startDeviceName= startSplit.getKey(); + } + String destinationDeviceName; + if (destinationFunctionInstanceName==Utils.END){ + destinationDeviceName = destinationLocation; + } + else if (destinationFunctionInstanceName==Utils.START){ + destinationDeviceName = startLocation; + } + else{ + Pair<String,String> destinationSplit = Utils.splitLongFunctionInstanceName(destinationFunctionInstanceName); + destinationDeviceName= destinationSplit.getKey(); + } + + double linkTiming=getLinkTransmissionTime(startFunctionInstanceName,destinationFunctionInstanceName); + + // 2 - Check whether we already have calculated the residual energy + double energy_residual_link; + if(energy_residual_links.get(startFunctionInstanceName + "=>" + destinationFunctionInstanceName)!= null) { + energy_residual_link=energy_residual_links.get(startFunctionInstanceName + "=>" + destinationFunctionInstanceName); + } + else { + //We need to calculate it + //First check if the timing is 0 (self loop) + if (linkTiming==0.0){ + energy_residual_link=0.0; + }else { + //Get Pidle + int p_link_idle = Config.DEFAULT_LINK_P_IDLE; + //GetPdyn + int p_link_dyn = Config.DEFAULT_LINK_P_DYN; + //Calculate residual energy + energy_residual_link = p_link_idle * linkTiming + p_link_dyn * linkTiming; + } + //Add to Map variables + energy_residual_links.put(startFunctionInstanceName + "=>" + destinationFunctionInstanceName, energy_residual_link); + } + return energy_residual_link; + } + + public double getInstanceEnergyConsumption(String functionInstanceName){ + // 1- Getting the hardware name + Pair<String, String> nameSplit = Utils.splitLongFunctionInstanceName(functionInstanceName); + String deviceName = nameSplit.getKey(); + + //Check whether we already have info about this + double energy_consumption; + if(energy_devices.get(functionInstanceName)!=null){ + energy_consumption=energy_devices.get(functionInstanceName); + }else{ + //We need to calculate it + + //Get execution time + double deviceTiming=getExecutionTime(deviceName,nameSplit.getValue()); + + //Get Pidle + int p_device_idle = Config.DEFAULT_DEVICE_P_IDLE; + //GetPdyn + int p_device_dyn = Config.DEFAULT_DEVICE_P_DYN; + //Calculate energy + energy_consumption = p_device_idle * deviceTiming + p_device_dyn * deviceTiming; //Assumes 100% utilization when selected + + //Add to Map variables + energy_devices.put(functionInstanceName, energy_consumption); + } + return energy_consumption; + } + + public double getInstanceMarginalEnergyConsumption(String functionInstanceName){ + // 1- Getting the hardware name + Pair<String, String> nameSplit = Utils.splitLongFunctionInstanceName(functionInstanceName); + String deviceName = nameSplit.getKey(); + + //Check whether we already have info about this + double energy_residual_consumption; + if(energy_residual_devices.get(functionInstanceName)!=null){ + energy_residual_consumption=energy_residual_devices.get(functionInstanceName); + }else{ + //We need to calculate it + + //Get execution time + double deviceTiming=getExecutionTime(deviceName,nameSplit.getValue()); + + //Get Pidle + int p_device_idle = Config.DEFAULT_DEVICE_P_IDLE; + //GetPdyn + int p_device_dyn = Config.DEFAULT_DEVICE_P_DYN; + //Get utilization value for this device + Double beforeUtilization = utilization.get(deviceName); + if (beforeUtilization == 0) { + energy_residual_consumption = p_device_idle * deviceTiming + p_device_dyn * deviceTiming; //Assumes the utilization gets up to 100% + } else { + double utilizationWithServicePlaced = 100.0; //Assumption, see above + double utilizationIncrease = utilizationWithServicePlaced - beforeUtilization; + //OBS Assumes a linear power consumption model + double p_device_dyn_util = getDynamicPowerForUtilization(utilizationIncrease, p_device_dyn);//How much power does the utilization increase due to the placement requires? + energy_residual_consumption = p_device_dyn_util * deviceTiming; //Only the dynamic part + } + + //Add to Map variables + energy_residual_devices.put(functionInstanceName, energy_residual_consumption); + } + return energy_residual_consumption; + } + + public void evaluatePlacementOutput(RequestPlacementOutput output, String startLocationMathematical, String endLocationMathematical){ + + if(output==null){ + System.out.println("No evaluation of the placement, request was infeasible"); + }else { + List<String> elementsToCalculateTime = output.getElementsForTiming(); + Map<String, String> placement = output.getAppFunctionToDevice(); + + for (String element : elementsToCalculateTime) { + if (Utils.isLink(element)) { + //It is a link + + //Get start and end device + Pair<String, String> devices = Utils.getLinkStartAndEndDevices(element); + //Get utilization value for this link + if (devices.getKey().equals(Utils.START)) { + //In our setup the start device=end device=the current device + String endDevice = devices.getValue(); + devices = new Pair<>(startLocationMathematical, endDevice); + } + if (devices.getValue().equals(Utils.END)) { + //In our setup the start device=end device=the current device + String startDevice = devices.getKey(); + devices = new Pair<>(startDevice, endLocationMathematical); + } + + //We should have already calculated the value when the optimizer picked it + Double linkTiming = time_links.get(element); + if (linkTiming == null) { + System.out.println("ERROR link timing value not available"); + } + + //We should have already calculated the value when the optimizer picked it + Double energy_link = energy_links.get(element); + if (energy_link == null) { + System.out.println("ERROR link energy value not available"); + } + + Double energy_residual_link = energy_residual_links.get(element); + if (energy_residual_link == null) { + //Calculate it + Pair<String, String> linkSplit = Utils.splitLinkName(element); + getLinkMarginalEnergyConsumption(linkSplit.getKey(), linkSplit.getValue(), startLocationMathematical, endLocationMathematical); + } + + } else { + //It is a node + //Get device name and function instance name + Pair<String, String> deviceAndFunction = Utils.splitLongFunctionInstanceName(element); + + //We should have already calculated the value when the optimizer picked it + Double deviceTiming = time_devices.get(element); + if (deviceTiming == null) { + System.out.println("ERROR device timing value not available"); + } + + //We should have already calculated the value when the optimizer picked it + Double energy_device = energy_devices.get(element); + if (energy_device == null) { + System.out.println("ERROR device energy value not available"); + } + + Double energy_residual_device = energy_residual_devices.get(element); + if (energy_residual_device == null) { + //Calculate it + getInstanceMarginalEnergyConsumption(element); + } + } + } + //Calculate the total - sum over the elements + double timeLink = 0; + double timeDevice = 0; + double timeLinkDevice = 0; + for (String element : elementsToCalculateTime) { + if (Utils.isLink(element)) { + timeLink += time_links.get(element); + } else { + timeDevice += time_devices.get(element); + } + } + timeLinkDevice = timeLink + timeDevice; + + double energyLink = 0; + double energyDevice = 0; + double energyLinkDevice = 0; + for (String element : elementsToCalculateTime) { + if (Utils.isLink(element)) { + energyLink += energy_links.get(element); + } else { + energyDevice += energy_devices.get(element); + } + } + energyLinkDevice = energyLink + energyDevice; + + double energyResLink = 0; + double energyResDevice = 0; + double energyResLinkDevice = 0; + for (String element : elementsToCalculateTime) { + if (Utils.isLink(element)) { + energyResLink += energy_residual_links.get(element); + } else { + energyResDevice += energy_residual_devices.get(element); + } + } + energyResLinkDevice = energyResLink + energyResDevice; + + //Print the results in a usable way + System.out.println("Evaluated placement: Time " + timeLinkDevice + " Energy " + energyLinkDevice + " Residual energy " + energyResLinkDevice + "In details - time link "+ timeLink + " time device " + timeDevice + " energy link " + energyLink + " energy device " + energyDevice + " energy res link "+energyResLink + " energy res device "+energyResDevice); + } + } + + private static Device createEdgeDevice(String nodeName, long mips, + String deviceType) { + + Device edgedevice = null; + try { + edgedevice = new Device(nodeName, deviceType,mips); + } catch (Exception e) { + e.printStackTrace(); + } + + return edgedevice; + } + + public void clear(){ + time_devices.clear(); + time_links.clear(); + energy_links.clear(); + energy_devices.clear(); + energy_residual_links.clear(); + energy_residual_devices.clear(); + } + + public void createUtilizationData(int scenarioIndex, int repetitionNumber, Boolean usingUniformLoadDistribution,int standardDeviation, Boolean linksAreLoaded){ + //First create a list of all element that need to have information + //Devices + List<String> deviceNames = new ArrayList<>(); + for (Device device : edgeDevices) { + if (device.getName().contains("gateway")) {//TODO: with current setup should be all of them so function not needed + deviceNames.add(device.getName()); + } + } + //Links + List<String> linkNames = new ArrayList<>(); + for (String device1 : deviceNames) { + for (String device2 : deviceNames) { + if (!device1.equals(device2)) { + //Self loops are not interesting + linkNames.add(device1 + "=>" + device2); + } + } + } + + //Non-uniform + Distribution utilizationDistribution = new NormalDistribution(scenarioIndex * 10, standardDeviation, Config.SEED +repetitionNumber+scenarioIndex); + + //Then create the information + utilization = new HashMap<>(); + for (String element : deviceNames) { + //Get a value from the chosen distribution + //For this scenario - not random + Double randomUtil = utilizationDistribution.getNextValue(); + if (randomUtil < 0) { + randomUtil = 0.0; + } + if (randomUtil > 100) { + randomUtil = 100.0; + } + if(usingUniformLoadDistribution){ + randomUtil= scenarioIndex*10.0; + } + utilization.put(element, randomUtil); + } + for (String element : linkNames) { + //Get a value from the chosen distribution + //For this scenario - not random + Double randomUtil = utilizationDistribution.getNextValue(); + if (randomUtil <0){ + randomUtil=0.0; + } + if (randomUtil >100){ + randomUtil=100.0; + } + //Not random variant + if(!linksAreLoaded){ + randomUtil = 0.0; + } + utilization.put(element, randomUtil); + } + System.out.println(utilization); + } + + public List<Device> getEdgeDevices(){ + return edgeDevices; + } +} diff --git a/Code/src/utils/Config.java b/Code/src/utils/Config.java new file mode 100644 index 0000000000000000000000000000000000000000..2a30df456c252212e5af84609bf3c690496674d1 --- /dev/null +++ b/Code/src/utils/Config.java @@ -0,0 +1,14 @@ +package utils; + +public class Config { + public static final int LOAD_SCENARIO_NUMBER = 11; + public static final int REPETITION_NUMBER = 25; + public static final int DEFAULT_LINK_CAPACITY =500;//MBytes/sec + public static final int DEFAULT_LINK_P_IDLE =1; + public static final int DEFAULT_LINK_P_DYN =9; + public static final int DEFAULT_DEVICE_CAPACITY =500;//MI + public static final int DEFAULT_DEVICE_P_IDLE =98;//W - Data fron Ahvar - Parasilo zero core was 750 + public static final int DEFAULT_DEVICE_P_DYN =148;//W - Data fron Ahvar - Parasilo one core was 250 + public static final int INFINITE = 10000;//Very big number so that link/devices with 100% utilization are discarded as impossible + public static final int SEED = 165746; +} diff --git a/Code/src/utils/Distribution.java b/Code/src/utils/Distribution.java new file mode 100644 index 0000000000000000000000000000000000000000..902ad788aedaca19a86eacf076e9ac300d090967 --- /dev/null +++ b/Code/src/utils/Distribution.java @@ -0,0 +1,14 @@ +package utils; + +import java.util.Random; + +public abstract class Distribution { + + protected Random random; + public abstract double getNextValue(); + + public void setRandom(Random random) { + this.random = random; + } + +} diff --git a/Code/src/utils/NormalDistribution.java b/Code/src/utils/NormalDistribution.java new file mode 100644 index 0000000000000000000000000000000000000000..70e9b1a83d159e766cb6d2583c2b9bd5960dabb6 --- /dev/null +++ b/Code/src/utils/NormalDistribution.java @@ -0,0 +1,29 @@ +package utils; + +import java.util.Random; + +public class NormalDistribution extends Distribution{ + + private double mean; + private double stdDev; + + public NormalDistribution(double mean, double stdDev, long seed) { + setMean(mean); + setStdDev(stdDev); + setRandom(new Random(seed)); + } + + @Override + public double getNextValue() { + return random.nextGaussian()*stdDev + mean; + } + + public void setMean(double mean) { + this.mean = mean; + } + + public void setStdDev(double stdDev) { + this.stdDev = stdDev; + } + +} diff --git a/Code/src/utils/Triple.java b/Code/src/utils/Triple.java new file mode 100644 index 0000000000000000000000000000000000000000..505487fe04a7da33b29551ca7c3ff643aa9e4b9d --- /dev/null +++ b/Code/src/utils/Triple.java @@ -0,0 +1,40 @@ +package utils; + +public class Triple<L, M, R> { + + private L left; + private M middle; + private R right; + + public Triple(L left, M middle, R right) { + this.left = left; + this.middle = middle; + this.right = right; + } + + public L getLeft() { + return left; + } + + + public void setLeft(L left) { + this.left=left; + } + + public M getMiddle() { + return middle; + } + + public void setMiddle(M middle) { + this.middle=middle; + } + + public R getRight() { + return right; + } + + public void setRight(R right) { + this.right=right; + } +} + diff --git a/Code/src/utils/Utils.java b/Code/src/utils/Utils.java new file mode 100644 index 0000000000000000000000000000000000000000..9cfd7ada58ecd0d9b244e231e330c3b22523c00b --- /dev/null +++ b/Code/src/utils/Utils.java @@ -0,0 +1,73 @@ +package utils; + +import org.apache.commons.math3.util.Pair; + +public class Utils { + public static Pair<String,String> splitLongFunctionInstanceName(String longName){ + //Right now the assumption is that the two names are separated with a dash + //OBS: Do not name devices or functions with a dash inside then! + Pair<String,String> split; + if(longName.contains("-")){ + String[] parts = longName.split("-"); + split=new Pair<>(parts[0],parts[1]); + } + else{ + //The longName is for a start or end, then there is no instance + split=new Pair<>(longName,""); + } + return split; + } + + public static Pair<String,String> splitLinkName(String longName){ + //Right now the assumption is that the two names are separated with => + //OBS: Do not name devices or functions with => inside then! + String[] parts = longName.split("=>"); + Pair<String,String> split=new Pair<>(parts[0],parts[1]); + return split; + } + + public static boolean isLink(String name){ + //OBS this is hardcoding + //Right now the assumption is that the two names are separated with => + return name.contains("=>"); + } + + public static Pair<String,String> getLinkStartAndEndDevices(String linkName){ + String startDevice; + String endDevice; + Pair<String,String> split = splitLinkName(linkName); + if(split.getKey().equals(START)){ + startDevice=START; + }else{ + Pair<String,String> split2=splitLongFunctionInstanceName(split.getKey()); + startDevice=split2.getKey(); + } + if(split.getValue().equals(END)){ + endDevice=END; + }else{ + Pair<String,String> split2=splitLongFunctionInstanceName(split.getValue()); + endDevice=split2.getKey(); + } + Pair<String,String> result=new Pair<>(startDevice,endDevice); + return result; + } + + public static String getTargetFunction(String linkName){ + String result; + Pair<String,String> split = splitLinkName(linkName); + if(split.getValue().equals(END)){ + result=END; + }else if(split.getValue().equals(START)){ + //Could be self loop + result=START; + } else{ + Pair<String,String> split2=splitLongFunctionInstanceName(split.getValue()); + result=split2.getValue(); + } + return result; + } + + public static String START = "S"; + public static String END = "E"; + +}