Создана модель эволюционирующего робота dyret
Centr86.ru

Ремонт бытовой техники

Создана модель эволюционирующего робота dyret

Создана модель эволюционирующего робота dyret

Цели

Процесс создания программного обеспечения

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

q знать основные концепции, лежащие в основе процесса создания ПО и моделей этого процесса;

q иметь представление об основных моделях процесса создания ПО и понимать, когда какую из них использовать;

q знать схему построения моделей процесса формирования требований к ПО, его разработки, тестирования и модернизации;

q иметь понятие о CASE-технологиях, предназначенных для поддержки процесса создания ПО.

Как отмечалось в главе 1, процесс создания программного обеспечения – это множество взаимосвязанных процессов и результатов их выполнения, которые ведут к созданию программного продукта. Процесс создания ПО может начинаться с разработки программной системы “с нуля”, но чаще новое ПО разрабатывается на основе существующих программных систем путем их модификации.

Процесс создания ПО, как и любая другая интеллектуальная деятельность, основан на человеческих суждениях и умозаключениях, т.е. является творческим. Вследствие этого все попытки автоматизировать процесс создания ПО имеют лишь ограниченный успех. CASE-средства (обсуждаются в разделе 3.7) могут помочь в реализации некоторых этапов процесса разработки ПО, но по крайней мере в ближайшие несколько лет не стоит ожидать от них существенного продвижения в автоматизации тех этапов создания ПО, где существенен фактор творческого подхода к разработке ПО.

Одна из причин ограниченного применения автоматизированных средств к процессу создания ПО – огромное многообразие видов деятельности, связанных с разработкой программных продуктов. Кроме того, организации-разработчики используют разные подходы к разработке ПО. Также различаются характеристики и возможности создаваемых систем, что требует особого внимания к определенным сторонам процесса разработки. Поэтому даже в одной организации при создании разных программных систем могут использоваться различные подходы и технологии.

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

1. Разработка спецификации ПО. Это фундамент любой программной системы. Спецификация определяет все функции и действия, которые будет выполнять разрабатываемая система.

2. Проектирование и реализация (производство) ПО. Это процесс непосредственного создания ПО на основе спецификации.

3. Аттестация ПО. Разработанное программное обеспечение должно быть аттестовано на соответствие требованиям заказчика.

4. Эволюция ПО. Любые программные системы должны модифицироваться в соответствии с изменениями требований заказчика.

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

Хотя не существует “идеального” процесса создания ПО, во многих организациях-разработчиках пытаются его усовершенствовать, поскольку он может опираться на устаревшие технологии и не включать лучших методов современной инженерии программного обеспечения. Кроме того, многие организации постоянно используют одни и те же технологии (когда-то ранее хорошо себя зарекомендовавшие) и им также необходимы методы современной инженерии ПО.

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

модель процесса создания программного обеспечения – это общее абстрактное представление данного процесса. Каждая такая модель представляет процесс создания ПО в каком-то своем “разрезе”, используя только определенную часть всей информации о процессе. В настоящем разделе представлены обобщенные модели, основанные на архитектурном подходе. В этом случае можно увидеть всю структуру процесса создания ПО, абстрагируясь от частных деталей отдельных составляющих его этапов.

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

Каскадная модель. Основные базовые виды деятельности, выполняемые в процессе создания ПО (такие, как разработка спецификации, проектирование и производство, аттестация и модернизация ПО), представляются как отдельные этапы этого процесса.

2. Эволюционная модель разработки ПО. Здесь последовательно перемежаются этапы формирования требований, разработки ПО и его аттестации. Первоначальная программная система быстро разрабатывается на основе некоторых абстрактных общих требований. Затем они уточняются и детализируются в соответствии с требованиями заказчика. Далее система дорабатывается и аттестуется в соответствии с новыми уточненными требованиями.

3. Модель формальной разработки систем. Основана на разработке формальной математической спецификации программной системы и преобразовании этой спецификации посредством специальных математических методов в исполняемые программы. Проверка соответствия спецификации и системных компонентов также выполняется математическими методами.

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

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

Эта модель основана на следующей идее: разрабатывается первоначальная версия программного продукта, которая передается на испытание пользователям, затем она дорабатывается с учетом мнения пользователей, получается промежуточная версия продукта, которая также проходит “испытание пользователем”, снова дорабатывается и так несколько раз, пока не будет получен необходимый программный продукт (рис. 3.2). Отличительной чертой данной модели является то, что процессы специфицирования, разработки и аттестации ПО выполняются параллельно при постоянном обмене информацией между ними.

