<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.118.78.108&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.118.78.108&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/217.118.78.108"/>
		<updated>2026-05-26T00:06:04Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D0%B0&amp;diff=35414</id>
		<title>Контактная схема</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D0%B0&amp;diff=35414"/>
				<updated>2014-01-08T08:03:05Z</updated>
		
		<summary type="html">&lt;p&gt;217.118.78.108: /* Задача о минимизации контактной схемы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Для математического описания электротехнических устройств, состоящих из контактов и промежуточных реле, функционирующих в дискретные моменты времени применяются ''контактные схемы''.&lt;br /&gt;
  &lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Контактная схема''' (''англ.'' contact sheme) представляет собой ориентированный ациклический [[Основные определения теории графов|граф]], на каждом ребре которого написана переменная или ее отрицание (ребра в контактных схемах называют ''контактами'', а вершины - ''полюсами'').&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Принцип работы==&lt;br /&gt;
[[Файл:contact.png||right||200px]]&lt;br /&gt;
[[Файл:contactnot.png||right||200px]]&lt;br /&gt;
Зафиксируем некоторые значения переменным. Тогда '''замкнутыми''' называются ребра, на которых записана 1, ребра, на которых записан 0, называются '''разомкнутыми'''. Зафиксируем две вершины &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;. Тогда контактная схема вычисляет некоторую функцию &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; между вершинами &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt;, равную 1 на тех наборах переменных, на которых между &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; есть путь по замкнутым ребрам.&lt;br /&gt;
&lt;br /&gt;
==Построение контактных схем==&lt;br /&gt;
Любую булеву функцию можно представить в виде контактной схемы. Для этого необходимо привести её к ДНФ или КНФ, а затем построить, используя комбинации 3 логических элементов: &lt;br /&gt;
&lt;br /&gt;
* '''Конъюнкция''' [[Файл:multiply.png | 200px | right ]]&lt;br /&gt;
Результат конъюнкции равен 1 тогда и только тогда, когда оба операнда равны 1. В применении к контактным схемам это означает, что&lt;br /&gt;
последовательное соединение полюсов соответствует операции конъюнкции.&lt;br /&gt;
&lt;br /&gt;
* '''Дизъюнкция''' [[Файл:disjunction.png | 200 px | right]]&lt;br /&gt;
Результат дизъюнкции равен 0 только в случае, когда оба операнда равны 0. Несложно догадаться, что в контактных схемах эта операция соответствует параллельному соединению полюсов.&lt;br /&gt;
&lt;br /&gt;
* '''Отрицание'''&lt;br /&gt;
Отрицание - это унарная операция, поэтому, чтобы показать её на контактной схеме достаточно написать над контактом знак отрицания.&lt;br /&gt;
&lt;br /&gt;
==Задача о минимизации контактной схемы==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
Две контактные схемы называются '''эквивалентными''', если они реализуют одну и ту же булеву функцию. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Сложностью''' контактной схемы называется число &lt;br /&gt;
ее контактов.  &lt;br /&gt;
}}&lt;br /&gt;
Задача минимизации контактных схем состоит в том, чтобы по данной схеме &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; найти схему &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; , эквивалентную &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; и имеющую наименьшую сложность.&lt;br /&gt;
Один из путей решения этой задачи состоит в следующем:&lt;br /&gt;
* Осуществляем переход от контактной схемы &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; к её булевой функции &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* Упрощаем &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt;, то есть отыскиваем функцию &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; (на том же базисе, что и &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt;), равносильную &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt; и содержащую меньше вхождений операций дизъюнкции и конъюнкции. Для этого используем основные законы алгебры логики: сочетательный и распределительный закон, правило де Моргана, правило операции переменной с её инверсией и др.&lt;br /&gt;
* Строим схему &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, реализующую функцию &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
* [http://pgap.chat.ru/zap/zap116.htm Контактные схемы]&lt;br /&gt;
* [http://www.encyclopediaofmath.org/index.php/Contact_scheme Encyclopedia of Math {{---}} Contact sheme]&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
* Гаврилов Г.П., Сапоженко А.А. Задачи и упражнения по дискретной математике {{---}} М.:&amp;quot;ФИЗМАТЛИД&amp;quot;, 2009 {{---}} стр. 312&lt;/div&gt;</summary>
		<author><name>217.118.78.108</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=QpmtnCmax&amp;diff=24657</id>
		<title>QpmtnCmax</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=QpmtnCmax&amp;diff=24657"/>
				<updated>2012-06-09T19:01:10Z</updated>
		
		<summary type="html">&lt;p&gt;217.118.78.108: /* Алгоритм построения расписания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color: #ABCDEF; font-size: 16px; font-weight: bold; color: #000000; text-align: center; padding: 4px; border-style: solid; border-width: 1px;&amp;quot;&amp;gt;Эта статья находится в разработке!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[Категория: В разработке]]&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Постановка задачи==&lt;br /&gt;
Есть несколько станков с разной скоростью выполнения работ. Работу на каждом из станков можно прервать и продолжить позже. &lt;br /&gt;
&lt;br /&gt;
Цель - выполнить все как можно быстрее.&lt;br /&gt;
&lt;br /&gt;
1. Найдем нижнюю границу времени выполнения.&lt;br /&gt;
&lt;br /&gt;
2. Составим оптимальное расписание.&lt;br /&gt;
&lt;br /&gt;
==Алгоритм построения расписания==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P_i = p_1 + ... + p_i&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; S_j = s_1 + ... + s_j&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;tex&amp;gt;i = 1 ... n&amp;lt;/tex&amp;gt;; &amp;lt;tex&amp;gt;j = 1 ... m&amp;lt;/tex&amp;gt;; &amp;lt;tex&amp;gt; n \ge m&amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
Необходимое условие для выполнения всех работ в интервале &amp;lt;tex&amp;gt;[0;T]&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P_n = p_1 + ... + p_n \le s_1T + ... + s_mT = S_mT&amp;lt;/tex&amp;gt; или  &amp;lt;tex&amp;gt;P_n/S_m \le T&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нижняя граница &amp;lt;tex&amp;gt;C_{max}&amp;lt;/tex&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;w = \max&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;\max\limits_{j=1}^{m-1} P_i/S_j, P_n/S_m&amp;lt;/tex&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Далее построим расписание, которое достигает нашей оценки &amp;lt;tex&amp;gt;w&amp;lt;/tex&amp;gt;, с помощью Level-алгоритма.&lt;br /&gt;
&lt;br /&gt;
Level - алгоритм:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tex&amp;gt;t \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
   '''WHILE''' существуют работы с положительным level&lt;br /&gt;
       Assign(t)&lt;br /&gt;
       &amp;lt;tex&amp;gt;t1 \leftarrow min(s&amp;gt;t |&amp;lt;/tex&amp;gt;работа выполненная в момент времени &amp;lt;tex&amp;gt; s)&amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt;t2 \leftarrow min(s&amp;gt;t | p_i(t)&amp;gt;p_j(t)&amp;lt;/tex&amp;gt; &amp;amp;&amp;amp; &amp;lt;tex&amp;gt;  p_i(s) == p_j(s))&amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; t \leftarrow min(t1,t2) &amp;lt;/tex&amp;gt;&lt;br /&gt;
   Построение расписания&lt;br /&gt;
&lt;br /&gt;
Функция &amp;lt;tex&amp;gt;Assign(t)&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tex&amp;gt;J = &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;i|p_i(t)&amp;gt;0&amp;lt;/tex&amp;gt;}&lt;br /&gt;
   &amp;lt;tex&amp;gt;M = &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;M_1,...,M_m&amp;lt;/tex&amp;gt;}&lt;br /&gt;
   '''WHILE''' (&amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; != 0 &amp;amp;&amp;amp; &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; != 0)&lt;br /&gt;
      Найти множество работ &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt; подмножество &amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; ,level которых максимальный&lt;br /&gt;
      &amp;lt;tex&amp;gt;r \leftarrow min&amp;lt;/tex&amp;gt;(|&amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;|,|&amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;|)&lt;br /&gt;
      Назначаем работы из мн-ва &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; самых быстрых машин из мн-ва &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;&lt;br /&gt;
      &amp;lt;tex&amp;gt;J \leftarrow J&amp;lt;/tex&amp;gt;\&amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;&lt;br /&gt;
      удаляем из мн-ва &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; самых быстрых машин&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
[[Файл:qptmncmax.png|400px|thumb|right|Картинка к примеру]]&lt;br /&gt;
&lt;br /&gt;
Пусть у нас есть 5 работ и 4 станка. Покажем работу алгоритма для данного случая.&lt;br /&gt;
&lt;br /&gt;
В начальный момент времени начинаем обрабатывать работы с наибольшим временем выполнения &amp;lt;tex&amp;gt;J_1-J_4&amp;lt;/tex&amp;gt; на станках &amp;lt;tex&amp;gt;M_1-M_4&amp;lt;/tex&amp;gt; соответственно. В момент времени &amp;lt;tex&amp;gt;t_1&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;lvl&amp;lt;/tex&amp;gt; 4-ой работы опускается до времени выполнения 5-ой работы. С этого момента начинаем обрабатывать работы &amp;lt;tex&amp;gt; J_4,J_5&amp;lt;/tex&amp;gt; на одном станке: &amp;lt;tex&amp;gt;M_4&amp;lt;/tex&amp;gt;. В момент времени &amp;lt;tex&amp;gt;t_2&amp;lt;/tex&amp;gt; происходит похожая ситуация. С этого момента времени работы &amp;lt;tex&amp;gt; J_1,J_2&amp;lt;/tex&amp;gt; выполняются синхронно на двух станках &amp;lt;tex&amp;gt; M_1,M_2&amp;lt;/tex&amp;gt;. Далее работы не пересекаются друг с другом и каждая заканчивается на ранее выделенных им станках.&lt;br /&gt;
&lt;br /&gt;
==Время работы==&lt;br /&gt;
Level-алгоритм вызывает функцию Assign(t) в самом худшем случае &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; раз. Функция Assign(t) выполняется за &amp;lt;tex&amp;gt;O(nm)&amp;lt;/tex&amp;gt;. Итоговое время работы &amp;lt;tex&amp;gt;O(n^2m)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
* Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. {{---}} 379 стр. {{---}} ISBN 978-3-540-69515-8&lt;/div&gt;</summary>
		<author><name>217.118.78.108</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=QpmtnCmax&amp;diff=24519</id>
		<title>QpmtnCmax</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=QpmtnCmax&amp;diff=24519"/>
				<updated>2012-06-09T08:45:29Z</updated>
		
		<summary type="html">&lt;p&gt;217.118.78.108: /* Алгоритм построения расписания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color: #ABCDEF; font-size: 16px; font-weight: bold; color: #000000; text-align: center; padding: 4px; border-style: solid; border-width: 1px;&amp;quot;&amp;gt;Эта статья находится в разработке!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[Категория: В разработке]]&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Постановка задачи==&lt;br /&gt;
Есть несколько станков с разной скоростью выполнения работ. Работу на каждом из станков можно прервать и продолжить позже. &lt;br /&gt;
&lt;br /&gt;
Цель - выполнить все как можно быстрее.&lt;br /&gt;
&lt;br /&gt;
1. Найдем нижнюю границу времени выполнения.&lt;br /&gt;
&lt;br /&gt;
2. Составим оптимальное расписание.&lt;br /&gt;
&lt;br /&gt;
==Алгоритм построения расписания==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P_i = p_1 + ... + p_i&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; S_j = p_1 + ... + p_j&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;tex&amp;gt;i = 1 ... n&amp;lt;/tex&amp;gt;; &amp;lt;tex&amp;gt;j = 1 ... m&amp;lt;/tex&amp;gt;; &amp;lt;tex&amp;gt; n \ge m&amp;lt;/tex&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
Необходимое условие для выполнения всех работ в интервале &amp;lt;tex&amp;gt;[0;T]&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; P_n = p_1 + ... + p_n \le s_1T + ... + s_mT = S_mT&amp;lt;/tex&amp;gt; или  &amp;lt;tex&amp;gt;P_n/S_m \le T&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нижняя граница &amp;lt;tex&amp;gt;C_{max}&amp;lt;/tex&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;w = \max&amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;\max\limits_{j=1}^{m-1} P_i/S_j, P_n/S_m&amp;lt;/tex&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Далее построим расписание, которое достигает нашей оценки &amp;lt;tex&amp;gt;w&amp;lt;/tex&amp;gt;, с помощью Level-алгоритма.&lt;br /&gt;
&lt;br /&gt;
Level - алгоритм:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tex&amp;gt;t \leftarrow 0 &amp;lt;/tex&amp;gt;&lt;br /&gt;
   '''WHILE''' существуют работы с положительным level&lt;br /&gt;
       Assign(t)&lt;br /&gt;
       &amp;lt;tex&amp;gt;t1 \leftarrow min(s&amp;gt;t |&amp;lt;/tex&amp;gt;работа выполненная в момент времени &amp;lt;tex&amp;gt; s)&amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt;t2 \leftarrow min(s&amp;gt;t | p_i(t)&amp;gt;p_j(t)&amp;lt;/tex&amp;gt; &amp;amp;&amp;amp; &amp;lt;tex&amp;gt;  p_i(s) == p_j(s))&amp;lt;/tex&amp;gt;&lt;br /&gt;
       &amp;lt;tex&amp;gt; t \leftarrow min(t1,t2) &amp;lt;/tex&amp;gt;&lt;br /&gt;
   Построение расписания&lt;br /&gt;
&lt;br /&gt;
Функция &amp;lt;tex&amp;gt;Assign(t)&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tex&amp;gt;J = &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;i|p_i(t)&amp;gt;0&amp;lt;/tex&amp;gt;}&lt;br /&gt;
   &amp;lt;tex&amp;gt;M = &amp;lt;/tex&amp;gt;{&amp;lt;tex&amp;gt;M_1,...,M_m&amp;lt;/tex&amp;gt;}&lt;br /&gt;
   '''WHILE''' (&amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; != 0 &amp;amp;&amp;amp; &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; != 0)&lt;br /&gt;
      Найти множество работ &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt; подмножество &amp;lt;tex&amp;gt;J&amp;lt;/tex&amp;gt; ,level которых максимальный&lt;br /&gt;
      &amp;lt;tex&amp;gt;r \leftarrow min&amp;lt;/tex&amp;gt;(|&amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;|,|&amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;|)&lt;br /&gt;
      Назначаем работы из мн-ва &amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; самых быстрых машин из мн-ва &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;&lt;br /&gt;
      &amp;lt;tex&amp;gt;J \leftarrow J&amp;lt;/tex&amp;gt;\&amp;lt;tex&amp;gt;I&amp;lt;/tex&amp;gt;&lt;br /&gt;
      удаляем из мн-ва &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; самых быстрых машин&lt;br /&gt;
&lt;br /&gt;
==Пример==&lt;br /&gt;
[[Файл:qptmncmax.png|400px|thumb|right|Картинка к примеру]]&lt;br /&gt;
&lt;br /&gt;
Пусть у нас есть 5 работ и 4 станка. Покажем работу алгоритма для данного случая.&lt;br /&gt;
&lt;br /&gt;
В начальный момент времени начинаем обрабатывать работы с наибольшим временем выполнения &amp;lt;tex&amp;gt;J_1-J_4&amp;lt;/tex&amp;gt; на станках &amp;lt;tex&amp;gt;M_1-M_4&amp;lt;/tex&amp;gt; соответственно. В момент времени &amp;lt;tex&amp;gt;t_1&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;lvl&amp;lt;/tex&amp;gt; 4-ой работы опускается до времени выполнения 5-ой работы. С этого момента начинаем обрабатывать работы &amp;lt;tex&amp;gt; J_4,J_5&amp;lt;/tex&amp;gt; на одном станке: &amp;lt;tex&amp;gt;M_4&amp;lt;/tex&amp;gt;. В момент времени &amp;lt;tex&amp;gt;t_2&amp;lt;/tex&amp;gt; происходит похожая ситуация. С этого момента времени работы &amp;lt;tex&amp;gt; J_1,J_2&amp;lt;/tex&amp;gt; выполняются синхронно на двух станках &amp;lt;tex&amp;gt; M_1,M_2&amp;lt;/tex&amp;gt;. Далее работы не пересекаются друг с другом и каждая заканчивается на ранее выделенных им станках.&lt;br /&gt;
&lt;br /&gt;
==Время работы==&lt;br /&gt;
Level-алгоритм вызывает функцию Assign(t) в самом худшем случае &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt; раз. Функция Assign(t) выполняется за &amp;lt;tex&amp;gt;O(nm)&amp;lt;/tex&amp;gt;. Итоговое время работы &amp;lt;tex&amp;gt;O(n^2m)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
* Peter Brucker. «Scheduling Algorithms» {{---}} «Springer», 2006 г. {{---}} 379 стр. {{---}} ISBN 978-3-540-69515-8&lt;/div&gt;</summary>
		<author><name>217.118.78.108</name></author>	</entry>

	</feed>