
- •1. Введение
- •1.1. Задачи, стадии и этапы проектирования
- •1.2. Задачи коммерциализации: бизнес-план и жизненный цикл продукции
- •1.3. Вопросы для самоконтроля
- •2. Проектирование элементов мехатронных систем
- •2.1. Мехатроника – инструментарий для разработки робототехники
- •2.2. Программный инструментарий для проектирования мехатронных систем
- •2.3. MexBios Development StidioTm
- •2.4. Программное обеспечение VisSim
- •2.6. Вопросы для самоконтроля
- •3. Оптимизация пид-регулятора по заданному целевому функционалу
- •3.1. Основные требования к системе и математический аппарат
- •3.2. Требования к физической реализуемости модели
- •3.3. Формализация требований к системе: целевая функция
- •3.4. Особенности целевых функций при оптимизации регуляторов
- •3.5. Синтетические критерии оптимальности
- •3.6. Оптимизация ансамбля систем
- •3.7. Методы одномерной оптимизации
- •3.7.1. Прямые методы отыскания экстремума
- •3.7.2. Итеративный поиск
- •3.7.3. Метод Монте-Карло
- •3.7.4. Дихотомическое деление отрезка
- •3.7.5. Метод чисел Фибоначчи
- •3.7.6. Метод золотого сечения
- •3.8. Методы многопараметрической оптимизации
- •3.8.1. Случайный поиск
- •3.8.2. Метод исключения касательными
- •3.8.3. Градиентный метод
- •3.8.4. Метод Ньютона
- •3.8.5. Метод секущих
- •3.8.6. Метод покоординатного спуска
- •3.8.7. Метод Розенброка
- •3.8.8. Метод Хука – Дживса
- •3.8.9. Метод Нелдера – Мида (деформируемого многогранника)
- •3.8.10. Метод Флетчера-Рився (сопряженных градиентов)
- •3.8.11. Метод Девидона – Флетчера – Пауэлла (переменной метрики)
- •3.8.12. Метод локальной оптимизации
- •4. Эволюционные методы
- •4.1. Введение в эволюционные методы
- •4.2. Генетический алгоритм
- •4.3. Простой генетический алгоритм
- •4.4. Преимущества генетических алгоритмов
- •4.5. Пример с транспьютерными технологиями
- •4.6. Генетический метод комбинирования эвристик
- •5. ДинамическОе программирование
- •5.1. Принцип динамического программирования
- •Литература
- •ПриложенИя Приложение 1. Система технической документации на асу
- •Приложение 2. Выдержки из гост 34.601-90. Автоматизированные системы. Стадии создания
- •1. Общие положения
- •2. Стадии и этапы создания ас
- •Приложение 3. Выдержки из гост 34.602-89. Техническое задание на создание автоматизированной системы
- •1. Общие положения
- •2. Состав и содержание
- •3. Правила оформления
- •1. Исходные предпосылки создания комплекса
- •2. Взаимосвязь екс ас с другими системами и комплексами стандартов
- •1. Общие положения
- •2. Предварительные испытания
- •2.2. Автономные испытания
- •2.3. Комплексные испытания
- •3. Опытная эксплуатация
- •4. Приемочные испытания
- •1. Общие положения
- •2. Требования к содержанию документов
- •2.1. Схема организационной структуры
- •2.2. Описание организационной структуры
- •2.3. Технологическая инструкция
- •2.4. Инструкция по эксплуатации
- •2.5. Должностная инструкция
- •1. Виды и наименование документов
- •2. Комплектность документации
- •3. Обозначения документов
- •1. Введение 3
- •2. Проектирование элементов мехатронных систем 13
- •3. Оптимизация пид-регулятора по заданному целевому функционалу 19
- •4. Эволюционные методы 43
- •5. ДинамическОе программирование 56
4.5. Пример с транспьютерными технологиями
Транспьютерами называют микропроцессоры, позволяющие строить ЭВМ не по принципу «один ведущий, остальные ведомые», а по принципу «все и ведомые и ведущие». Любой транспьютер должен обладать возможностью контролировать свою исправность и занятость (валентность), а также воспринимать сообщения об исправности и занятости сопряженных с ним транспьютеров. В случае готовности он воспринимает задачу от занятых сопряженных транспьютеров, в случае наличия более одного валентного «соседа» он дробит задачу на более простые и передает эти подзадачи «соседям». В случае отсутствия двух или более валентных соседей транспьютер решает задачу сам и возвращает ее туда, откуда она пришла. Роль транспьютера могут выполнять отдельно стоящие ЭВМ, а роль связующих с ними каналов – компьютерные сети. Таким образом, мы приходим к сетевым технологиям.
Транспьютерные алгоритмы хорошо иллюстрируются в задаче отыскания экстремумов или максимумов по множествам.
Скажем, пусть имеется 64 случайных векторов, и требуется найти самый длинный вектор.
Первый транспьютер в первом цикле разобьет задачу на две подзадачи по 32 вектора и передаст двум соседям. Соседи во втором цикле передадут еще двум парам соседей задачи по 16 векторов. Количество задействованных транспьютеров будет расти по степенному закону, а количество векторов в подзадачах по степенному закону падать. На шестом цикле транспьютер, получивший задачу из двух векторов, решит ее сам, поскольку она далее уже не упрощается, т.е. он даст значение и номер самого длинного вектора из двух. Таким образом, динамика задачи может быть описана таблицей 1.
Таблица 1. Динамика решения задачи поиска экстремума 1→2.
Номер цикла |
Сложность задачи |
Количество решающих транспьютеров |
Количество ожидающих транспьютеров |
1 |
128 |
1 |
0 |
2 |
64 |
2 |
1 |
3 |
32 |
4 |
3 |
4 |
16 |
8 |
7 |
5 |
8 |
16 |
15 |
6 |
4 |
32 |
31 |
7 |
2 |
64 |
63 |
8 |
2 |
32 |
31 |
9 |
2 |
16 |
15 |
10 |
2 |
8 |
7 |
11 |
2 |
4 |
3 |
12 |
2 |
2 |
1 |
13 |
2 |
1 |
0 |
При решении задачи на разных этапах в ней будет задействовано от 1 до 127 транспьютеров, вся задача будет решена за 13 циклов. В среднем при решении задачи занято 28,23 транспьютеров, даже если учитывать ожидающие. Традиционный компьютер для решения этой задачи должен осуществить перебор всех 128 векторов, для чего потребуется 128 циклов. При некоторых технологиях во время ожидания ответа транспьютер может быть занят решением других задач. Поэтому, вообще говоря, среднее количество задействованных транспьютеров именно в данной задаче еще почти вдвое меньше – т.е. около 15. При этом для успешного решения по этому алгоритму все же требуется наличие всех 127 транспьютеров на 7-м цикле. Т.е. в среднем задействовано значительно меньше вычислителей (менее четверти), чем необходимо для работоспособности алгоритма, и вместе с тем, если система решает несколько задач, поступающих не синхронно, то пики потребности аппаратного ресурса не должны совпадать (а если они совпадут, то возникнет очередь, что не помешает решить все поставленные задачи). Поэтому в среднем система из 128 транспьютеров может решать одновременно около четырех таких задач, экономя время почти в 10 раз по сравнению с традиционным компьютером.
Членение задачи вовсе не обязательно должно происходить в соотношении 1:2. Скажем, если один транспьютер загружает четыре соседних, то динамика решения той же задачи будет такой, как показано на таблице 2.
Таблица 2. Динамика решения задачи поиска экстремума 1→4.
Номер цикла |
Сложность задачи |
Количество решающих транспьютеров |
Количество ожидающих транспьютеров |
1 |
128 |
1 |
0 |
2 |
32 |
4 |
1 |
3 |
8 |
16 |
5 |
4 |
2 |
64 |
21 |
5 |
2 |
16 |
5 |
6 |
2 |
4 |
1 |
7 |
2 |
1 |
0 |
В этом случае задача решается всего за 7 циклов, максимальное значение задействованных транспьютеров 85, среднее количество занятых транспьютеров 19,9, т.е. занятым в среднем оказывается менее четверти ресурса. Рассмотрим ситуацию для членения задачи в соотношении 1:8 (см. таблицу 3).
Таблица 3. Динамика решения задачи поиска экстремума 1→8.
Номер цикла |
Сложность задачи |
Количество решающих транспьютеров |
Количество ожидающих транспьютеров |
1 |
128 |
1 |
0 |
2 |
16 |
8 |
1 |
3 |
2 |
64 |
9 |
4 |
2 |
8 |
1 |
5 |
2 |
1 |
0 |
В этом случае задача решается всего за 5 циклов, максимальное значение задействованных транспьютеров 73, среднее количество занятых транспьютеров 18,6, т.е. занято опять менее четверти ресурса.
Итак, мы видим, что в последнем случае ресурс по сравнению с простым компьютером возрастает в 73 раза, но в среднем лишь в 19 раз, скорость же вычислений возрастает в 25,6 раза. То есть среднее возрастание ресурса меньше, чем среднее возрастание скорости решения задачи.
Сетевая технология в соединении с принципом динамического программирования теоретически может позволить не только решать шахматную задачу, но в принципе и «закрыть» эту «проблему» раз и навсегда.
Действительно, теоретически количество шахматных позиций большое, но ограниченное. Каждый шахматный этюд – это решение задачи о том, как одному из игроков двигаться к выигрышу или ничьей. Все остальные ходы игрока будут неоптимальными, а все возможные ходы противника не улучшают исхода. Следовательно, всякий решенный этюд – это в каком-то смысле «точка с известным исходом», если считать, что оба игрока знают решение, или, как минимум, точка с гарантированным исходом, если хотя бы один игрок знает решение. Всякая позиция, приводящая к одной из точек с известным исходом, также становится новой точкой с известным исходом. Чем больше будет позиций, выходы из которых будут полностью просчитаны, тем больше шанс, что неизвестные позиции будут с ведены к одной из таких позиций. Движение от простых эндшпилей и этюдов к миттельшпилям, может достичь дебютов, и в идеале останется хотя бы один дебют, гарантированно приводящий к выигрышу. Если так, то шахматы теоретически перестанут быть спортом.
Пока это не достигнуто. Но не так давно считалось, что компьютер в принципе не может выиграть у чемпиона мира, однако сейчас это мнение уже опровергнуто на практике: чемпион мира проигрывал компьютеру.
Из этого видно преимущество сетевых, транспьютерных и нейронных вычислительных систем и наиболее приспособленных к ним алгоритмов программирования – генетических алгоритмов.