Различают два подхода к реализации эволюционного метода разработки.

1. Подход пробных разработок. Здесь большую роль играет постоянная работа с заказчиком (или пользователями) для того, чтобы определить полную систему требований к ПО, необходимую для разработки конечной версии продукта. В рамках этого подхода вначале разрабатываются те части системы, которые очевидны или хорошо специфицированы. Система эволюционирует (дорабатывается) путем добавления новых средств по мере их предложения заказчиком.

2. Прототипирование. Здесь целью процесса эволюционной разработки ПО является поэтапное уточнение требований заказчика и, следовательно, получение законченной спецификации, определяющей разрабатываемую систему. Прототип* обычно строится для экспериментирования с той частью требований заказчика, которые сформированы нечетко или с внутренними противоречиями.

Достоинством процесса создания ПО, построенного на основе эволюционного подхода, является то, что здесь спецификация может разрабатываться постепенно, по мере того как заказчик (или пользователи) осознает и сформулирует те задачи, которые должно решать программное обеспечение. Вместе с тем данный подход имеет и некоторые недостатки.

1. Многие этапы процесса создания ПО не документированы. Менеджерам проекта создания ПО необходимо регулярно документально отслеживать выполнение работ. Но если система разрабатывается быстро, то экономически не выгодно документировать каждую версию системы.

2. Система часто получается плохо структурированной. Постоянные изменения в требованиях приводят к ошибкам и упущениям в структуре ПО. Со временем внесение изменений в систему становится все более сложным и затратным.

3. Часто требуются специальные средства и технологии разработки ПО. Это вызвано необходимостью быстрой разработки версий программного продукта. Но, с другой стороны, это может привести к несовместимости некоторых применяемых средств и технологий, что, в свою очередь, требует наличия в команде разработчиков специалистов высокого уровня.

Я думаю, что эволюционный подход наиболее приемлем для разработки небольших программных систем (до 100 000 строк кода) и систем среднего размера (до 500 000 строк кода) с относительно коротким сроком жизни. На больших долгоживущих системах слишком заметно проявляются недостатки этого подхода. Для таких систем я рекомендую смешанный подход к созданию ПО, который вобрал бы в себя лучшие черты каскадной и эволюционной моделей разработки.

Читать еще:  Стиральная машина для дачи без водопровода

При таком смешанном подходе для прояснения “темных мест” в системной спецификации можно использовать прототипирование. Часть системных компонентов, для которых полностью определены требования, может создаваться на основе каскадной модели. Другие системные компоненты, которые трудно поддаются специфицированию, например пользовательский интерфейс, могут разрабатываться с использованием прототипирования.

Создана модель эволюционирующего робота dyret

СОЗДАНИЕ МОДЕЛИ ЭВОЛЮЦИИ ЗВЕЗД НА ОСНОВЕ ДИАГРАММЫ ГЕРЦШПРУНГА-РАССЕЛА С ПОЗИЦИИ ДИСТОРТНОСТИ

Автор работы: Фадеев Денис Вадимович, 7 класс, МБОУ ДО ДТДМ г.Твери.

Руководитель: педагог дополнительного образования Маркова Татьяна Борисовна

МБОУ ДО «Дворец творчества детей и молодежи» г.Твери.

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

Цели и задачи исследования. Цель работы: найти новые подходы и методики описания основных этапов эволюции звезд с позиции современных научных школ и направлений, которые появились сравнительно недавно. Одним из таких перспективных направлений современных научных исследований является дистортность, как универсальный метод оценки различных предельных состояний в природных системах [2]. В основе метода рассмотрения широкого класса физических явлений в переходных процессах лежит научная гипотеза, которая определяет наличие вне пространственно-временной закономерности функционирования различных структурных систем в критических ситуациях.

Для достижения цели решались следующие задачи:

– разработка и обоснование новых критериев оценки смены жизненного цикла звезды в процессе ее эволюции;

– создание модели, объясняющей эволюцию звезд на основе предлагаемых критериев.

Содержание работы. В работе изложены теоретические основы методики геометрического отображения предельных состояний структурной системы в нормализованном виде [2]. На основе обобщения теоретико-экспериментальных исследований напряженно-деформированных состояний (НДС) материалов (структур), согласно этой методике следует различать шесть основных предельных уровней рановесных НДС (табл.1) [2].

