<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://tomwiki.com/index.php?action=history&amp;feed=atom&amp;title=TomSym_Flow-Shop_Scheduling</id>
	<title>TomSym Flow-Shop Scheduling - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://tomwiki.com/index.php?action=history&amp;feed=atom&amp;title=TomSym_Flow-Shop_Scheduling"/>
	<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;action=history"/>
	<updated>2026-10-31T23:19:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;diff=2131&amp;oldid=prev</id>
		<title>Mbot at 13:33, 8 November 2011</title>
		<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;diff=2131&amp;oldid=prev"/>
		<updated>2011-11-08T13:33:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:33, 8 November 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l181&quot;&gt;Line 181:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 181:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Problem type appears to be: mip&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Problem type appears to be: mip&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Time for symbolic processing: 0.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1618 &lt;/del&gt;seconds&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Time for symbolic processing: 0.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;15946 &lt;/ins&gt;seconds&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting numeric solver&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting numeric solver&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===== * * * =================================================================== * * *&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===== * * * =================================================================== * * *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l194&quot;&gt;Line 194:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 194:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FuncEv   59  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FuncEv   59  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Elapsed time: 0.006000 sec.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CPU time: 0.015600 sec. &lt;/ins&gt;Elapsed time: 0.006000 sec.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A best sequence is: 4  1  6  5  3  2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A best sequence is: 4  1  6  5  3  2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLOW FOR THE PIECES&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;FLOW FOR THE PIECES&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mbot</name></author>
	</entry>
	<entry>
		<id>http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;diff=1700&amp;oldid=prev</id>
		<title>Mbot at 21:24, 2 November 2011</title>
		<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;diff=1700&amp;oldid=prev"/>
		<updated>2011-11-02T21:24:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:24, 2 November 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Processing durations in minutes&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Processing durations in minutes&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+---------+-+-+-+-+-+-+&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+---------+-+-+-+-+-+-+&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Workpiece|1|2|3|4|5|6|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Workpiece|1|2|3|4|5|6|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Assembly |5|2|4|6|3|6|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Assembly |5|2|4|6|3|6|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+---------+-+-+-+-+-+-+&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+---------+-+-+-+-+-+-+&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every machine only processes one piece at a time. A workpiece may not overtake any other by passing onto the following machine. This means that if at the beginning a sequence of the workpieces is established, they will be processed on every machine in exactly this order. Which is the sequence of workpieces that minimizes the total time for completing all pieces?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Every machine only processes one piece at a time. A workpiece may not overtake any other by passing onto the following machine. This means that if at the beginning a sequence of the workpieces is established, they will be processed on every machine in exactly this order. Which is the sequence of workpieces that minimizes the total time for completing all pieces?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Variables==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Variables==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;nummachines                The number of machines&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;nummachines                The number of machines&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;proctimes                  Time to process a workpiece in a machine&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;proctimes                  Time to process a workpiece in a machine&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Reference==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Reference==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mbot</name></author>
	</entry>
	<entry>
		<id>http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;diff=1614&amp;oldid=prev</id>
		<title>Mbot: Created page with &quot;{{Part Of Manual|title=the TomSym Manual|link=TomSym Manual}}  ==Problem description==  A workshop that produces metal pipes on demand for the automobile industry has ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=TomSym_Flow-Shop_Scheduling&amp;diff=1614&amp;oldid=prev"/>
		<updated>2011-11-02T21:01:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Part Of Manual|title=the TomSym Manual|link=&lt;a href=&quot;/index.php?title=TomSym&quot; title=&quot;TomSym&quot;&gt;TomSym Manual&lt;/a&gt;}}  ==Problem description==  A workshop that produces metal pipes on demand for the automobile industry has ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Part Of Manual|title=the TomSym Manual|link=[[TomSym|TomSym Manual]]}}&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
