Научная статья на тему 'Составление расписания загрузки оборудования в среде MS Excel'

Составление расписания загрузки оборудования в среде MS Excel Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
570
61
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАСПИСАНИЕ ЗАГРУЗКИ ОБОРУДОВАНИЯ / SCHEDULING OF EQUIPMENT LOADING MODEL / МОДЕЛЬ / СРЕДСТВА MS EXCEL / MS EXCEL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Катаргин Н.В.

Предлагается технология разработки расписаний загрузки оборудования с использованием Эволюционного поиска решения, входящего в состав сервиса “Поиск решения” MS Excel.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SCHEDULING OF EQUIPMENT LOADING IN MS EXCEL

The technology development schedules utilization of equipment with using Evolutionary solver that is part of the service “Finding solutions” in MS Excel.

Текст научной работы на тему «Составление расписания загрузки оборудования в среде MS Excel»

одновременно она наиболее жесткая и нередко ошибочна.

2. Оценка, основанная на концепции, позволяющая получить оценку на базе конечных результатов, но, образно говоря, с «человеческим отношением к человеческому капиталу»: которую он принес фирме, или по увеличению ее активов, в том числе интеллектуальных.

В этой связи наше предложение сводится к необходимости количественной оценки

квалификационных активов в рублях с возможностью последующей капитализации, что позволит использовать их в качестве вклада в условной капитал предприятия. В результате работник становится автоматически совладельцем выпускаемой предприятием продукции.

Повысится управляемость экономическими процессами, так как тогда экономической системой станет управлять не только руководство, но и каждый работник.

В итоге в контуре управления исчезнет целый «пласт» неопределённости. Все активы станут оценёнными и тогда система управления инновационной экономикой с включением в контур управления квалификационных активов станет управляемой и появятся предпосылки преобразования процессов торможения в процессы ускорения.

Вывод

Таким образом, за счет оценки квалификационных активов создается реальная база для становления и развития новых экономических отношений, а также условий для обеспечения нового уровня управленческих решений.

В итоге разрешения проблемы новой нормальности приведет к тому, что квалификационные активы из источника неопределённости станут параметром управления.

Список использованных источников

1. Брагина Е. Новая нормальность / Мировое и национальное хозяйство. №4 (23), 2012 / http://www.mirec.ru/2012-04/novaa-normalnost (дата обращения 15.09.2016).

2. Мартынов Т. Новая нормальность / http://smart-№. ru/finansoviy-slovar.

http://www.imemo.ru/files/File/ru/articles/2015/22052015 _NEWNORM.pdf (дата обращения 10.09.2016).

3. Чеботарёва В. Эпоха «новой нормальности». http://ecpol.ru/index.php/macroeconomics/2012-04-05-13-38-52/17-epokha-novoj-normalnosti (дата обращения 17.09.2016)

4. Иванус А.И. О превентивном режиме готовности в управлении инновационной экономикой в условиях неопределённости / Проблемы теории и практики управления. № 1, 2016. С. 66 —74.

УДК 330.101

СОСТАВЛЕНИЕ РАСПИСАНИЯ ЗАГРУЗКИ ОБОРУДОВАНИЯ В СРЕДЕ MS EXCEL

Катаргин Н.В.

Финансовый университет при Правительстве Российской Федерации, г. Москва

Аннотация. Предлагается технология разработки расписаний загрузки оборудования с использованием Эволюционного поиска решения, входящего в состав сервиса "Поиск решения" MS Excel.

Ключевые слова: расписание загрузки оборудования, модель, средства MS Excel.

SCHEDULING OF EQUIPMENT LOADING IN MS EXCEL

Katargin N. V.

Financial University under the Government of the Russian Federation, Moscow

Abstract. The technology development schedules utilization of equipment with using Evolutionary solver that is part of the service "Finding solutions" in MS Excel.

Keywords: scheduling of equipment loading model, MS Excel

Данная работа инспирирована статьёй [1] и докладом одного из её авторов - Бориса Голденгорина на семинаре в ВШЭ. Тематика работы - составление расписаний, в данном случае - расписания загрузки оборудования при последовательном выполнении работ с учётом их приоритета. В отличие от [1], прерывание выполнения работы ради работы с более высоким приоритетом не предполагается.

Постановка задачи: требуется минимизировать функционал XWjCj , где Wj - приоритет j-ой работы, Cj - время её завершения. Заданы длительность каждой работы Tj и время, ранее которого работа не может быть начата rj.

