Повышение эффективности систем автоматизированного управления в производственных иерархиях тема диссертации и автореферата по ВАК РФ 05.13.01, кандидат наук Сай Вин Мо
- Специальность ВАК РФ05.13.01
- Количество страниц 123
Оглавление диссертации кандидат наук Сай Вин Мо
Оглавление
Обозначения и сокращения
Введение
ГЛАВА 1. ИЕРАРХИЧЕСКИЕ СТРУКТУРЫ И ИХ ПРИМЕНЕНИЕ В ТЕХНИКЕ И ПРОИЗВОДСТВЕ
1.1 Иерархические системы
1.2 Иерархический подход в проектировании
1.3 Управление производственными иерархиями
1.4 Использование иерархического подхода в мехатронике
1.4 Иерархический контроль при управлении динамическими ресурсами
1.5. Метод аналитических иерархий
1.5.1 Оценка устойчивости производственных процессов методом
аналитических иерархий
Выводы по главе 1
ГЛАВА 2. МАТРИЧНАЯ МОДЕЛЬ ИЕРАРХИИ И ЕЕ ИСПОЛЬЗОВАНИЕ
В ЗАДАЧАХ УПРАВЛЕНИЯ ПРОИВОДСТВОМ
2.1 Классификация иерархических систем
2.1.1 Иерархические структуры 0-типа
2.1.2 Иерархические структуры 1-типа
2.1.3 Иерархические структуры 2-типа
2.3 Вычислительная сложность задач оптимизации иерархий
2.4 Редукция при оптимизации иерархических структур
2.5 Применимость алгоритма полного перебора вариантов для распределения нагрузки в иерархических системах
2.5.1 Генерация вариантов в задаче поиска оптимальной структуры
2.5.2 Генерация вариантов в задаче распределения нагрузки
Выводы по главе 2
ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА РАСПРЕДЕЛЕНИЯ ЗАДАНИЙ В ИЕРАРХИЧЕСКИХ СИСТЕМАХ
3.1 Последовательная реализация алгоритма
3.1.1 Последовательная генерация вариантов загрузки узлов иерархии
3.1.2 Последовательная генерация вариантов загрузки иерархии
3.1.3 Проверка корректности варианта распределения нагрузки
3.2 Параллельная реализация алгоритма
3.2.1 Генерация вариантов загрузки узлов иерархии
3.2.2 Параллельная генерация вариантов загрузки иерархии
3.2.3 Определение времени выполнения задания
3.2.4 Оптимизация кода для Intel Xeon Phi Coprocessor
3.3 Среда разработки Intel® Parallel Studio XE (IPS)
Выводы по главе 3
ГЛАВА 4. ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ ЭФФЕКТИВНОСТИ ПРОГРАММНОЙ РЕАЛИЗАЦИИ АЛГОРИТМА
4.1 Последовательная реализация алгоритма
4.2 Параллельная реализация алгоритма
4.2.1 Оптимизации иерархии HS на платформе 1
4.2.2 Оптимизации иерархии HS на платформе 2
4.2.3 Оптимизации иерархии HS1 на платформе 1
4.2.4 Оптимизации иерархии HS1 на платформе 2
4.2.5 Оптимизации иерархий HS и HS1 на платформе 3
Выводы по главе 4
Заключение
Список литературы
Приложение 1. Фрагменты программного кода
Приложение 2. Свидетельства о регистрации программ
Приложение 3. Акт внедрения
Обозначения и сокращения
АТС Analytical Target Cascading
ДС Диспетчерская система
МАИ Метод анализа иерархий
ОУ Объект управления
ПАК Программно-аппаратный комплекс
DARPA Defense Advanced Research Projects Agency
ПО Программное обеспечение
САУ Система автоматизированного управления
СМО Система массового обслуживания
СУ Система управления
ИУС Информационно-управляющая система
Рекомендованный список диссертаций по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Параллельные алгоритмы диспетчеризации для автоматизированных систем принятия решений2013 год, кандидат технических наук Чжо Мью Хтун
Разработка и исследование параллельных приложений для оптимизации топологии беспроводных сетей2019 год, кандидат наук Ай Мин Тайк
Методы обработки запросов в системах управления базами данных для многопроцессорных систем с иерархической архитектурой2008 год, кандидат физико-математических наук Лепихов, Андрей Валерьевич
Анализ эффективности параллельных вычислительных систем с распределенной памятью при решении оптимизационных задач методами квадратичного назначения2008 год, кандидат технических наук Зей Яр Вин
Повышение эффективности кластерных систем обработки информации при решении оптимизационных задач: на примере задачи составления расписания занятий2011 год, кандидат технических наук Милехина, Татьяна Викторовна
Введение диссертации (часть автореферата) на тему «Повышение эффективности систем автоматизированного управления в производственных иерархиях»
Введение
Актуальность проблемы. Первые иерархии появились еще на заре развития человечества и с тех пор непрерывно развиваются и совершенствуются. В первобытном обществе они в основном определяли положение индивидуума в социальной структуре, в дальнейшем стали основой организации вооруженных сил. Федеративное устройство многих государств также имеет непосредственную связь с иерархическими структурами. В эпоху индустриализации иерархии стали широко применяться и на производстве. Именно экономика дала мощный импульс к исследованию свойств иерархических систем. При этом теоретический фундамент таких исследований опирался на достаточно простые подходы, позволяющие использовать ручные расчеты. Развитие вычислительной техники в корне изменило теоретический базис и позволило использовать для исследования иерархий вычислительно сложные оптимизационные алгоритмы. Однако, в большинстве случаев, размерность решаемых на практике задач, не оставляла надежд на нахождение точного решения и это стимулировало создание множества приближенных алгоритмов. Сегодня производительность рабочих станций, оснащенных многоядерными процессорами и ускорителями, делает реальным использование и точных алгоритмов. Учитывая функциональное разнообразие иерархий, универсальным подходом для оптимизации их структуры следует считать алгоритмы перебора в различных модификациях, включая и метод ветвей и границ.
Современное производство немыслимо без использования автоматизированных систем управления. Иерархии, с одной стороны, призваны упростить процесс управления им, прежде всего за счет снижения количества объектов управления, подчиненных координирующему центру, но, с другой стороны, приводят и к возникновению новых задач. К ним можно отнести задачу распределения нагрузки между исполнительными узлами иерархии, многоуровневое планирование и синхронизацию их
5
работы. Необходимо отметить, что производственные АСУ являются процессо-ориентированными, учитывающими особенности конкретного объекта. Однако задача распределения работы между исполнителями характерна для любых иерархий, поэтому разработка и исследование инвариантных к объекту методов ее решения является актуальной научной проблемой.
Современные производственные автоматизированные системы базируются на мощных рабочих станциях, ресурсы которых позволяют не только обеспечивать работу исполнительных элементов объекта, но и решать задачи планирования. В недалеком прошлом эту функцию выполняли специализированные вычислительные центры, но у них, как правило, не было непосредственной связи с контроллерами исполнительных объектов, что делало невозможным их использование для низкоуровневого диспетчирования. Избыточные вычислительные мощности многоядерных процессоров в состоянии обеспечить планирование на нижних уровнях производственной иерархии - участок и цех, где число узлов ограничено.
Большинство иерархий можно рассматривать как сложные системы, поэтому эффективность их работы оценивается не одним, а несколькими критериями. Как следствие, задача оптимизации управления иерархиями становится многокритериальной, что влечет разнообразие подходов к ее решению. Различные теории иерархий и методы их исследований представлены в трудах отечественных и зарубежных ученых: Оystein Ore, Stephen Alan Ross, Abraham Harold Maslow, Thomas Lorie Saaty, Михайло Месаровича, Никиты Николаевича Моисеева, Хакимова Эдварда Муратовича и др.
На сегодняшний день существует множество различных классификаций иерархий, которые призваны типизировать и сами структуры, и алгоритмы их оптимизации. Однако, в силу функциональной разнородности объектов, существующие классификации нацелены, в первую очередь, на разделение объектов по уровням и ограничение их связей. В работе предложена классификация иерархий, позволяющая оценивать
б
сложность задачи их оптимизации и возможность распараллеливания вычислений.
Практическую направленность исследований определяет выбор аппаратной платформы - высокопроизводительные рабочие станции, оснащенные многоядерными процессорами, входящие в состав производственных АСУ.
Приведенные выше соображения доказывают, что исследования, направленные на разработку средств повышения эффективности автоматизированного управления иерархическими производственными структурами, являются актуальными. Для решения проблемы в диссертации предложено использовать вычислительные платформы на основе многоядерных процессоров и ускорителей, а также параллельные реализации алгоритма перебора, обеспечивающие нахождение точного решения задачи.
Цель работы состоит в разработке эффективных средств автоматизированного управления иерархическими производственными системами, обеспечивающих снижение времени выполнения заданий за счет оптимизации распределения работы между исполнительными элементами.
Для достижения поставленной цели в работе решены следующие основные задачи:
1. Проанализированы примеры использования иерархий в различных отраслях промышленности и методы управления ими. Показано, что для решения задач оптимизации иерархических структур и распределения нагрузки в них может быть использовано матричное представление иерархий инвариантное к решаемой задаче.
2. Предложена классификация иерархических систем, основанная на правилах взаимодействия узлов при выполнении задания.
3. Проведена оценка вычислительной сложности алгоритма перебора вариантов при оптимизации иерархических структур. Доказано, что для снижения сложности можно использовать механизм редукции в графовой модели иерархии.
4. Для алгоритма перебора разработаны методы генерации вариантов в задаче поиска оптимальной структуры иерархии и в задаче распределения нагрузки. Рассмотрены два подхода к реализации алгоритма перебора в виде параллельного приложения.
5. Разработаны последовательная и параллельная реализации алгоритма перебора вариантов для задачи оптимизации иерархических структур.
6. Проведена экспериментальная оценка эффективности предложенного подхода.
Объект и предмет исследования. Объектом исследования являются системы управления производственными иерархиями.
Предмет исследования составляют алгоритмы оптимизации иерархических структур.
Методы исследования. При решении поставленных задач были использованы положения общей теории систем, теории множеств, теории графов, методы параллельного программирования.
Научная новизна диссертационного исследования заключается в научном обосновании нового подхода к повышению эффективности управления иерархическими производственными системами, и состоит в следующем:
1. Предложены методы оптимизации производственных иерархических структур, обеспечивающие минимизацию времени выполнения задания за счет оптимального распределения работы между узлами системы или их оптимальной расстановки.
2. Предложена классификация иерархических систем, основанная на правилах взаимодействия узлов при выполнении задания, что позволило оценить вычислительную сложность задачи их оптимизации.
3. Обоснована возможность использования алгоритма перебора вариантов для нахождения оптимальной структуры иерархии.
4. Разработана и реализована в среде Intel Parallel Studio параллельная реализация алгоритма и проведены исследования ее эффективности. Показано, что приложение может использоваться в производственных АСУ, как для оптимального распределения нагрузки в заданной иерархии, так и для нахождения оптимальной иерархической структуры.
Практическая значимость. Предложенная в работе классификация производственных иерархий позволила разработать единый подход к решению задачи оптимизации их структуры и распределению нагрузки между исполнительными узлами. Разработанный параллельный алгоритм может быть использован в производственных АСУ для повышения эффективности работы иерархических структур на различных уровнях управления. Проведенные исследования подтвердили возможность практического использования параллельного приложения на рабочих станциях АСУ, оснащенных многоядерными процессорами и ускорителями.
Достоверность полученных результатов и выводов базируется на корректном использовании общепринятых математических методов, современных технологий программирования, проведенными вычислительными экспериментами.
Внедрение результатов. Предложенный в диссертационной работе подход к решению оптимизационной задачи используется при изучении курса «Применение высокопроизводительных вычислительных систем в научных исследованиях» в Институте МПСУ МИЭТ.
Результаты, выносимые на защиту.
1. Классификация иерархических систем, основанная на порядке взаимодействия узлов при выполнении задания.
2. Методы генерации вариантов в задаче поиска оптимальной структуры иерархии и в задаче распределения нагрузки, разработанные для алгоритма перебора.
3. Программная реализация алгоритма в среде Intel Parallel Studio.
4. Результаты экспериментальных исследований эффективности предложенного подхода.
Апробация работы. Основные положения диссертации были представлены и обсуждались на 17 международных, всероссийских и межвузовских научных конференциях:
1. Актуальные проблемы информатизации в науке, образовании и экономике. 4-я Всероссийская межвузовская научно-практическая конференция. МИЭТ, 2011.
2. Международная научно-практическая конференция «Актуальные проблемы науки». Тамбов, 2011.
3. Микроэлектроника и информатика - 2012. 19-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов. МИЭТ, 2012.
4. Международная научно-практическая конференция «Актуальные научные вопросы: реальность и перспективы». Тамбов, 2012.
5. XV Международная телекоммуникационная конференция молодых ученых и студентов «МОЛОДЕЖЬ И НАУКА». НИЯУ МИФИ, 2012.
6. Международная научно-практическая конференция «Теоретические и прикладные проблемы науки и образования в 21 веке». Тамбов, 2012.
7. Международная научно-практическая конференция «Современные вопросы науки и образования -XXI век». Тамбов, 2012.
8. Актуальные проблемы информатизации в науке, образовании и экономике. 6-я Всероссийская межвузовская научно-практическая конференция. МИЭТ, 2013.
9. Микроэлектроника и информатика - 2013. 20-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов. МИЭТ, 2013.
10. Международная научно-практическая конференция «Теоретические и прикладные вопросы науки и образования». Тамбов, 2013.
11. Микроэлектроника и информатика - 2014. 21-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов. МИЭТ, 2014.
12. Актуальные проблемы информатизации в науке, образовании и экономике. 7-я Всероссийская межвузовская научно-практическая конференция. МИЭТ, 2014.
13. Международная конференция «Инновационные подходы к решению технико-экономических проблем». МИЭТ, 2014.
14. Микроэлектроника и информатика - 2015. 22-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов. МИЭТ, 2015.
15. Fifth International Conference on Internet Technologies and Applications (ITA 15), Glyndwr University, Wrexham, North Wales, UK, 2015.
16. IEEE NW Russia Young Researches in Electrical and Electronic Engineering Conference (EIConRusNW). St. Petersburg, Russia, 2015.
17. Микроэлектроника и информатика - 2018. 25-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов. МИЭТ, 2018.
Публикации. По материалам диссертации опубликовано 10 тезисов докладов и 9 статей, в том числе 2 в журналах, входящих в перечень ВАК, и 2 работы включены в базу Scopus. Получено свидетельство о государственной регистрации программы для ЭВМ №2018660476.
Структура и объём диссертационной работы. Рукопись диссертационной работы, общим объемом 123 страницы, состоит из введения, четырех глав, заключения, списка литературы из 38 источников и трёх приложений.
ГЛАВА 1. ИЕРАРХИЧЕСКИЕ СТРУКТУРЫ И ИХ ПРИМЕНЕНИЕ В
ТЕХНИКЕ И ПРОИЗВОДСТВЕ
1.1 Иерархические системы
Широкое использование иерархий в управлении и организации производства опирается, в первую очередь, на их универсальность. В общем случае, иерархическая система управления представляется как организационная древовидная структура, включающая множество вершин и связей между ними. Кроме того, для функционирования иерархий необходим формализованный механизм взаимодействия узлов и целевая функция, определяющая существование системы. Современные информационные технологии и компьютерные сети значительно облегчают иерархическое управление, позволяют автоматизировать основные производственные процедуры.
Теория иерархических систем является разделом общей теории систем и применяется, как правило, для анализа сложных систем. Ее основы заложены в трудах экономиста Симона Гербера, химика Ильи Пригожина и психолога Жана Пэже. Сегодня теория иерархий использует относительно небольшой набор понятий для описания систем с многоуровневой структурой и их поведения. Рассмотрим основные понятия, характеризующие иерархии [1].
Упорядоченность: иерархия представляет собой частично упорядоченное множество, т.е. совокупность частей с упорядоченными асимметричными отношениями внутри целого - верхние и нижние уровни и асимметричная взаимосвязь между ними.
Иерархические уровни: уровни состоят из множества объектов с характерными свойствами. В общем случае объект может принадлежать любому количеству уровней, в зависимости от целевой функции иерархии.
Организационные правила: набор определений, которые позволяют отнести объект к определенному уровню иерархии.
Наблюдаемость: это свойство системы позволяет определять ее параметры на всех уровнях, начиная с элементов самого нижнего уровня и заканчивая всем системой. Иными словами, декомпозицию системы следует проводить до тех пор, пока параметры подсистем будут контролируемыми.
Измеримость: параметры иерархической системы, определяющие функциональность и ее, и отдельных элементов, должны быть измеряемы. Это значит, что критерий наблюдаемости должен распространяться не только на функциональные параметры системы, но и на те, от которых они зависят. В противном случае наблюдения за параметрами будут генерировать изолированные классы событий.
Упорядочивание уровней: набор правил или критериев, которые позволяют определить подчиненность уровней иерархии.
Вложенность: если объекты иерархии представляют части целого, то она называется вложенной. Вложенные иерархии получаются с помощью декомпозиции сложной системы на отдельные элементы, которые могут функционировать только в составе целого. Невложенные иерархии состоят из объектов, способных существовать и вне системы.
Дуализм: объекты в иерархии обладают двойственностью - они могут быть старшими по отношению к элементам более низкого уровня, и подчиненными по отношению к вышестоящим объектам. Артур Кёстлер ввел для отражения двойственности объектов термин <Ло1оп» - объект в иерархии, который является одновременно и целым и частью целого.
Ограничения и возможности: с одной стороны, каждый элемент может делать только то, что ему разрешено вышестоящим элементом, а с другой -только то, на что он способен. Здесь нет конфликта - иерархия создана для решения единой задачи и интересы каждого объекта подчиняются общей цели.
Сложность иерархии и простота управления: по мере того как система совершенствуется ее иерархия становится более продуманной, а поведение упрощается. Появление промежуточных уровней не только не усложняет процесс управления, но и снижает нагрузку с вышестоящих
13
уровней. Поэтому многоуровневые иерархии, которые ассоциируются со сложноорганизованными системами, не всегда будут сложны в управлении.
Сложность и размерность: иерархическая структура с большим количеством объектов на самом низком уровне соответствует «плоской иерархии», которая не является сложной с точки зрения управления. Напротив, структурно сложные системы даже небольшой размерности порождают сложное поведение.
Социальные системы, окружающие людей, часто организованы как иерархии. Отношения начальник-подчиненный присущи большинству известных нам организационных структур. Приведенные выше свойства иерархий являются достаточно общими и могут проявляться в реальных иерархических системах по-разному, отражая особенности их целевой функции.
Но есть некоторые особенности, которые можно найти в большинстве систем, построенных иерархически. Каждый элемент иерархии является связанным узлом в дереве. Цели, задачи и команды поступают в подчиненные узлы от вышестоящих и образуют нисходящий поток, в то время как измеряемые параметры и результаты выполнения команд проходят вверх по дереву от подчиненных в вышестоящие узлы. В частном случае узлы могут обмениваться сообщениями (не командами) и со своими соседями, но эти связи не отображаются в иерархической структуре.
Иерархические системы управления имеют и общие свойства, связанные с планированием и диспетчеризацией.
Более высокий уровень иерархии работает с более длинными интервалами планирования, чем элементы нижних уровней.
Поскольку в настоящем исследовании нас интересуют вопросы управления в иерархиях, отметим и еще одну их характерную черту. Нижние и верхние слои иерархий решают абсолютно разные задачи. На примере производственных компьютерных АСУ можно описать это различие следующим образом:
• нижний уровень решает задачи управления конечными технологическими устройствами;
• промежуточный уровень 1 (производственный участок) координирует работу конгломератов однотипного оборудования;
• промежуточный уровень 2 (цех) координирует работу конгломератов разнородного оборудования;
• промежуточный уровень 3 (завод, филиал) контролирует выполнение производственного плана и при необходимости вносит тактические коррективы;
• верхний уровень (производственное объединение) решает задачи стратегического планирования производства.
Такое разделение функций показывает, что учет особенностей конкретного производства происходит на нижних уровнях управления, а принципы работы АСУ верхних эшелонов иерархий более универсальны.
1.2 Иерархический подход в проектировании
В работе [2] представлен пример использования иерархий при проектировании сложных систем. Предлагаемый авторами подход реализует идею нисходящего проектирования, когда конечная цель разработки все более детализируется при декомпозиции изделия. При этом процесс декомпозиции представляется в виде иерархической структуры. В оригинальном варианте такой подход называется Analytical Target Cascading (ATC).
Эффективность предлагаемого решения авторы исследуют на примере проектирования авиационной техники. Они показывают, что ATC является полезным инструментом для проектирования сложных изделий, особенно для базирующихся на решениях из нескольких областей науки [3, 4].
Кратко рассмотрим пример использования АТС. На рис. 1 показан упрощенный вариант иерархической декомпозиции конструкции самолета. Представлены 3 уровня, семь основных элементов и связи между ними.
Отметим, что в предлагаемой модели отсутствуют связи между элементами одного уровня, а также не используется множественная соподчиненность элементов. Такое упрощение позволяет представить проектное решение как задачу оптимизации.
Рис. 1 Иерархическая декомпозиция конструкции самолета [4] Критериальное уравнение представляется в принятом в АТС виде:
У (1+1)]
7*
ч
шт . о - + о - Я1-1(-)Р)\\ +
,У-1
- Уц
2
I М1 +
2
кеСп
£ \К о (Цк - + £ о - у(++1)к)
кеСц кеСц
при условии: дц(хц) < 0 , к^(х^) = 0 где = $рТ1](х1])>Щ.к = 5кги(хи)к е Сц
[Т Т ¿7 ¿Т"1 "I ^
хц ,Уц >К(1+1)к>К(1-1)р\
В этом уравнении неизвестными, будут значения переменных х^, которые характеризуют параметры элементарного решения. Именно они и определяются в процессе оптимизации. Для нахождения оптимальных проектных решений авторы используют квадратичное программирование. На
каждой итерации проводится анализ совместимости локальных параметров проекта, что обеспечивает целостность решения. В процессе поиска решения дочерние элементы иерархии генерируют варианты. Они используются в качестве входных параметров для их родительских узлов, которые могут корректировать проектные цели дочерних узлов.
10 20 30 40 50 60 70 80 Рис. 2 Оптимальное оперение Boing 747-400 [4] Для иллюстрации возможностей метода АТС в статье приведен пример решения задачи оптимизации конструкции самолета Boing 747-400 для трех режимов - взлёт, подъём и круизное пилотирование. Модель АТС использует в этом случае алгебраические соотношения и ставит целью определение геометрических параметров элементов оперения лайнера.
На рисунке 2 представлен результат оптимизации. Для наглядности показана и геометрия крыльев серийных самолетов.
В рассмотренном примере метод иерархического проектирования (ATC) убедительно продемонстрировал свои преимущества перед
17
традиционными методами. Однако следует отметить, что такой результат получен не только за счет формализации целей проекта и декомпозиции, но и за счет мощных аналитических методов, используемых на отдельных этапах проектирования.
1.3 Управление производственными иерархиями
Представление производственных систем как иерархий это один из наиболее применяемых методов уменьшения их масштабов и сложности. При этом общая производственная цель разбивается на ряд более мелких, и более простых для управления задач. Такое разбиение возможно как на структурном, так и на временном уровнях. Одной из проблем при этом будет нахождение оптимального числа иерархических уровней системы и дискретности временных отрезков. Иерархии хорошо подходят для описания статических структур, планирования работы производственных единиц. В случае динамических структур, что гораздо ближе к реальным производственным ситуациям, иерархическое управление требует оперативной реакции, а это связано с высокой вычислительной сложностью. В качестве одного из подходов к решению этой проблемы используется более мелкое разбиение системы на подуровни, что снижает сложность управления ими, но повышает сложность задачи координации их совместной работы. Выигрыш получается за счет того, что координатор имеет больше времени для принятия решения. Интересно отметить, что иерархические модели позволяют поддерживать динамическое равновесие между автономной работой отдельных узлов и централизованным управлением всей производственной структурой в распределенных системах. Такой подход предполагает возможность динамического переопределения целей для отдельных узлов со стороны ведущего узла.
Авторы работы [5] отмечают, что именно переопределение целей и перепланирование работы подчиненных узлов придаёт системе динамические свойства, адаптивность по отношению к изменению условий выполнения задания. В статье представлена модель управления для
18
многоуровневого производства, интегрирующая динамический и статический подходы.
Статическая иерархическая структура системы планирования производства показана на рисунке 3. В ее основе лежат модели, предложенные в работах [6], [7] и [8].
производственными
элементами
Рис. 3 Шестиуровневая статическая модель управления.
Функциональное распределение задач между уровнями:
1- Системное планирование определяет производственные ресурсы, которые потребуются для достижения долгосрочных целей. К целям можно отнести объемы производства различных категорий продукции, а ресурсами будет рабочая сила, оборудование, сырье и материалы.
2- Производственное планирование устанавливает возможные объемы производства для укрупненных классов продукции с учетом производственных мощностей и рыночных условий.
3- Потоковое планирование определяет размеры партий отдельных узлов и деталей, время выполнения всех производственных процессов.
4- Диспетчирование заключается во временной координации производственных потоков путем установления последовательности и сроков проведения отдельных операций.
5- Управление производственными ячейками (цех, участок, склад).
6- Автоматизированное управление производственными элементами (рабочие станции, станки).
Модели на верхних уровнях иерархии формируют целевые параметры и ограничения для моделей нижних уровней. Детализация моделей нижнего уровня значительно выше, но они ориентированы на меньшее число продуктов. Временные рамки для них тоже более узкие и имеют некоторую цикличность, связанную с календарным планированием.
Рассмотрим пример использования динамического планирования на участке сборки электронных плат, например, материнских плат для компьютеров. Производственный процесс включает две операции: монтаж компонентов на первой и тестирование изделия на второй. На участке производится множество типов плат. На рис. 4 показана иерархическая модель производственного объекта, а на рис. 5 его организационная структура.
Рис. 4 Модель производственного участка
Для простоты рассмотрим взаимодействие планировщика потока только диспетчера с одним диспетчером. Планировщик формирует задания для каждого центра обработки плат (рис. 3), которые состоят из трех типов установок:
тип 1 - выполняет сборочно-монтажные операции на печатных платах; тип 2 - выполняет тестирование смонтированных плат; тип 3 - выполняет обе функции.
Похожие диссертационные работы по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Теоретические основы и технические решения программно-аппаратного обеспечения синтеза логических мультиконтроллеров2022 год, доктор наук Ватутин Эдуард Игоревич
Разработка методики и алгоритмов верификации гетерогенных многоядерных систем на основе графовой модели иерархии когерентной кэш-памяти2021 год, кандидат наук Гаращенко Антон Витальевич
Разработка и анализ программно-алгоритмических средств высокоскоростной обработки графической информации и управления в бортовых приборах визуализации изображений2009 год, кандидат технических наук Милов, Алексей Николаевич
Методики, модели и алгоритмы комплексной многокритериальной оптимизации автоматизированных технологических систем2014 год, кандидат наук Пайе Тэйн Наинг
Методы организации параллельных вычислений в системах обработки данных на базе процессоров с суперскалярной архитектурой1999 год, доктор технических наук Скворцов, Сергей Владимирович
Список литературы диссертационного исследования кандидат наук Сай Вин Мо, 2018 год
Список литературы
1. Ahl V. and T. F. H. Allen. Hierarchy theory, a vision, vocabulary and epistemology. // Georgia Journal of Ecological Anthropology. Vol. 3, 1999. Columbia University Press, 206 pp
2. James Allison, David Walsh, Michael Kokkolaras, Panos Y. Papalambros, Matthew Cartmell. "Analytical Target Cascading in Aircraft Design", American Institute of Aeronautics and Astronautics, 2005
3. Michelena N., Kim H., Papalambros P. "A System Partitioning and Optimization Approach to Target Cascading", Proceedings of the 12th International Conference on Engineering Design, Munich, Germany, 1999.
4. Kim H., Michelena N., Papalambros P., Jiang, T. "Target Cascading in Optimal System Design", Journal of Mechanical Design, Vol. 125, September 2003, pp. 474-480.
5. Ronald F. McPherson, K. Preston White, Jr. "Management Control and the Manufacturing Hierarchy: Managing Integrated Manufacturing Organizations", The International Journal of Human Factors in Manufacturing, Vol. 4(2), 1994, John Wiley & Sons, Inc. CCC 1045-2699/93/020121-23, pp.121144.
6. Maxwell W., Muckstadt J.A., Thomas J., and VanderEecken J., "A Modeling Framework for Planning and Control of Production in Discrete Parts Manufacturing and Assembly Systems", Interfaces, 1983, Vol.13, pp. 92-104.
7. Abraham, C., Dietrich, B., Graves, S., and Maxwell, W., "A Research Agenda for Models to Plan and Schedule Manufacturing", 1985, IBM Research Center, Yorktown Heights, N.Y.
8. Hax A.C. and Meal H.C., "Hierarchical Integration of Production Planning and Scheduling", 1975, Studies in Management Sciences: Logistics, vol. 1, M.A. Geisler (ed.) (North-Holland-American Elsevier) pp. 53-69.
9. Kanstantsin Miatliuk, Yoon Hyuk Kim, Kyungsoo Kim, Francishek Siemieniako, "Use of hierarchical system technology in mechatronic design", Mechatronics 20 (2010) pp. 335-339.
10. Joseph Kimemia, Stanley B. Gershwin. "An algorithm for the computer control of a flexible manufacturing system", 1983, AIIE Transactions, Vol. 15, (4), pp. 353-362
11. Novikava S., Miatliuk K., Gancharova S., Ivanow A., Zhybul A., Danichaw A., et al. "Aed theory and hierarchical knowledge networks", Stud Inform Control, 1997, Vol. 6, pp. 75-85.
12. Miatliuk K., Siemieniako F. "Theoretical basis of coordination technology for systems design in robotics". In: Proceedings of 11th IEEE international conference on models and methods in automation and robotics, Miedzyzdroje, Poland; 2005. pp. 1165-70.
13. Miatliuk K., Gosiewski Z., Siemieniako F. "Coordination technology in the assembly operations design". In: Proceedings of IEEE joint SICE-ICASE international conference, Busan, Korea; 2006. pp. 2243-6.
14. Miatliuk K. "Formal model of coordinator of two-level system". Minsk: Belarus Science Academy Press; 1987 (in Russian)
15. Yesin K., Nelson B. "Robust CAD model based visual tracking for 3D microassembly using image space potentials". In: Proceedings of IEEE international conference on robotics and automation, New Orleans, USA; 2004. pp. 1868-1873.
16. Хохлюк В. И. Методы дискретной оптимизации: Учеб. пособие. Новосиб. гос. ун-т. Новосибирск, 2013. Ч. 1. 154 с.
17. Кувайскова Ю.Е. Алгоритмы дискретной математики: учебное пособие, Ульяновск: УлГТУ, 2017. - 99 с.
18. Банди Б. Основы линейного программирования: Пер. с англ. - М.: Радио и связь, 1989. - 176 с.: ил.
19. Kurt Rohloff, Jianming Ye, Joseph Loyall, Richard Schantz. "A Hierarchical Control System for Dynamic Resource Management". In Proceedings Work-in-progress Session of the 12th Real Time and Embedded technology and Applications Symposium, 2006, San Jose, USA
20. Saracoglu B.O. "Selecting industrial investment locations in master plans of countries". European J. of Industrial Engineering. Inderscience Enterprises Ltd., 2013, Vol. 7 (4), pp. 416-441
21. Saaty Thomas L. "Relative Measurement and its Generalization in Decision Making: Why Pairwise Comparisons are Central in Mathematics for the Measurement of Intangible Factors - The Analytic Hierarchy/Network Process", Review of the Royal Academy of Exact, Physical and Natural Sciences, Series A: Mathematics (RACSAM), 2008, Vol. 102 (2), pp. 251-318.
22. Forman Ernest H., Saul I. Gass. "The analytical hierarchy process—an exposition". Operations Research, 2001, Vol. 49 (4), pp. 469-487.
23. Saaty Thomas L., Peniwati Kirti. "Group Decision Making: Drawing out and Reconciling Differences". 2008, Pittsburgh, Pennsylvania: RWS Publications.
24. Berrittella M., A. Certa, M. Enea, P. Zito. "An Analytic Hierarchy Process for the Evaluation of Transport Policies to Reduce Climate Change Impacts". 2007, Fondazione Eni Enrico Mattei, Milano.
25. McCaffrey, James. "Test Run: The Analytic Hierarchy Process". MSDN Magazine, June 2005.
26. Dey Prasanta Kumar. "Analytic Hierarchy Process Analyzes Risk of Operating Cross-Country Petroleum Pipelines in India". Natural Hazards Review. 2003, Vol. 4 (4), pp. 213-221.
27. Steiguer J.E., Jennifer Duberstein, Vicente Lopes. "The Analytic Hierarchy Process as a Means for Integrated Watershed Management". In Proceedings of Renard Kenneth G. First Interagency Conference on Research on the Watersheds. Benson, Arizona: U.S. Department of Agriculture, Agricultural Research Service. October 2003, pp. 736-740.
28. Lanndon A. Ocampo, Eppie E. Clark, Michael Angelo B. Promentilla. "Computing sustainable manufacturing index with fuzzy analytic hierarchy process", International Journal of Sustainable Engineering, 2016, Vol. 9 (5), pp. 305-314/
29. Joung C. B., J. Carrell, P. Sarkar, S. C. Feng. "Categorization of Indicators for Sustainable Manufacturing." Ecological Indicators, 2013, Vol. 24, pp. 148-157.
30. С.А. Лупин, Сай Вин Мо, Ай Мин Тайк. Применимость алгоритма полного перебора вариантов при распределении работы в иерархических системах. Информационные системы и технологии. №4(90), 2015, с. 19-27.
31. Сай Вин Мо, Ай Мин Тайк. Проблемы анализа работы иерархических систем управления. // Международная заочная научно-практическая конференция «Теоретические и прикладные вопросы науки и образования», Россия, Тамбов, 31 августа 2013 г.
32. Сай Вин Мо, Ай Мин Тайк. Задача анализа эффективности иерархических систем управления. // Актуальные проблемы информатизации в науке, образовании и экономике - 2013. 6-я Всероссийская межвузовская научно-практическая конференция. М.: МИЭТ, 2013.-95с.: ил.
33. Sai Win Maw, Aye Min Thaik, Sergey Lupin, Dmitry Kovalenko, John Worden. "Job Distribution in Hierarchic Systems". In Proceedings of the Fifth International Conference on Internet Technologies and Applications (ITA 15), Glyndwr University, Wrexham, North Wales, UK, 8-11 September 2015.
34. С.А. Лупин, Сай Вин Мо, Ай Мин Тайк, Т.А. Олейник, Сое Мое Аунг. Эффективность параллельной реализации алгоритма перебора при распределении работы в иерархиях. Известия Тульского государственного университета. Технические науки. Вып. 9: в 2 ч. Ч. 1. Тула: Изд-во ТулГУ, 2017, с. 251-260
35. Элементы теории графов: учебное пособие / Н.А.Калугин, А.Н.Калугин. - Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2013. - 48с.: ил.
36. T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to Algorithms. — 3rd edition. — The MIT Press, 2009, p.1293
37. Sai Win Maw, Anastasia Davydova, Sergey Lupin, Soe Moe Aung, R. Chakirov. "Evaluating the Effectiveness of Hierarchical Management Systems". In Proceedings of 2015 IEEE NW Russia Young Researches in Electrical and
97
Electronic Engineering Conference (EIConRusNW) St. Petersburg, Russia, February 2 - 4, 2015
38. Stephen Blair-Chappell, Andrew Stokes. Parallel Programming with Intel Parallel Studio. John Willey & Sons, Inc. Indianapolis, 2012
Приложение 1. Фрагменты программного кода
Иерархические структуры 0-типа
#include "stdafx.h"
#include<conio.h>
#include<fstream>
#include<stdlib.h>
#include<iostream>
#include <omp.h>
#include<time.h>
using namespace std;
const int sizen=3;
double
a[sizen],b[sizen],c[sizen],d[sizen],e[sizen],f[sizen],g[sizen];
int _tmain(int argc, _TCHAR* argv[]) {
double countermatrix[30][3],sourcework_array[sizen];
int count=0,cloc=0,helpcount=0,controlloop=0; fstream ability;
ability.open("d:\\secondability.txt",ios::in); if(!ability){
cerr<<"There is no ability file"; exit(1);
}
while(ability){
ability>>sourcework_array[count++];
}
fstream ability1;
ability1.open("d:\\secondclock.txt",ios::in); if (!ability1){
cerr<<"There is no clock file"; exit(1);
}
while(ability1){
if(cloc<sizen){
ability1>>a[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*2)) && (cloc>=sizen) ){ ability1>>b[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*3)) && (cloc>=(sizen*2)) ){ ability1>>c[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*4)) && (cloc>=(sizen*3)) ){ ability1>>d[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*5)) && (cloc>=(sizen*4)) ){ ability1>>e[helpcount]; helpcount++;
if(helpcount==3) {
helpcount=0;
}
}
else if( (cloc<(sizen*6)) && (cloc>=(sizen*5)) ){ ability1>>f[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else{
ability1>>g[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
cloc++;
}
controlloop=cloc/3; cout<<endl<<endl;
double subwork_one,subwork_two,subwork_three;
int ful=0,size_node=0;
subwork_one=sourcework_array[0];
subwork_two=sourcework_array[1];
subwork_three=sourcework_array[2];
for(int i=0;i<=sourcework_array[0];i++){
for(int v=0;v<=sourcework_array[1];v++){
for(int j=0;j<=sourcework_array[2];j++){ for(int k=0;k<sizen;k++){ if(k==0){
countermatrix[size_node][k]=subwork_one;
}
else if(k==1){
countermatrix[size_node][k]=subwork_two;
}
else{
countermatrix[size_node][k]=subwork_three;
ful=1; if(ful==1){
subwork_three=subwork_three-1;
}
size_node++;
}
subwork_two=subwork_two-1; subwork_three=sourcework_array[2];
}
subwork_one=subwork_one-1;
subwork_two=sourcework_array[1];
subwork_three=sourcework_array[2];
}
cout<<endl;
double save_time[7] = {0,0,0,0,0,0,0}; double save_threadtime[30]; for(int st=0;st<size_node;st++){ save_threadtime[st]=10000;
}
double
check_jobone,check_jobtwo,check_jobthree,calc_time=0,process_tim e=0,receive_time;
int i,j,k,l,n,x,p,i_time,core_number=2 0; #pragma omp parallel for num_threads(core_number)
private(i,j,k,l,n,x,p,i_time,process_time,receive_time,check_job one,check_jobtwo,check_jobthree,save_time) for(i=0;i<size_node;i++){ receive_time=10000; for(j=0;j<size_node;j++){
for(k=0;k<size_node;k++){
for(l=0;l<size_node;l++){
for(n=0;n<size_node;n++){
for(x=0;x<size_node;x++){
for(p=0;p<size node;p++){
check_jobone=countermatrix[i][0]+countermatrix[j][0]+counte rmatrix[k][0]+countermatrix[l][0]+countermatrix[n][0]+countermat rix[x][0]+countermatrix[p][0];
if(check_jobone==sourcework_array[0]){
check_jobtwo=countermatrix[i][1]+countermatrix[j][1]+counte rmatrix[k][1]+countermatrix[l][1]+countermatrix[n][1]+countermat rix[x][1]+countermatrix[p][1];
if(check_jobtwo==sourcework_array[1]){
check_jobthree=countermatrix[i][2]+countermatrix[j][2]+coun termatrix[k][2]+countermatrix[l][2]+countermatrix[n][2]+counterm atrix[x][2]+countermatrix[p][2];
if(check_jobthree==sourcework_array[2]){
save_time[0]+=(countermatrix[i][0]/a[0])+(countermatrix[i][ 1]/a[1])+(countermatrix[i][2]/a[2]);
save_time[1]+=(countermatrix[j][0]/b[0])+(countermatrix[j][ 1]/b[1])+(countermatrix[j][2]/b[2]);
save_time[2]+=(countermatrix[k][0]/c[0])+(countermatrix[k][ 1]/c[1])+(countermatrix[k][2]/c[2]);
save_time[3]+=(countermatrix[l][0]/d[0])+(countermatrix[l][ 1]/d[1])+(countermatrix[l][2]/d[2]);
save_time[4]+=(countermatrix[n][0]/e[0])+(countermatrix[n][ 1]/e[1])+(countermatrix[n][2]/e[2]);
save_time[5]+=(countermatrix[x][0]/f[0])+(countermatrix[x][ 1]/f[1])+(countermatrix[x][2]/f[2]);
save_time[6]+=(countermatrix[p][0]/g[0])+(countermatrix[p][ 1]/g[1])+(countermatrix[p][2]/g[2]);
for(i_time=0;i_time<7;i_time++){
if(process_time<save_time[i_time] && save_time[i_time]>0){ process_time=save_time[i_time];
}
save_time[i_time]=0;
}
if(receive_time>=process_time && process_time>0 ){ receive_time=process_time;
}
process_time=0;
}
}
}
}
}
}
}
save_threadtime[i]=receive_time;
}
cout<<"Finished\t" ; return 0;
}
Иерархические структуры 1-типа
#include "stdafx.h"
#include<conio.h>
#include<fstream>
#include<stdlib.h>
#include<iostream>
#include <omp.h>
#include<time.h>
using namespace std;
const int sizen=3;
double
a[sizen],b[sizen],c[sizen],d[sizen],e[sizen],f[sizen],g[sizen];
int _tmain(int argc, _TCHAR* argv[]) {
double countermatrix[30][3],sourcework_array[sizen];
int count=0,cloc=0,helpcount=0,controlloop=0; fstream ability;
ability.open("d:\\secondability.txt",ios::in);
if(!ability){
cerr<<" There is no ability file"; exit(1);
}
while(ability){
ability>>sourcework_array[count++];
}
fstream ability1;
ability1.open("d:\\secondclock.txt",ios::in); if(!ability1){
cerr<<" There is no clock file"; exit(1);
}
while(ability1){
if(cloc<sizen){
ability1>>a[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*2)) && (cloc>=sizen) ){ ability1>>b[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*3)) && (cloc>=(sizen*2)) ){ ability1>>c[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*4)) && (cloc>=(sizen*3)) ){
ability1>>d[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*5)) && (cloc>=(sizen*4)) ){ ability1>>e[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*6)) && (cloc>=(sizen*5)) ){ ability1>>f[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else{
ability1>>g[helpcount]; helpcount++;
if(helpcount==3) {
helpcount=0;
}
}
cloc++;
}
controlloop=cloc/3; cout<<endl<<endl;
double subwork_one,subwork_two,subwork_three; int ful=0,size_node=0; subwork_one=sourcework_array[0]; subwork_two=sourcework_array[1];
subwork_three=sourcework_array[2]; for(int i=0;i<=sourcework_array[0];i++){
for(int v=0;v<=sourcework_array[1];v++){
for(int j=0;j<=sourcework_array[2];j++){ for(int k=0;k<sizen;k++){ if(k==0){
countermatrix[size_node][k]=subwork_one;
}
else if(k==1){
countermatrix[size_node][k]=subwork_two;
}
else{
countermatrix[size_node][k]=subwork_three;
}
}
ful=1;
if(ful==1){
subwork_three=subwork_three-1;
}
size_node++;
}
subwork_two=subwork_two-1; subwork_three=sourcework_array[2];
}
subwork_one=subwork_one-1;
subwork_two=sourcework_array[1];
subwork_three=sourcework_array[2];
}
double save_time[7]={0,0,0,0,0,0,0}; double save_threadtime[30]; for(int st=0;st<size_node;st++){ save_threadtime[st]=10000;
}
double
check_jobone,check_jobtwo,check_jobthree,calc_time=0,process_tim e=0,receive_time;
int i,j,k,l,n,x,p,i_time,core_number=5; #pragma omp parallel for num_threads(core_number)
private(i,j,k,l,n,x,p,i_time,process_time,receive_time,check_job one,check_jobtwo,check_jobthree,save_time) for(i=0;i<size_node;i++){ receive_time=10000; for(j=0;j<size_node;j++){
for(k=0;k<size_node;k++){
for(l=0;l<size_node;l++){
for(n=0;n<size_node;n++){
for(x=0;x<size_node;x++){
for(p=0;p<size_node;p++){ check_jobone=countermatrix[i][0]+countermatrix[j][0]+counte rmatrix[k][0]+countermatrix[l][0]+countermatrix[n][0]+countermat rix[x][0]+countermatrix[p][0];
if(check_jobone==sourcework_array[0]){
check_jobtwo=countermatrix[i][1]+countermatrix[j][1]+counte rmatrix[k][1]+countermatrix[l][1]+countermatrix[n][1]+countermat rix[x][1]+countermatrix[p][1];
if(check_jobtwo==sourcework_array[1])
{
check_jobthree=countermatrix[i][2]+countermatrix[j][2]+coun termatrix[k][2]+countermatrix[l][2]+countermatrix[n][2]+counterm atrix[x][2]+countermatrix[p][2];
if(check_jobthree==sourcework_array[2]){
save_time[0]+=(countermatrix[i][0]/a[0])+(countermatrix[i][ 1]/a[1])+(countermatrix[i][2]/a[2]);
save_time[1]+=(countermatrix[j][0]/b[0])+(countermatrix[j][ 1]/b[1])+(countermatrix[j][2]/b[2]);
save_time[2]+=(countermatrix[k][0]/c[0])+(countermatrix[k][ 1]/c[1])+(countermatrix[k][2]/c[2]);
save_time[3]+=(countermatrix[l][0]/d[0])+(countermatrix[l][ 1]/d[1])+(countermatrix[l][2]/d[2]);
save_time[4]+=(countermatrix[n][0]/e[0])+(countermatrix[n][ 1]/e[1])+(countermatrix[n][2]/e[2]);
save_time[5]+=(countermatrix[x][0]/f[0])+(countermatrix[x][ 1]/f[1])+(countermatrix[x][2]/f[2]);
save_time[6]+=(countermatrix[p][0]/g[0])+(countermatrix[p][ 1]/g[1])+(countermatrix[p][2]/g[2]); if(save_time[3]<save_time[4]){ save_time[3]=save_time[4];
}
if(save_time[5]<save_time[6]){ save_time[5]=save_time[6];
}
save_time[3]+=save_time[1]; save_time[5]+=save_time[2]; if(save_time[3]<save_time[5]){ save_time[3]=save_time[5];
}
process_time=save_time[3]+save_time[0]; for(i_time=0;i_time<7;i_time++){ save_time[i_time]=0;
}
if(receive_time>=process_time && process_time>0 ){ receive_time=process_time;
}
process_time=0;
}
}
}
}
}
}
}
}
}
save_threadtime[i]=receive_time;
}
cout<<"Finished"; return 0;
Иерархические структуры 0-типа (Xeon Phi)
#include<fstream> #include<stdlib.h> #include<iostream> #include<omp.h> #include<time.h> using namespace std; const int sizen=3; double
a[sizen],b[sizen],c[sizen],d[sizen],e[sizen],f[sizen],g[sizen];
int main(int argc, char *argv[]) {
double countermatrix[30][3],sourcework_array[sizen];
int count=0,cloc=0,helpcount=0,controlloop=0; fstream ability;
ability.open("secondability.txt",ios::in); if(!ability){
cerr<<" There is no ability file"; exit(1);
}
while(ability){
ability>>sourcework_array[count++];
}
fstream ability1;
ability1.open("secondclock.txt",ios::in); if (!ability1){
cerr<<" There is no clock file"; exit(1);
}
while(ability1){
if(cloc<sizen){
ability1>>a[helpcount];
helpcount++;
if(helpcount==3){
helpcount=0;
else if( (cloc<(sizen*2)) && (cloc>=sizen) ){ ability1>>b[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*3)) && (cloc>=(sizen*2)) ability1>>c[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*4)) && (cloc>=(sizen*3) ability1>>d[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*5)) && (cloc>=(sizen*4)) ability1>>e[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
else if( (cloc<(sizen*6)) && (cloc>=(sizen*5)) ability1>>f[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
else{
ability1>>g[helpcount]; helpcount++; if(helpcount==3){ helpcount=0;
}
}
cloc++;
}
controlloop=cloc/3;
double subwork_one,subwork_two,subwork_three;
int ful=0,size_node=0;
subwork_one=sourcework_array[0];
subwork_two=sourcework_array[1];
subwork_three=sourcework_array[2];
for(int i=0;i<=sourcework_array[0];i++){
for(int v=0;v<=sourcework_array[1];v++){
for(int j=0;j<=sourcework_array[2];j++){ for(int k=0;k<sizen;k++){ if(k==0){
countermatrix[size_node][k]=subwork_one;
}
else if(k==1){
countermatrix[size_node][k]=subwork_two;
}
else{
countermatrix[size_node][k]=subwork_three;
}
}
ful=1; if(ful==1){
subwork_three=subwork_three-1;
}
size_node++;
subwork_two=subwork_two-1; subwork_three=sourcework_array[2];
subwork_one=subwork_one-1;
subwork_two=sourcework_array[1];
subwork_three=sourcework_array[2];
}
cout<<endl;
double save_time[7]={0,0,0,0,0,0,0}; double save_threadtime[30]; for(int st=0;st<size_node;st++){ save_threadtime[st]=10000;
}
double check_jobone,check_jobtwo,check_jobthree;
int i,j,k,l,n,x,p,tempindex,i_time,core_number,number=0;
cout<<"Enter the core number=====>";
cin>>core_number;
cout<<endl;
double
stime,etime,totaltime,calc_time=0,process_time=0,receive_time;
stime=omp_get_wtime(); #pragma omp parallel for num_threads(core_number)
private(i,j,k,l,n,x,p,i_time,tempindex,process_time,receive_time ,check_jobone,check_jobtwo,check_jobthree,save_time)
for(tempindex=0;tempindex<size_node*size_node;tempindex++){ receive_time=10000; i=tempindex/size_node; j=tempindex-(i*size_node); for(k=0;k<size_node;k++){
receive_time=10000; for(l=0;l<size_node;l++) {
for(n=0;n<size_node;n++){
for(x=0;x<size_node;x++){
for(p=0;p<size_node;p++){
check_jobone=countermatrix[i][0]+countermatrix[j][0]+counte rmatrix[k][0]+countermatrix[l][0]+countermatrix[n][0]+countermat rix[x][0]+countermatrix[p][0];
if(check_jobone==sourcework_array[0]){
check_jobtwo=countermatrix[i][1]+countermatrix[j][1]+counte rmatrix[k][1]+countermatrix[l][1]+countermatrix[n][1]+countermat rix[x][1]+countermatrix[p][1];
if(check_jobtwo==sourcework_array[1]){
check_jobthree=countermatrix[i][2]+countermatrix[j][2]+coun termatrix[k][2]+countermatrix[l][2]+countermatrix[n][2]+counterm atrix[x][2]+countermatrix[p][2];
if(check_jobthree==sourcework_array[2]){
save_time[0]+=(countermatrix[i][0]/a[0])+(countermatrix[i][ 1]/a[1])+(countermatrix[i][2]/a[2]);
save_time[1]+=(countermatrix[j][0]/b[0])+(countermatrix[j][ 1]/b[1])+(countermatrix[j][2]/b[2]);
save_time[2]+=(countermatrix[k][0]/c[0])+(countermatrix[k][ 1]/c[1])+(countermatrix[k][2]/c[2]);
save_time[3]+=(countermatrix[l][0]/d[0])+(countermatrix[l][ 1]/d[1])+(countermatrix[l][2]/d[2]);
save_time[4]+=(countermatrix[n][0]/e[0])+(countermatrix[n][ 1]/e[1])+(countermatrix[n][2]/e[2]);
save_time[5]+=(countermatrix[x][0]/f[0])+(countermatrix[x][ 1]/f[1])+(countermatrix[x][2]/f[2]);
save_time[6]+=(countermatrix[p][0]/g[0])+(countermatrix[p][ 1]/g[1])+(countermatrix[p][2]/g[2]);
for(i_time=0;i_time<7;i_time++){
if(process_time<save_time[i_time] && save_time[i_time]>0){ process_time=save_time[i_time];
}
save_time[i_time]=0;
}
if(receive_time>=process_time && process_time>0 ){ receive_time=process_time;
}
process_time=0;
}
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.