Далее в работе описывается создание модели предельных состояний звезд на основе диаграммы Герцшпрунга-Рассела (Г-Р). Приведение диаграммы Г-Р к нормализованному виду и нанесение на нее предельных уровней НДС позволило выявить закономерности между ними и существующими последовательностями звезд (сверхгиганты, яркие гиганты и т.д). Проведенный анализ основных стадий эволюции звезд (главная последовательность, переменные звезды, сверхгиганты, черные дыры и белые карлики) показал их согласие с универсальными качественными характеристиками предельных состояний структурной системы дистортности (см. табл.1).

Значимость и новизна исследования. Научная новизна работы заключается в том, что впервые сделана попытка на основе диаграммы Г-Р объяснения этапов эволюции звезды с позиции общей теории предельных состояний (дистортности).

В работе объяснена природа наступления момента пульсации звезд посредством установления связи между положением полосы нестабильности на диаграмме Г-Р и критериальной точкой, характеризующей момент максимального взаимного влияния параметров светимости и температуры. На основе методики геометрического отображения обоснованы критерии наступления конечного этапы эволюции звезд (черные дыры, нейтронные звезды, белые карлики или наступление коллапса).

Итоги исследования. Проведенные исследования доказывают возможность применения дистортности как универсального метода оценки различных предельных состояний в описании эволюции звезд. В результате работы создана модель, позволяющая отобразить все основные этапы эволюции звезды. Модель позволяет описать положение звезды на диаграмме одним параметром нелинейности ХА, дающим ей как количественную, так и качественную характеристику. Предлагаемый критерий предельных состояний (параметр эллиптичности ПК) позволяет оценить текущее “энергетическое” состояние звезды и предсказать дальнейшее ее поведение.

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

Использованная литература:

  1. Шварцшильд М. Строение и эволюция звезд /М.Шварцшильд; пер. с англ. Э.В. Кононовича. – 3-е изд. – Сер. Физико-математическое наследие: физика (астрономия). М.:Либроком, 2009. – 438 с.
  2. Дистортность в природных системах /В.А. Миронов, Б.Ф. Зюзин, А.А. Тереньтьев, В.Н. Лотов – Мн.: Беларуская навука, 1997. – 415 с. – ISBN 985-08-0059-3.
  3. Проект “Исследование Солнечной системы” [Электронный ресурс], Режим доступа: http://galspace.spb.ru/indvop.file/1.html
  4. Проект “Космос и человечество” [Электронный ресурс], Режим доступа: http://www.cpace.ru/en/2010-01-23-07-39-02/16-2010-01-25-10-48-54/801-2010-01-25-19-53-57.html
  5. Александр Бабицкий. Взрыв сверхновой звезды: учёные тоже пишут сценарии [Электронный ресурс], Режим доступа: http://www.chuchotezvous.ru/universe-evolution/1466.html
  6. Физика черных дыр. [Электронный ресурс], Режим доступа: http://www.astronet.ru/db/msg/1180462/node2.html
  7. Взрыв Бетельгейзе. [Электронный ресурс], Режим доступа: http://spacegid.com/vzryiv-betelgeyze.html
  8. Проект Astronet. К.А. Постнов Во что превращаются звезды в конце жизни [Электронный ресурс], Режим доступа: http://www.astronet.ru/db/msg/1157080

ПРИЛОЖЕНИЕ

Таблица 1. Предельные характеристики состояния

Вездеходный робот учится ходить по разным поверхностям и эволюционирует после падений

Разработка норвежских инженеров из Университета Осло кажется весьма странной. Четвероногий робот DyRET выглядит абсолютно неуклюжим, когда изо всех сил пытается пройтись по новой для него поверхности и не упасть. Но так кажется только на первый взгляд. Постепенно движения устройства становятся всё более уверенными: DyRET начинает передвигаться медленно, но всё более и более умело.

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

Такой навык помогают DyRET адаптироваться к пространству и его изменениям, пишет издание WIRED.

Робототехники по всему миру пытаются решить проблему ориентации устройств в пространстве. И, например, двуногий Cassie или четвероногий SpotMini (недавно мы сообщали о его новых достижениях) кажутся более совершенными по сравнению с DyRET.

Между тем инженеры уверяют: несмотря на кажущееся несовершенство, DyRET уже стал сенсацией в мире современной робототехники . И с каждым новым шагом DyRET мир приближается к настоящим вездеходным роботам.