&lt;br /&gt;
A workshop that produces metal pipes on demand for the automobile industry has three machines for bending the pipes, soldering the fastenings, and assembling the links. The workshop has to produce six pieces, for which the durations of the processing steps (in minutes) are given in the following table. Every workpiece first goes to bending, then to soldering, and finally to assembly of the links. Once started, any operations must be carried out without interruption, but the workpieces may wait between the machines.&lt;br /&gt;
&lt;br /&gt;
Processing durations in minutes&lt;br /&gt;
&lt;br /&gt;
+---------+-+-+-+-+-+-+&lt;br /&gt;
|Workpiece|1|2|3|4|5|6|&lt;br /&gt;
+---------+-+-+-+-+-+-+&lt;br /&gt;
|Bending  |3|6|3|5|5|7|&lt;br /&gt;
|Soldering|5|4|2|4|4|5|&lt;br /&gt;
|Assembly |5|2|4|6|3|6|&lt;br /&gt;
+---------+-+-+-+-+-+-+&lt;br /&gt;
&lt;br /&gt;
Every machine only processes one piece at a time. A workpiece may not overtake any other by passing onto the following machine. This means that if at the beginning a sequence of the workpieces is established, they will be processed on every machine in exactly this order. Which is the sequence of workpieces that minimizes the total time for completing all pieces?&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
&lt;br /&gt;
nummachines                The number of machines&lt;br /&gt;
proctimes                  Time to process a workpiece in a machine&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
Applications of optimization... Gueret, Prins, Seveaux&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% Marcus Edvall, Tomlab Optimization Inc, E-mail: tomlab@tomopt.com&lt;br /&gt;
% Copyright (c) 2005-2009 by Tomlab Optimization Inc., $Release: 7.2.0$&lt;br /&gt;
% Written Oct 7, 2005.   Last modified Apr 8, 2009.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem setup==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
nummachines = 3;&lt;br /&gt;
proctimes   = [3 6 3 5 5 7;...&lt;br /&gt;
    5 4 2 4 4 5;...&lt;br /&gt;
    5 2 4 6 3 6];&lt;br /&gt;