Авторы работы [1] использовали эвристические методы (weighted shortest remaining processing time WSRPT) с многократным перебором. В данной работе исследован Эволюционный поиск решения, встроенный в сервис "Поиск решения" Excel. Вычисления проводились для 20 работ различной длительности, для одного и двух единиц оборудования ("станков").

В Таблице 1 представлены исходные данные (первые 4 из [1]), а также полученные планы последовательности выполнения работ на одном станке (Plan X1) и на двух станках (Plan X2). Например, число 17 в Plan X1 означает, что работа №1 имеет очередь №17, а число 4 в Plan X2 означает, что работа №1 имеет очередь № 4 и выполняется на станке № 0. В первом случае комплекс работ выполняется за 20 шагов, во втором - за 10, поэтому План Х2 разделён на 2 группы, и на одинаковых шагах выполняются различные работы на разных станках.

Алгоритм расчётов при использовании одного станка

Таблицы для расчётов формируются следующим образом. Произвольный опорный план Plan X1 вводится в ячейки D10:W10 под исходными данными. Каждое число в Plan X1 означает номер очереди работы Work j . В таблице Plan X по горизонтали идут номера работ (D13:W13), по вертикали - шаги выполнения плана (очерёдность работ, C14:C33). Единица означает выполнение работы на данном шаге. В ячейку D14 вводится формула

=EGnH(ABS(D$10-$C14)<0,5;1;0),

которая копируется на всю таблицу. Обратите внимание на фиксацию строки 10 и столбца С.

Проверяется соответствие номера шага и числа в Plan X1. Поскольку на каждом шаге станок должен быть занят, и все работы должны быть выполнены, суммы по строкам и столбцам этой таблицы должны равняться 1, что задаётся в Ограничениях Поиска решения.

В следующей таблице формируется время выполнения работы на каждом шаге на основании Плана Х: X*Tj. В ячейку D37 вводится формула =D14*D$6, в ячейках Y37:Y56 формируются суммы по строкам Sumí. В столбце АА37:АА56 формируются времена окончания работ Cj. В АА37 копируется Y37, в АА38 формула =AA37+Y38, которая копируется вниз. Времена начала работ (номера шагов) формируются в столбце АС36:АС57 по формуле Cj-Sum1+1 (=AA37-Y37+1).

Далее формируется столбец весов работ на каждом шаге Sum2. В ячейку D59 вводится формула =D14*D$7, то есть X*Wj, и копируется на всю таблицу.

Суммы по строкам Sum2 формируются в столбце Y56:Y78. Аналогично формируются возможные времена начала работ. В ячейку D82 вводится формула =D14*D$8, то есть X*rj, и копируется на всю таблицу. Суммы по строкам Sum3 формируются в столбце Y82:Y101. В ограничениях Поиска решения АС36:АС57>= Y82:Y101.

Наконец, вычисляются времена окончания работ с учётом их приоритетов X*Cj*Wj. В ячейку АЕ37 вводится формула =AA37*Y59. Сумма по столбцу АЕ37:АЕ56 - целевая функция, которую надо минимизировать.

Параметры Поиска решения:

Целевая ячейка АЕ58=>min, Изменяя ячейки D10:W10 (Plan X1), ограничения: D10:W10 целые, разные, Y14:Y33=1, D34:W34=1 (станок работает всегда, все работы выполнены), АС36:АС57>= Y82:Y101 (работы начинаются не раньше заданного срока. Используется Эволюционный поиск решения.

При разных опорных планах получаются разные решения, или решения не получается. Меняйте опорные планы. Время расчёта менее одной минуты.

C D E F V W Y

5 Workj 1 2 3 .. .. 19 20

6 Tj 3 2 2 . 2 1

7 Wj 1 3 7 . 1 3

8 Rj 1 3 4 . 4 3

9

10 Plan X1 17 2 5 .. 18 6

11

12 Plan X Sum

13 Step 1 2 3 .. 19 20

14 1 0 0 0 . 0 0 1

15 2 0 1 0 . 0 0 1

32 19 0 0 0 . 0 0 1

AA

AC

Таблица 1.

AE

33 20 0 0 0 .... 0 0 1

34 Sum 1 1 1 ... 1 1

35

36 Cj= SumSum1-

X*Tj Sum1 SumSum1 Sum1+1 X*Cj*Wj

37 1 0 0 0 .. 0 0 2 2 1 4

38 2 0 2 0 .. 0 0 2 4 3 12

55 19 0 0 0 .. 0 0 4 52 49 104

56 20 0 0 0 .. 0 0 2 54 53 54

57

58 X*Wj Sum2 Target 1310

59 1 0 0 1 .. 0 0 2 min

60 2 0 3 2 .. 0 0 3

77 19 0 0 0 .. 0 0 2

78 20 0 0 0 .. 0 0 1

81 X*rj Sum3

82 1 0 0 0 .. 0 0 1 83 2 0 3 0 .. 0 0 3

100 19 0 0 19 .. 0 0 8

101 20 0 0 20 .. 0 0 1

C D E F V W Y AA AC AE

5 Workj 1 2 3 .... 19 20

6 Tj 3 2 2 .. 2 1

7 Wj 1 3 7 .. 1 3

8 Rj 1 3 4 .. 4 3

9 ........................

10 Plan X1 17 2 5 .. 18 6

11

12 Plan Sum

X

13 Step 1 2 3 .. 19 20

14 1 0 0 0 .. 0 0 1

15 2 0 1 0 .. 0 0 1

32 19 0 0 0 .. 0 0 1

33 20 0 0 0 .. 0 0 1

34 Sum 1 1 1 .. 1 1

35

36 Cj= SumSum1-

X*Tj Sum1 SumSum1 Sum1+1 X*Cj*Wj

37 1 0 0 0 .. 0 0 2 2 1 4

38 2 0 2 0 .. 0 0 2 4 3 12

55 19 0 0 0 .. 0 0 4 52 49 104

56 20 0 0 0 .. 0 0 2 54 53 54

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

57

58 X*Wj Sum2 Target 1310

59 1 0 0 1 .. 0 0 2 min

60 2 0 3 2 .. 0 0 3

77 19 0 0 0 .. 0 0 2

78 20 0 0 0 .. 0 0 1

81 X*rj Sum3

82 1 0 0 0 .. 0 0 1 83 2 0 3 0 .. 0 0 3

«Хроноэкономика» № 1 (3) январь 2017 www.hronoeconomics.ru

16

100 19 0 0 19 .... 0 0 8

101 20 0 0 20 ... 0 0 1

Алгоритм расчётов при использовании двух станков

В этом случае план делится на две половины, число шагов уменьшается до 10, каждой работе ставится в соответствие станок 0 или 1. Таблицы составляются для каждого станка отдельно. Ячейки в таблице Plan X для станка 0 заполняются по формуле =ЕСЛИ(И((АВS(D$10-$C16)<0,5); (D$11<0,5));1;0) которая вводится в ячейку D16. Ячейки в таблице Plan X для станка 1 заполняются по формуле =ЕСЛИ(И((АВS(D$10-$C16)<0,5); (D$11>0,5));1;0) которая вводится в ячейку Y16. Заполнение остальных таблиц аналогично.

Каждый станок должен быть загружен, поэтому суммы по строкам таблиц Планов для 0 и 1 станков должны равняться 1, суммы по столбцам D26:W26 и Y26:AR26 могут быть равны 0, но суммы этих сумм D27:W27 должны равняться 1, чтобы все работы были выполнены.

Расчёты для Cj=SumSum1, SumSum1-Sum1+1 и X*Cj*Wj проводятся аналогично, но для каждого станка отдельно. Целевая функция - максимум из X X*Cj *Wj двух станков.

Параметры Поиска решения:

Целевая функция target AZ42=>min

Изменяя ячейки D10:W11, номер работы в очереди и станок,

Ограничения: D10:W10 - целые, D10:M10 - разные, N10:W10 - разные, D11:W11 - бинарные (станки), X16:25=1, AS16:25=1 (Загрузка всех станков); D27:W27=1 (выполнение всех работ); AW29:AW38 >=X54:X63; AX29:AX38>=AS54:ASX6 (SumSum1-Sum1+1>= заданного времени начала работы). Эволюционный поиск решения.

Пример расчётов представлен в Приложении 1. Время расчёта - около 30 секунд.

Практика показала, что Поиск решения не достигает решения: не получаются единицы в суммах по строкам планов станков, получаются нули и двойки. Это значит, что на каких-то шагах один станок выполняет две работы, а другой простаивает. Это можно устранить вручную, но разработан программный модуль, который находит отличия от 1 и заменяет в строке D11:W11 1 и 0 - для минимизации целевой ячейки. Модуль приведён в Приложении 1.

Планы и времена окончания комплекса работ target получаются различные, в зависимости от опорных планов. Они представлены в Приложении 2.

Список использованных источников

1. Mikhail Batsyn, Boris Goldengorin, Panos M. Pardalos, Pavel Sukhov. Online heuristic for the preemptive single machine scheduling problem of minimizing the total weighted completion time. Optimization Methods & Software, 2014 Vol. 29, No. 5, 955-963,

http://dx.doi.org/10.1080/10556788.2013.854360

Приложение 1. Программный модуль:

Private Sub CommandButton1_Click() Dim aa, bb As Range

Set aa = Range("X16") 'Загрузка станка 0 Set bb = Range("D 10") 'Станки в Плане Х2 target = Range("AZ42") 'Значение в Целевой ячейке For i = 1 To 10 'Поиск в Плане Х2 станков с

If aa(i) <> 1 Then 'неправильной загрузкой

For k = 1 To 10

If Abs(bb(1, k) - i) < 0.1 Then N1 = k Next k

For k = 11 To 20

If Abs(bb(1, k) - i) < 0.1 Then N2 = k Next k End If

If bb(2, N1) = 0 Then 'Если на данном шаге 1 1 или 0

0, 'замена на 0 1 или 1 0 с минимизацией target

bb(2, N1) = 1: q1 = target: bb(2, N1) = 0 : bb(2, N2) = 1 :

q2 = target

If q1 < q2 Then

bb(2, N1) = 1 : bb(2, N2) = 0

End If

Else

bb(2, N1) = 0 : q1 = target : bb(2, N1) = 1 : bb(2, N2) = 0

: q2 = target

If q1 < q2 Then

bb(2, N1) = 0 : bb(2, N2) = 1

End If : End If

Next i

End Sub

Приложение 2. Результаты расчётов

Планы для одного станка:

План: очередь работ, указанных в первой строке

Target 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1284 20 5 3 4 15 13 12 8 7 9 11 1 17 10 6 16 14 19 18 2

1294 20 8 3 2 14 13 12 6 7 10 1 11 17 9 4 16 15 18 19 5

1300 20 8 4 3 15 13 12 9 6 10 11 1 19 5 7 16 14 18 17 2

1290 20 8 3 2 14 13 12 5 6 10 1 11 17 9 4 16 15 19 18 7

1269 20 8 4 3 15 13 12 6 7 10 11 1 17 9 5 16 14 18 19 2

1290 20 8 2 3 14 13 12 5 6 10 1 11 19 9 4 16 15 17 18 7

1298 20 2 3 5 15 13 12 8 7 10 11 1 17 9 4 16 14 19 18 6

1283 20 5 3 4 14 13 12 8 7 10 11 1 17 9 6 16 15 18 19 2

1291 20 8 2 3 15 13 12 5 6 9 1 11 17 10 4 16 14 18 19 7

1310 17 2 5 3 15 13 12 7 8 10 11 1 20 9 4 16 14 19 18 6

Планы для двух станков:

План: очередь и станок работ, указанных в первой строке

target 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

622 9 5 7 4 3 6 8 10 1 2 4 3 5 2 9 10 6 1 7 8

0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 0 0

676 6 7 8 5 9 3 2 10 1 4 10 9 7 3 8 4 2 1 5 6

1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0

789 8 6 9 7 5 4 3 10 1 2 4 3 9 5 2 6 10 1 8 7

0 0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 1

634 4 7 10 3 6 5 2 9 1 8 7 4 8 5 1 9 10 6 2 3

1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 1 0 0

583 9 3 2 5 4 8 6 10 1 7 10 8 7 6 5 1 9 2 3 4

0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 0

487 4 3 9 2 5 8 6 7 1 10 9 2 3 6 5 8 10 4 7 1

0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1

632 2 6 5 7 1 9 4 3 10 8 4 2 9 8 7 6 10 1 3 5

0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0

600 7 8 5 1 9 6 10 4 2 3 3 9 4 7 2 5 6 8 1 10

0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0

542 4 5 8 3 2 6 7 9 1 10 9 8 4 2 7 6 5 1 3 10

1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1

538 5 2 9 8 7 4 3 6 10 1 3 5 9 2 4 8 7 10 1 6

0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1

i Надоели баннеры? Вы всегда можете отключить рекламу.