Как уже отмечалось выше, DyRET является интеллектуальной машиной, адаптирующейся к окружающей среде. Робот способен самостоятельно контролировать свои движения.

Поясним, что обычно роботы передвигаются по заранее закодированным инструкциям. DyRET учится ходить по определённой поверхности, скажем, ковру или даже льду, за счёт метода проб и ошибок. Он приспосабливается к новой окружающей среде (каждый раз разной) благодаря специальным алгоритмам и роботизированным конечностям. Последние автоматически укорачиваются и удлиняются, чтобы изменить центр тяжести робота.

Когда инженеры устанавливают робота на какую-либо поверхность, робот начинает “ощупывать” местность быстрым и неуклюжим топтанием на месте. DyRET пробует использовать различные по длине шаги, и в результате порой может даже потерпеть неудачу и упасть.

Но это и хорошо. Датчик движения DyRET вычисляет, насколько стабильна каждая походка. Он выбирает, какая длина конечностей, угол их сгибания и какой шаг обеспечат наибольшую стабильность роботу. Устройство запоминает это, а затем применяет на практике.

Подобное новшество называется эволюционной робототехникой (evolutionary robotics), и это потенциально может помочь машинам самостоятельно освоить новую местность, не требуя технической поддержки. Например, если речь идёт об изучении других планет, сигнал с Земли до которых может идти очень долго.

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

“Робот не знает, что мы изменили поверхность. Он просто пытается идти как можно быстрее и стабильнее, учитывая ситуацию, в которой он находится”, — говорит Тённес Нюгорд (Tønnes Nygaard) из Университета Осло .

Чтобы бот мог изменять не только своё поведение, но и конструкцию, каждая из его четырёх конечностей может удлиняться примерно на 12 сантиметров. Попадая на снег, робот научился укорачивать “ноги”, чтобы оптимизировать передвижение. (Оно должно быть одновременно стабильным и не слишком медленным.)

Отмечается, что длинные и быстрые шаги – идеальная “походка” робота, помогающая ему эффективно перемещаться на дальние расстояния. Но, по мере того как батарея садится, он начинает укорачивать свои ноги, дабы не тратить много энергии. Робот попытается компенсировать изменения, перемещаясь более быстро на более коротких конечностях.

Читать еще:  Новая разработка lada connect позволяет управлять автомобилем через мобильное приложение

Проще говоря, система адаптируется к и изменениям местности, и к изменениям в себе, например, к разряду аккумулятора.

“Когда у него [робота] много энергии, у него более длинные конечности. Когда же батарея разряжается, он их укорачивает, но при это старается увеличить скорость передвижения”, — говорит Нюгорд.

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

Создатели DyRET считают, что их робот сможет работать в качестве посыльного. Одной из главных проблем предыдущих моделей роботов-курьеров являлись резкие изменения в поверхности, из-за чего машины “терялись” и нуждались в помощи со стороны человека, которому приходилось постоянно наблюдать за их работой. Новый робот потенциально не будет иметь подобного недостатка.

Модели жизненного цикла для разработки программных систем

2.2.3. Спиральная модель

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

Данная модель ЖЦ допускает анализ продукта на витке разработки, его проверку, оценку правильности и принятия решения двигаться на следующий виток или опуститься на предыдущий виток для доработки на нем промежуточного продукта.

Отличие этой модели от каскадной модели состоит в возможности обеспечивать многоразовое возвращение к процессу формулирования требований и к повторной разработке с любого процесса выполнения работ. На изображенной модели (рис. 2.6), каждый виток спирали соответствует одной из версий разработки системы.

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

2.2.4. Эволюционная модель ЖЦ

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

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

Развитием этой модели является модель эволюционного прототипирования в рамках всего ЖЦ разработки (рис. 2.7). В литературе она часто называется моделью быстрой разработки приложений RAD ( Rapid Application Development ). В данной модели приведены действия, которые связаны с анализом ее применимости для конкретного вида системы, а также обследование заказчика для определения потребностей пользователя для разработки плана создания прототипа.

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

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

Эта модель применяется для систем, в которых наиболее важными являются функциональные возможности, и которые необходимо быстро продемонстрировать на CASE-средствах.

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

При этом учитываются такие факторы риска:

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

Преимущества применения данной модели ЖЦ следующие:

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

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

2.2.5. Стандартизация модели ЖЦ

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

к другому должен быть санкционирован и определены входные и выходные данные.