&lt;br /&gt;
n1 = size(proctimes,2); % Number of jobs     (j in JOBS)&lt;br /&gt;
n2 = size(proctimes,2); % Number of ranks    (k in RANKS)&lt;br /&gt;
n3 = nummachines;       % Number of machines (m in MACH)&lt;br /&gt;
&lt;br /&gt;
rnk = tom(&amp;#039;rnk&amp;#039;,n1,n2,&amp;#039;int&amp;#039;);&lt;br /&gt;
empty = tom(&amp;#039;empty&amp;#039;,n3,n2);&lt;br /&gt;
wait = tom(&amp;#039;wait&amp;#039;,n3,n2);&lt;br /&gt;
&lt;br /&gt;
% All slots are integers.&lt;br /&gt;
bnds1 = {0 &amp;lt;= rnk &amp;lt;= 1};&lt;br /&gt;
&lt;br /&gt;
% Assignment constraint one job per rank.&lt;br /&gt;
con1 = {sum(rnk,1) == 1};&lt;br /&gt;
&lt;br /&gt;
% Assignment constraint one rank per job.&lt;br /&gt;
con2 = {sum(rnk,2) == 1};&lt;br /&gt;
&lt;br /&gt;
% Relationship between the end of job rank k on machine m and start of job&lt;br /&gt;
% on machines m+1&lt;br /&gt;
&lt;br /&gt;
duration = tom(&amp;#039;duration&amp;#039;,n3,n2);&lt;br /&gt;
durcon = {};&lt;br /&gt;
for m=1:n3&lt;br /&gt;
    for k=1:n2&lt;br /&gt;
        durcon{(m-1)*n2+k} = {duration(m,k) == sum(proctimes(m,:)*rnk(:,k))};&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
con3 = {empty(1:end-1,1:end-1) + duration(1:end-1,2:end) + ...&lt;br /&gt;
    wait(1:end-1,2:end) == wait(1:end-1,1:end-1) + ...&lt;br /&gt;
    duration(2:end,1:end-1) + empty(2:end,1:end-1)};&lt;br /&gt;
&lt;br /&gt;
% Empty and Wait are zeros when starting, set in bounds&lt;br /&gt;
bnds2 = {empty(:,1:end-1) &amp;gt;= 0};&lt;br /&gt;
bnds3 = {wait(1:end-1,:) &amp;gt;= 0};&lt;br /&gt;
bnds4 = {empty(1,1:end-1) == 0};&lt;br /&gt;
bnds5 = {wait(1:end-1,1) == 0};&lt;br /&gt;
&lt;br /&gt;
% Objective&lt;br /&gt;
objective = sum(sum(proctimes(1:end-1,:)*rnk(1:end,1))) + sum(sum(empty(end,1:end-1)));&lt;br /&gt;
&lt;br /&gt;
constraints = {bnds1, bnds2, bnds3, bnds4, bnds5, con1, con2, con3, durcon};&lt;br /&gt;
options = struct;&lt;br /&gt;
options.solver = &amp;#039;cplex&amp;#039;;&lt;br /&gt;
options.name   = &amp;#039;Flow Shop Scheduling&amp;#039;;&lt;br /&gt;
sol = ezsolve(objective,constraints,[],options);&lt;br /&gt;
&lt;br /&gt;
PriLev = 1;&lt;br /&gt;
if PriLev &amp;gt; 0&lt;br /&gt;
    p      = size(proctimes,2);         % number of pieces&lt;br /&gt;
    m      = nummachines;               % number of machines&lt;br /&gt;
    order = round(sol.rnk);&lt;br /&gt;
    wait1  = round(sol.wait(1,:));      % wait before machine 1&lt;br /&gt;
    wait2  = round(sol.wait(2,:));      % wait before machine 2&lt;br /&gt;
    wait3  = round(sol.wait(3,:));      % wait before machine 3&lt;br /&gt;
    proctimes   = [3 6 3 5 5 7;...      % the processing times&lt;br /&gt;
        5 4 2 4 4 5;...&lt;br /&gt;
        5 2 4 6 3 6];&lt;br /&gt;
    sequence = [] ;                     % the sequence of pieces&lt;br /&gt;
    for i = 1:p,&lt;br /&gt;
        sequence = [sequence find(order(:,i))]; % insert piece by piece&lt;br /&gt;
    end&lt;br /&gt;
    disp([&amp;#039;A best sequence is: &amp;#039; num2str(sequence)])&lt;br /&gt;
&lt;br /&gt;
    mt1 = [];   % empty machine-times for machine 1&lt;br /&gt;
    mt2 = [];   % empty machine-times for machine 2&lt;br /&gt;
    mt3 = [];   % empty machine-times for machine 3&lt;br /&gt;
    t11 = 0;    % timepoint for entering machine 1&lt;br /&gt;
    t12 = 0;    % timepoint for exiting  machine 1&lt;br /&gt;
    t21 = 0;    % timepoint for entering machine 2&lt;br /&gt;
    t22 = 0;    % timepoint for exiting  machine 2&lt;br /&gt;
    t31 = 0;    % timepoint for entering machine 3&lt;br /&gt;
    t32 = 0;    % timepoint for exiting  machine 3&lt;br /&gt;
    first2 = 1; % the first piece in machine 2&lt;br /&gt;
    first3 = 1; % the first piece in machine 3&lt;br /&gt;
&lt;br /&gt;
    for i = 1:length(sequence),&lt;br /&gt;
        id  = sequence(i);&lt;br /&gt;
&lt;br /&gt;
        % times in and out of machine 1&lt;br /&gt;
        t11  = t12 + wait1(id);&lt;br /&gt;
        t12  = t11 + proctimes(1,id);&lt;br /&gt;
&lt;br /&gt;
        % times in and out of machine 2&lt;br /&gt;
        if first2 == 1,&lt;br /&gt;
            t21 = t12 + wait2(id);&lt;br /&gt;
            first2 = 0 ;&lt;br /&gt;
        else&lt;br /&gt;
            t21 = t22 + wait2(id);&lt;br /&gt;
        end&lt;br /&gt;
        t22  = t21 + proctimes(2,id);&lt;br /&gt;
&lt;br /&gt;
        % times in and out of machine 3&lt;br /&gt;
        if first3 == 1,&lt;br /&gt;
            t31 = t22 + wait3(id);&lt;br /&gt;
            first3 = 0 ;&lt;br /&gt;
        else&lt;br /&gt;
            t31 = t32 + wait3(id);&lt;br /&gt;
        end&lt;br /&gt;
        t32  = t31 + proctimes(3,id);&lt;br /&gt;
&lt;br /&gt;
        % times in and out of machines&lt;br /&gt;
        mt1 = [mt1; t11  t12];&lt;br /&gt;
        mt2 = [mt2; t21  t22];&lt;br /&gt;
        mt3 = [mt3; t31  t32];&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    mt = [mt1 mt2 mt3];&lt;br /&gt;
&lt;br /&gt;
    disp(&amp;#039;FLOW FOR THE PIECES&amp;#039;)&lt;br /&gt;
    for j = 1:p,&lt;br /&gt;
        disp([&amp;#039;piece &amp;#039; num2str(sequence(j)) &amp;#039; has this flow&amp;#039; ])&lt;br /&gt;
        for k = 1:m,&lt;br /&gt;
            disp([&amp;#039;   machine &amp;#039; num2str(k) &amp;#039;: &amp;#039; num2str(mt(j,(k-1)*2+1)) &amp;#039;-&amp;#039; num2str(mt(j,(k-1)*2+2)) ])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    disp(&amp;#039;FLOW FOR THE MACHINES&amp;#039;)&lt;br /&gt;
    for k = 1:m,&lt;br /&gt;
        disp([&amp;#039;machine &amp;#039; num2str(k) &amp;#039; has this flow&amp;#039; ])&lt;br /&gt;
        for l = 1:p,&lt;br /&gt;
            disp([&amp;#039;   piece &amp;#039; num2str(sequence(l)) &amp;#039;: &amp;#039; ...&lt;br /&gt;
                num2str(mt(l,((k-1)*2+1))) &amp;#039;-&amp;#039; num2str(mt(l,((k-1)*2+2)))])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% MODIFICATION LOG&lt;br /&gt;
%&lt;br /&gt;
% 051010 med   Created.&lt;br /&gt;
% 060111 per   Added documentation.&lt;br /&gt;
% 060124 per   Interpretation of results upgraded.&lt;br /&gt;
% 060126 per   Moved disp to end&lt;br /&gt;
% 090308 med   Converted to tomSym&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Problem type appears to be: mip&lt;br /&gt;
Time for symbolic processing: 0.1618 seconds&lt;br /&gt;
Starting numeric solver&lt;br /&gt;
===== * * * =================================================================== * * *&lt;br /&gt;
TOMLAB - TOMLAB Development license  999007. Valid to 2011-12-31&lt;br /&gt;
=====================================================================================&lt;br /&gt;
Problem: ---  1: Flow Shop Scheduling           f_k       9.000000000000000000&lt;br /&gt;
                                              f(x_0)      0.000000000000000000&lt;br /&gt;
&lt;br /&gt;
Solver: CPLEX.  EXIT=0.  INFORM=101.&lt;br /&gt;
CPLEX Branch-and-Cut MIP solver&lt;br /&gt;
Optimal integer solution found&lt;br /&gt;
&lt;br /&gt;
FuncEv   59 &lt;br /&gt;
Elapsed time: 0.006000 sec. &lt;br /&gt;
A best sequence is: 4  1  6  5  3  2&lt;br /&gt;
FLOW FOR THE PIECES&lt;br /&gt;
piece 4 has this flow&lt;br /&gt;
   machine 1: 2-7&lt;br /&gt;
   machine 2: 7-11&lt;br /&gt;
   machine 3: 11-17&lt;br /&gt;
piece 1 has this flow&lt;br /&gt;
   machine 1: 7-10&lt;br /&gt;
   machine 2: 11-16&lt;br /&gt;
   machine 3: 17-22&lt;br /&gt;
piece 6 has this flow&lt;br /&gt;
   machine 1: 10-17&lt;br /&gt;
   machine 2: 16-21&lt;br /&gt;
   machine 3: 22-28&lt;br /&gt;
piece 5 has this flow&lt;br /&gt;
   machine 1: 21-26&lt;br /&gt;
   machine 2: 21-25&lt;br /&gt;
   machine 3: 28-31&lt;br /&gt;
piece 3 has this flow&lt;br /&gt;
   machine 1: 26-29&lt;br /&gt;
   machine 2: 25-27&lt;br /&gt;
   machine 3: 31-35&lt;br /&gt;
piece 2 has this flow&lt;br /&gt;
   machine 1: 30-36&lt;br /&gt;
   machine 2: 28-32&lt;br /&gt;
   machine 3: 35-37&lt;br /&gt;
FLOW FOR THE MACHINES&lt;br /&gt;
machine 1 has this flow&lt;br /&gt;
   piece 4: 2-7&lt;br /&gt;
   piece 1: 7-10&lt;br /&gt;
   piece 6: 10-17&lt;br /&gt;
   piece 5: 21-26&lt;br /&gt;
   piece 3: 26-29&lt;br /&gt;
   piece 2: 30-36&lt;br /&gt;
machine 2 has this flow&lt;br /&gt;
   piece 4: 7-11&lt;br /&gt;
   piece 1: 11-16&lt;br /&gt;
   piece 6: 16-21&lt;br /&gt;
   piece 5: 21-25&lt;br /&gt;
   piece 3: 25-27&lt;br /&gt;
   piece 2: 28-32&lt;br /&gt;
machine 3 has this flow&lt;br /&gt;
   piece 4: 11-17&lt;br /&gt;
   piece 1: 17-22&lt;br /&gt;
   piece 6: 22-28&lt;br /&gt;
   piece 5: 28-31&lt;br /&gt;
   piece 3: 31-35&lt;br /&gt;
   piece 2: 35-37&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbot</name></author>
	</entry>
</feed>