Exergic balance diagram of system operation with hydraulic distributor is given in Picture 4.
Consequently, the variant with hydraulic distributor ensures a better use of exergy which results in higher thermodynamic indexes.
When the cold is transferred to deeper horizons with high pressure thermal exchanger, the cold is transferred by means of recuperation, whereas with hydraulic distributor it goes through the latter directly to air coolers in the bottomholes. By means of this, effective air cooling in the bottomhole is achieved and energy resources can be saved.
Heat engineering comparison of the variants of mine air conditioning system operation with high pressure thermal exchanger and a hydraulic distributor has shown that while working with high pressure thermal exchanger q = 18,49 %, whereas the same for hydraulic distributor is q = 98,55 %.
Conclusion. 1. In the process of cold transition to deep horizons with the help of high pressure thermal exchanger, the cold is conveyed in a recuperative way, whereas with hydraulic distributor it goes through the distributor it is conveyed directly to air-cooling unit in the bottomhole. By means of this effective air cooling is achieved.
2. A very small exergy loss is registered while cold bearer transition to deep horizons by hydraulic distributor. In such way energy resources are used more effectively.
3. Thus, it can be observed that the operation of the system with hydraulic distributor will be more efficient, with smaller exergy losses for cold conveyed to air cooling units.
4. Thermal technical correlation of performed for different variants of mine air conditioning with high-pressure thermal exchanger and hydraulic distributor has shown that while working with q = 18,49 % and with hydraulic distributor it is q = 98,55 %.
REFERENCES
1. Averin F. A. Laboratornyj praktikum rudnichnoj ventiljacii / F. A. Averin, V. A. Bojko, V. A. Dolinskij. - M. : Nedra, 1966. - 64 s .
2. A. s. 1642204, MKI F24 F13/06. Vozduhoraspredelitel' / V. F. Rozhko, V. A. Steblovcev, I. S. Ignashkin (SSSR). - № 4678905/29; Zajavl. 14.04.89; Opubl. 15.04.91, Bjul. №14. - 3 s.
3. Andrjushhenko A. I. Termodinamicheskie raschjoty optimal'nyh parametrov teplovyh jelektrostancij. - M. : Vyssh. shk., 1963. - 230 s.
4. Andrjushhenko A. I. Osnovy termodinamicheskih ciklov teplojenergeticheskih ustanovok. -M. : Vyssh. shk., 1968. - 288 s.
5. Andrjushhenko V. N. Metody izmerenija sostojanija mikroklimata v gornyh vyrabotkah / V. N. Andrjushhenko, V. F. Rozhko. - M. : 1989. - 16 s. - Dek v CNIIJeI - ugol' 28.11.1989, №5011.
6. Brodjanskij V. M. Jeksergeticheskij metod termodinamicheskogo analiza. - M. : Jenergija 1973. - 296 s.7. Pat. 23867 A Ukraina, UA E21 F3/00 Gidrorozpodilnik / V. F. Rozhko, I. S. Ignashkin, L. O. Haruk, F. O. Korsun ta in. / Opubl. 31.08.98. - Byul. № 4. - S. 73
УДК 004.896:621.796.5
ДОСЛ1ДЖЕННЯ ЕФЕКТИВНОСТ1 РОБОТИ ПОШУКОВИХ АЛГОРИТМ1В У СИСТЕМ1 УПРАВЛ1ННЯ СКЛАДСЬКИМ ПРИМ1ЩЕННЯМ
В. О. Ужеловський, к. т. н., доц., П. С. Кашуба, маг1стр
Ключовi слова: алгоритм, ¡мтацтна модель, комп 'ютерне досл1дження, оптим1зац1я, пошук шляху, програмування, складське примщення
Постановка проблеми. Автоматизоване складське примщення являе собою сукупнють стелажних конструкцш та автоматичних транспортерiв, яю виконують операци iз завантаження та розвантаження збережуваних виробiв без учасп людини, що дозволяе уникнути помилок у робот^ як зазвичай спричинюе людський фактор. До того ж, автоматизащя складу сприяе шдвищенню пропускно! здатност складського примщення, прискорюе вс основш складсью процеси, а також дозволяе вщстежувати стан i поточш завдання транспортерiв та положення ушх збережуваних i транспортованих виробiв у реальному чаш (для виконання цього завдання використовуеться iнформацiйно-керiвна система, так звана 8СЛБЛ-система).
Саме iнформацiйно-керiвна система вщповщае за автоматизащю операцш транспортування, гарантуе вiзуалiзацiю та управлшня даними щодо кожного об'екта у
складському примiщеннi, здiйснюe оптимiзацiю маршруту, часу очшування та лопки перемiщення. Система yпрaвлiння, що обслуговуе складське примiщення дозволяе максимально ефективно використовувати потенщал складського устаткування, а автоматичш транспортери - максимально оптимiзyвaти обсяги зберiгaння [1].
Мета статть Визначення i обрання нaйефективнiшого за технiко-економiчними показниками пошукового алгоритму з юнуючих шляхом розробки iнформaщйно-керiвно! системи, яка iмiтyе роботу реального автоматизованого складу.
Досягнення поставлено! мети можливе виконанням таких основних завдань:
1. Розробка та реaлiзaцiя iнформaцiйно-керiвноl системи, яка передбачае генеращю складського примщення з певною конфiгyрaцiею (задаеться кшькють рядiв, стелаж1в у рядi i роботiв-трaнспортерiв) та здiйснення перемiщення трaнспортерiв складським примiщення за обраним алгоритмом пошуку найкоротшого шляху.
2. Проведення комп'ютерних дослiджень розроблено! iнформaцiйно-керiвноl системи з метою ощнки li функщонування в реальних умовах складських процешв.
3. Проведення експериментальних дослiджень розроблено! iнформaцiйно-керiвно! системи з метою ощнки !! динaмiчних характеристик.
4. Виконання технiко-економiчного розрахунку для кожного з пошукових aлгоритмiв та порiвняння !х резyльтaтiв.
Виклад матерiалу. Для виконання дослщження були склaденi блок-схеми юнуючих алгоршмв пошуку найкоротшого шляху: алгоритм «A*» (рис. 1), «пошук у ширину» (рис. 2), «жaдiбний пошук» (рис. 3), алгоритм Дейкстри (рис. 4) i «Jump Point Search» (рис. 5 - 6). Алгоритм «A*» здшснюе пошук по першому найкращому зб^у на грaфi та знаходить маршрут iз найменшою вартютю вiд однiе! точки (початково!) до шшо! (кiнцево!). «Пошук у ширину» працюе шляхом послiдовного перегляду окремих рiвнiв графа, починаючи з вузла-джерела; шсля того як будуть перевiренi всi ребра, що виходять iз кожного вузла, з черги витягуеться наступний вузол, i процес повторюеться. «Жaдiбний пошук» е aнaлогiчним алгоритму пошуку шляху «А*», але з пею вiдмiннiстю, що, вибираючи нову вершину, вш ураховуе вaртiсть шляху тшьки вiд попередньо!, а не вщ початково! вершини, як в алгоршм «А*». Алгоритм Дейкстри покроково перебирае вш вершини графа i призначае !м мiтки, якi е вщомою мiнiмaльною вiдстaнню вiд вершини джерела до конкретно! вершини. Алгоритм «Jump Point Search» е полшшеним вaрiaнтом алгоритму пошуку шляху «A*»; даний алгоритм прискорюе пошук шляху за рахунок пропускання багатьох мюць пошуку, якi переглядаються за звичайно! реaлiзaцi! алгоритму «А*» [2, с. 105 - 120].
В блок-схемах при цьому було прийнято: start - поточне положення транспортера; end -точка призначення; grid - поле пошуку.
Масив доступних пошуковому алгоритму точок - open.
node, h, w, n, ns, i, l, s, g, x, ng, orig - довшьш змшш.
1
Начало
1 /
stau, end, node, n, ns, i, I, grid, open
Определение впереди находящейся ячейки из очереди
Определение соседних к<пос)е>ячеек
=0,1 = ns.length;I -1
16
open < - п
V
n.opened = true
п.parent := node
{Добавление стартовой ячейки е открытый список
нет
О ©
17_
node
"Путь не найден"
18.
Конец
Рис. 2. Алгоритм пошуку найкоротшого шляху «пошук у ширину»
1
Рис. 3. Алгоритм пошуку найкоротшого шляху «жадгбний пошук» 1
начало
И := Гипс1юп(с)х. бу) {гешгп 0; >
Выполнение алгоритма А' с заданной эвристикой
5 1
Конец
Рис. 4. Алгоритм пошуку найкоротшого шляху Дейкстри
Рис. 5. Алгоритм пошуку найкоротшого шляху «Jump Point Search»
Для програмування та реатзаци алгоршмв пошуку найкоротшого шляху використана мова програмування ECMAScript стандарту JavaScript.
Нижче наведено програми реалiзацii алгоритмiв пошуку найкоротшого шляху мовою ECMAScript з бiблiотеки PathFinding.js:
AStarFinder = function(startX, startY, endX, endY, grid) { var open = new Heap(function(nodeA, nodeB) { return nodeA.f □ nodeB.f;
}),
start = grid.getNodeAt(startX, startY), end = grid.getNodeAt(endX, endY), heuristic = this.heuristic,
w = this.w, abs = Math.abs, SQRT2 = Math.SQRT2, node, ns, n, i, l, x, y, ng; start.g = 0; start.f = 0; open.push(start); start.opened = true;
while (!open.empty()) { node = open.pop(); node.closed = true; if (node === end) {
return Util.backtrace(end);
}
ns = grid.getNeighbors(node); for (i = 0, l = ns.length; i < l; ++i) { n = ns[i]; if (n.closed) { continue;
}
x = n.x;
y = ny;
ng = node.g + ((x - node.x === 0 || y - node.y === 0) ? 1 : SQRT2); if (!n.opened || ng < n.g) { n.g = ng;
n.h = n.h || w * heuristic(abs(x - endX), abs(y - endY)); n.f = n.g + n.h; n.parent = node; if (!n.opened) { open.push(n); n.opened = true; } else {
open.updateItem(n);
}
}
}
}
return [];
};
BreadthFirstFinder = function(startX, startY, endX, endY, grid) { var open = [],
start = grid.getNodeAt(startX, startY), end = grid.getNodeAt(endX, endY), ns, n, node, i, l; open.push(start); start.opened = true; while (open.length) { node = open.shift(); node.closed = true; if (node === end) {
return Util.backtrace(end);
}
ns = grid.getNeighbors(node); for (i = 0, l = ns.length; i < l; ++i) { n = ns[i];
if (n.closed || n.opened) { continue;
}
open.push(n); n.opened = true; n.parent = node;
}
}
return [];
};
BestFirstFinder = function(opt) { AStarFinder(this, opt); var orig = this.heuristic; this.heuristic = function(dx, dy) { return orig(dx, dy) * 1000000;
};
};
DijkstraFinder = function(opt) { AStarFinder(this, opt); this.heuristic = function(dx, dy) { return 0;
};
}
JumpPointFinder = function(startX, startY, endX, endY, grid) { var open = this.open = new Heap(function(nodeA, nodeB) { return nodeA.f - nodeB.f;
}),
start = this.start = grid.getNodeAt(startX, startY), end = this.end = grid.getNodeAt(endX, endY), node; this.grid = grid; start.g = 0; start.f = 0; open.push(start); start.opened = true; while (!open.empty()) { node = open.pop(); node.closed = true; if (node === end) {
return Util.expandPath(Util.backtrace(end));
}
this._successors(node);
}
return [];
};
JumpPointFinder.prototype._successors = function(node) { var grid = this.grid, h = this.heuristic, open = this.open, endX = this.end.x, endY = this.end.y, ns, n, jump, i, l, x = node.x, y = node.y, jx, jy, dx, dy, d, ng, jumpN, abs = Math.abs, max = Math.max; ns = this._findNeighbors(node); for(i = 0, l = ns.length; i < l; ++i) { n = ns[i];
jump = this._jump(n[0], n[1], x, y); if (jump) { jx = jump[0]; jy = jump[1];
jumpN = grid.getNodeAt(jx, jy); if (jumpN.closed) { continue;
}
d = Math.sqrt(abs(jx - x) * abs(jx - x) - abs(jy - y) * abs(jy - y)); ng = node.g + d; // следующее значение веса 'g'
if (IjumpN.opened || ng < jumpN.g) { jumpN.g = ng;
jumpN.h = h(abs(jx - endX), abs(jy - endY)); jumpN.f = jumpN.g + jumpN.h; jumpN.parent = node; if (IjumpN.opened) { open.push(jumpN); jumpN.opened = true; } else { open.updateltem(jumpN);
}
}
};
Спроектоваш та розробленi програми мовами Delphi, ECMAScript та PHP дозволяють провести повноцiннi дослiдження iмiтащйноi моделi iнформацiйно-керiвноi системи складського примщення.
Iмiтацiйна модель була створена мовою ECMAScript i3 графiчною бiблiотекою Pixi.js i працюе без використання допомiжних програм, сама при цьому будучи незалежною комп'ютерною програмою. На рисунку 6 зображено iмiтацiйну модель iнформацiйно-керiвноi системи складського примiщення пiд час ii роботи в згенерованому програмою типовому примщенш розмiрнiстю 4 ряди, кожен з яких вмщуе 17 пар стелаж1в та яке обслуговусться 4-ма роботами-транспортерами. Дана модель дозволяе: iмiтувати завантаження виробу (до найближчого стелажу вiд мiсця його прийняття, до найближчого стелажу вiд зони розвантаження, або ручне завантаження до вказаного користувачем незайнятого стелажу) та iмiтувати вiдпуск виробу (найближчий до зони розвантаження, найвiддаленiший вiд зони розвантаження, або ручний вiдпуск зi вказаного користувачем зайнятого стелажу). Як процедура завантаження, так i процедура вщпуску можуть бути встановленi в неперервний режим роботи, тобто до повного завантаження або розвантаження усього складу вщповщно.
Рис. 6. Модель ШформацШно-кер1вно1 системи складу для прим1щення
розм1ртстю 4 х 34
}
}
Також у системi передбачено вибiр iз запропонованих алгоритму роботи транспортерiв, згiдно з яким працюе функцiя пошуку найкоротшого шляху. Причому вибiр може бути здiйснений у будь-який момент часу i роботи-транспортери вщразу ж перепрограмовуються пiд новий пошуковий алгоритм i починають працювати згiдно з ним.
Для бшьш точного вiдтворення реально! iнформацiйно-керiвноi системи складського примщення була реалiзована спещальна база даних, що мiстить повну iнформацiю про кожний iз роботiв-транспортерiв (iдентифiкацiйний номер у системi, мережна 1Р-адреса, поточне завдання, координатне положення та деякi статистичнi данi) та стелажв (iдентифiкацiйний номер у систем^ поточний статус, координатне положення та статистичш данi). Усi данi оновлюються в реальному часi.
Для визначення найефективнiшого пошукового алгоритму були проведет iмiтацiйнi експерименти повного завантаження порожнього та розвантаження зайнятого складського примiщення для кожного з алгоршмв, iз визначенням сумарного часу роботи кожного з них, та кшькосп розрахункових операцш, якi були виконаш пiд час !х роботи.
У довшьному порядку були вибраш конфiгурацii складу з кiлькiстю рядiв: 1, 2 та 4 i кiлькiстю стелажiв у кожному: 10, 26 та 40.
Результуючi сумарш значення часу та кiлькостi операцш для кожного алгоритму зображеш у виглядi дiаграм на рисунку 8:
Повне завантаження складу Повне розвантаження складу
АлгоритмА* Пошуку Жадбний Алгоритм Jump Point Алгоритм А4 Пошуку Жадюнии Алгоритм Jump Point ширину пошук Дейкстри Search ширину пошук Дейкстри Search
■ Час= мс в Операций, N ■ Час, мс и Операций. N
Рис. 8. Шдсумковг результати гмгтацШного експерименту
Детальт результати проведеноi iмiтацii на повне завантаження та повне розвантаження наведет у таблицях 1 та 2 вщповщно, де i - час роботи алгоритму у мшсекундах, N - кшьюсть розрахункових операцiй.
Найефективнiшi показники часу роботи та кшькосп розрахункових операцш незалежно вiд вибраноi конфтурацп складського примiщення отриманi iз застосуванням сучасного (розроблений у 2011 рощ) алгоритму «Jump Point Search». Причому з ростом кшькосп обслуговуваних стелажiв перевага цього алгоритму перед будь-яким з шших стае ще сильшшою, що дозволяе вигравати до 1,2 секунди комп'ютерного часу за повного завантаження, та до 5,0 секунд за повного розвантаження. Використання даного алгоритму сприятиме не тшьки скороченню часу застосування ресуршв обчислювальноi техтки, а й зниженню витрат на ii утримання за рахунок зменшення кiлькостi розрахункових операцiй, тобто оптишзаци використання обчислювально!' технiки в щлому.
Таблиця 1
Результати ¡мтацтного експерименту на повне завантаження складу
Кшьюсть рядiв
Пошуковий алгоритм 1 2 4 I(t), мс
№ Стелаж1в Стелаж1в Стелашв L(N)
10 26 40 10 26 40 10 26 40
t, мс N t,MC N t,MC N t,MC N t,MC N t,№ N t,MC N t,№ N t,MC N
1 Алг. A* 11,17 334 22,69 1286 41,63 2540 16,57 953 54,57 3397 128,93 7142 67,53 4203 247,74 13946 456,03 25282 1046,86 59083
2 «У ширину» 7,46 422 25,86 1636 52,74 3224 29,30 1876 106,68 6026 192,84 11236 108,37 6815 437,27 26867 781,34 47353 1741,86 105455
3 «Жадбний» 9,28 340 22,87 1300 39,88 2560 13,46 880 56,01 3357 95,81 5720 64,05 3770 209,59 12450 387,43 21837 898,38 52214
4 Дейкстри 6,43 420 26,88 1636 50,72 3224 27,34 1811 97,31 6133 218,38 11415 119,33 7286 411,80 25088 838,62 48448 1796,81 105461
5 Jump P.S. 2,37 80 9,64 208 7,59 320 13,07 446 28,26 1356 48,96 2104 4874 2408 120,78 6152 236,27 9836 515,68 22910
Таблиця 2
Результати ¡мтацтного експерименту на повне розвантаження складу
1 Кiлькiсть рядiв A
№ Пошуковий алгоритм 1 Стелажв 2 Стелажiв 4 Стелаж1в L(t), мс Z(N)
10 26 40 10 26 40 10 26 40
t, мс N ^мс N t,№ N t,№ N t,№ N t,№ N t^E N t^E N ^мс N
1 Алг. A* 10,99 681 49,17 3182 131,15 8123 55,19 3264 205,13 12098 535,82 31375 183,79 11313 1159,89 65453 2388,34 138721 4719,47 274210
2 «У ширину» 16,35 590 56,94 3432 139,56 8555 54,25 3353 261,62 16501 714,12 42665 288,77 18763 2014,57 116792 3666,49 221264 7212,67 431915
3 «Жэдбний» 9,45 528 53,98 3162 135,16 8129 31,97 2066 156,89 9735 424,58 24938 144,66 8874 864,09 45611 1549,54 84834 3370,32 187877
4 Дейкстри 10,29 587 54,16 3452 134,23 8535 55,11 3347 256,25 16215 722,45 43024 303,22 19537 2007,48 117624 3612,57 216547 7155,76 428868
5 Jump P. S. 4,84 222 17,58 724 27,39 1288 28,88 1724 104,10 5662 255,12 11700 134,11 7556 647,19 27890 1021,74 46208 2240,95 102974
Висновки. 1. Реалiзовано програми алгоритмiв пошуку найкоротшого шляху мовою програмування ECMAScript стандарту JavaScript.
2. Розроблено та реатзовано iмiтацiйну модель iнформацiйно-керiвноi системи складського примiщення мовою ECMAScript з графiчною бiблiотекою Pixi.js.
3. Проведено комп'ютернi дослiдження розробленоi моделi iнформацiйно-керiвноi системи з ощнкою ii функцiонування в реальних умовах складських процешв.
4. Порiвняльним розрахунком роботи кожного з пошукових алгоршмв визначено найефективнiший iз технiко-економiчних мiркувань - «Jump Point Search», перевага в чаш роботи якого перед шшими становить вщ 51 до 248 %, а в кшькосп розрахункових операцiй -вiд 82 до 360 %.
ВИКОРИСТАНА Л1ТЕРАТУРА
1. Norbert Ascheuer, Martin Grotschel, Atef Abdel-Aziz Abdel-Hamid. Order Picking in an Automatic Warehouse: Solving Online Asymmetric TSPs. - Berlin : Konrad-Zuse-Zentrum fur Informationstechnik Berlin, 1998. - 15 с. - (Препринт / Konrad-Zuse-Zentrum Berlin; SC 98-08).
2. Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani. Algorithms. - McGraw-Hill, 2006.
3. AMSEL - A Modelling and Simulation Environment Library. Developed at the Konrad-Zuse-Zentrum fEur Informationstechnik Berlin [Електронний ресурс] // ZIB, 1997. - Режим доступу: http://www.zib.de/ascheuer/AMSEL.
4. Ascheuer N. Hamiltonian Path Problems in the On-line Optimization of Flexible Manufacturing Systems. - Berlin : Technical Univiversity Berlin, 1995.
SUMMARY
Problem statement. Automatic warehouse is a collection of shelving constructions and robotic transporters, performing operations of loading and unloading stored articles without the participation of human, that allows to avoid errors in the processing, which may result of human factors.
Research objective. The aim of the study is to determine and accept the most efficient (by technical and economic performance) pathfinding algorithm from existing by developing warehouse control system, which simulates the real processes in the automatic warehouse. Achieving this goal is possible by perform the following major tasks:
1. Development and implementation of warehouse control system that provides generation of a warehouse model with a specific configuration (specified number of rows, shelves in a row and robotic transporters) and the realization of robotic transporters moving in the warehouses by chosen pathfinding algorithm finding the shortest path.
2. Carrying out computer studies of developed model of the warehouse control system with the evaluation of its performance in the real automatic warehouse processes.
3. Performing experimental research of the developed warehouse control system to evaluate its dynamic characteristics.
4. Performing feasibility calculations for each of the pathfinding algorithms and comparing their results.
Conclusions. As a result, are realized programs of pathfinding algorithms on ECMAScript programming language using JavaScript standard. Developed and implemented a simulation model of warehouse control system on ECMAScript language with graphics library Pixi.js. Were carried out computer studies of developed model of the warehouse control system with the evaluation of its performance. Performed comparative calculations of each pathfinding algorithm with determining the most effecient of them.
REFERENCES
1. Norbert Ascheuer, Martin Grotschel, Atef Abdel-Aziz Abdel-Hamid. Order Picking in an Automatic Warehouse: Solving Online Asymmetric TSPs. - Berlin: Konrad-Zuse-Zentrum fur Informationstechnik Berlin, 1998. - 15 s. - (Preprint / Konrad-Zuse-Zentrum Berlin; SC 98-08).
2. Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani. Algorithms. - McGraw-Hill, 2006.
3. AMSEL - A Modelling and Simulation Environment Library. Developed at the Konrad-Zuse-Zentrum fEur Informationstechnik Berlin [Elektronnyy resurs] // ZIB, 1997. - Rezhym dostupu: http://www.zib.de/ascheuer/AMSEL.
4. Ascheuer N. Hamiltonian Path Problems in the On-line Optimization of Flexible Manufacturing Systems. - Berlin: Technical Univiversity Berlin, 1995.