Модель данного ЖЦ включает в себя процессы:

  • определение требований;
  • разработка (проектирование, конструирование);
  • верификация, валидация, тестирование;
  • изготовление;
  • эксплуатация;
  • сопровождение.

Данной модели соответствуют все виды деятельности, начиная с разработки проекта или концепции программного продукта и заканчивая его изготовлением. Как было сказано выше, стандарт ISO/IEC 12207 объединяет эти виды деятельности в следующие три категории: основные, организационные и вспомогательные процессы, которые и составляют стандартный ЖЦ.

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

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

Стандарт разработан так, чтобы его можно было применить полностью или частично. Действия и задачи основных процессов отбираются, адаптируются и применяются при разработке или модификации системы. Процесс разработки может включать одну или более итераций. Результатом являются требования к ПО, проект и реализованный продукт.

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

Во время процесса изготовления система готовится для поставки заказчику и покупателям. Цель процесса – тиражирование (производство) и установка работающей системы у заказчика для

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

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

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

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

Эволюционные модели

Одним из примеров существенно машинных моделей являются эволюционные модели. Основная идея построения эволюционной модели была сформулирована Л. Фогелем 1 . Она заключается в том, чтобы модель сложного и трудно формализуемого объекта представить как результат эволюции некоторого простого объекта, т.е. «запустить» эволюционный процесс, подчиняющийся определенным правилам, и по окончании процесса зафиксировать характеристики получившегося объекта. Считается, что принятые в эволюционном моделировании правила описания эволюционного процесса согласуются с представлениями в биологии относительно того, как связаны высокоразвитые живые организмы и примитивные:

  • 1) предпосылка эволюции — наследственная изменчивость (мутирование);
  • 2) контролирующий и направляющий фактор — борьба за существование;
  • 3) преобразующий фактор — естественный отбор.
Читать еще:  Устройство и принцип работы термопота

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

Примеры соответствий социально-экономических и биологических параметров

Корпорация, корпоративные объекты, субъекты, окружение

Видовое разнообразие и распределение в экологической нише

Типы распределения ресурсов, структура связей в корпорации

1 Фогель Л., Оуэнс А, Уолш М. Искусственный интеллект и эволюционное моделирование. М.: Мир, 1969.

Сфера влияния и функционирования, эволюции на рынке, в бизнесе

Рождаемость и смертность

Производство и разрушение

Экономической обстановки, ресурсов

Способность к циклам воспроизводства

Штрафные и поощрительные меры

Производственные циклы и их предыстория

Общую идею эволюционного моделирования наглядно иллюстрирует схема работы генетического алгоритма (рис. 1.2) — одного из наиболее популярных эволюционных алгоритмов. Генетические алгоритмы — вычислительные процедуры, базирующиеся на аналогии с природным процессом естественного отбора (селекции) и генетических преобразований, относящиеся к существенно машинным классам адаптивных алгоритмов. Примеры генетических алгоритмов — VEGA (Vector Evaluated Genetic Algorithm), FFGA (Fonseca and Fleming’s Multiobjective Genetic Algorithm), NPGA (Niched Pareto Genetic Algorithm) и SPEA (Strength Pareto Evolutionary Algorithm).

Рис. 1.2. Упрощенная схема эволюционного моделирования

При построении генетического алгоритма предполагается, что некоторый искусственный мир населен множеством особей (каждая особь — это определенное решение задачи). Свойства особей описываются значениями параметров, которые объединяются в запись, называемую хромосомой. Каждой особи соответствует значение функции приспособленности. Более приспособленная особь дает большее значение целевой функции (лучшее решение).

В генетических методах оперируют хромосомами, относящимися к множеству объектов популяции. Эволюционное улучшение значений целевой функции от поколения к поколению происходит за счет имитации генетических принципов в живой природе: вероятностный выбор родителей среди членов популяции, скрещивание их хромосом, отбор потомков для включения в новые поколения объектов на основе оценки целевой функции. Решение задачи поиска максимума целевой функции сводится к поиску более приспособленной особи в процессе смены поколений, который определяется естественным отбором и генетическим наследованием. Целью этой искусственной эволюции, в ходе которой приспособленность особей постепенно повышается, является создание наилучших решений. Принудительно остановив этот процесс через заданное время (или при выполнении заданного условия) и выбрав в текущем поколении особь с наибольшим значением функции приспособленности, получим близкое к оптимальному решение. Такова общая схема генетического алгоритма.

Стратегий, использующихся в современных генетических алгоритмах, довольно много. Среди них можно выделить стратегии элитизма, разнообразия, «свежей крови», изменения размера популяции, параллельных эволюций (миграции, турнирную) [1] .

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

Использование в генетических алгоритмах стратегии разнообразия популяции позволяет избежать вырождения особей элитной группы (или всей популяции) при приближении к локальному или глобальному оптимуму, а также предотвращает получение в ходе реализации генетических алгоритмов нескольких идентичных (или очень похожих) особей, которые чаще становятся источниками генетической информации, сужая тем самым область поиска решения и приводя к еще более сильному вырождению следующих поколений популяции. Для этого в стратегии разнообразия популяции на каждом этапе эволюционного процесса или с некоторой заданной периодичностью реализуется попарная оценка степени близости всех особей популяции на основе анализа некоторого специального расстояния. При наличии недопустимого сходства (формально это означает, что расстояние оказалось меньше заданного порогового значения) между несколькими особями из них остается только одна особь — с наибольшим значением функции приспособленности. Вакантные места заполняются потомками, получаемыми в результате применения генетических операторов на текущей стадии эволюции или, при необходимости, — новыми случай ны м и решениями.

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

В стратегии изменения размера популяции предполагается, что количество особей, участвующих в процессе эволюции, изменяется на каждой стадии в зависимости от качественных характеристик популяции в целом. В качестве таких характеристик, как правило, используются средняя приспособленность популяции или мера ее изменения в течение определенного числа стадий эволюции: при улучшении характеристик объем популяции возрастает, при ухудшении — уменьшается. При этом устанавливаются нижняя и верхняя границы объема популяции, а также начальная численность особей.

Общий принцип работы группы стратегий параллельных эволюций — выделение в популяции независимых или ограниченно зависимых друг от друга сообществ, внутри которых протекает эволюционный процесс. В дальнейшем происходит перенос генетической информации из одной группы в другую или их объединение (реализуется аналогия процессам, происходящим в живой природе или общественной жизни). К группе стратегий параллельных эволюций относятся турнирная стратегия и стратегия миграции.

Турнирная стратегия предусматривает осуществление полностью независимых законченных эволюционных процессов в нескольких группах и объединение полученных в каждой группе лучших решений в одну или несколько новых групп с выполнением следующего этапа эволюции. Количество таких этапов в общем случае может быть любым и ограничивается только требованиями времени и вычислительными возможностями исследователя. Естественно, чем больше этапов, тем больше вероятность нахождения глобального оптимума. Размеры групп также могут быть различными: от нескольких десятков до нескольких единиц особей.

На рис. 1.3 показан пример схемы реализации трехэтапной турнирной эволюционной стратегии с размером популяции в 30 особей в каждой группе.

При реализации стратегии миграции вся популяция делится на несколько в общем случае различных по численности сообществ. Генетические операторы применяются к особям, выбранным строго из своих сообществ. В основном эволюции происходят независимо, каждая в своем сообществе, но в некоторых случаях (с заданной небольшой вероятностью)

происходит обмен генетическим материалом отдельных особей между сообществами. При этом в процессе эволюции собираются банки лучших решений для каждого сообщества, которые затем объединяются в единую популяцию. Для популяции лучших решений реализуется свой эволюционный процесс (рис. 1.4).

Рис. 1.3. Схема реализации турнирной стратегии

Рис. 1.4. Схема реализации стратегии миграции

Следует отметить, что в каждой группе или каждом сообществе стратегий параллельных эволюций могут быть приняты свои собственные настройки генетического алгоритма (состав и вероятности применения генетических операторов, другие стратегии), что также может сыграть положительную роль в нахождении лучшего решения.

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

  • • широкая область применения (возможность проблемно-ориентированного кодирования решений);
  • • возможность комбинирования с другими (неэволюционными) видами моделирования;
  • • отсутствие ограничений на вид целевой функции;
  • • пригодность для поиска в сложном пространстве решений большой размерности;
  • • ясность схемы и базовых принципов эволюционных вычислений.
  • • отсутствие гарантии оптимальности полученного решения в силу эвристического характера эволюционных вычислений;
  • • вычислительная трудоемкость;
  • • относительно невысокая эффективность на заключительных фазах моделирования эволюции (операторы поиска в эволюционных алгоритмах не ориентированы на быстрое попадание в локальный оптимум).
Ссылка на основную публикацию
Adblock
detector