Главная » Просмотр файлов » Майлингова О.Л., Манжелей С.Г., Соловская Л.Б. - Прототипирование программ на языке Scheme

Майлингова О.Л., Манжелей С.Г., Соловская Л.Б. - Прототипирование программ на языке Scheme (1108536), страница 11

Файл №1108536 Майлингова О.Л., Манжелей С.Г., Соловская Л.Б. - Прототипирование программ на языке Scheme (Майлингова О.Л., Манжелей С.Г., Соловская Л.Б. - Прототипирование программ на языке Scheme) 11 страницаМайлингова О.Л., Манжелей С.Г., Соловская Л.Б. - Прототипирование программ на языке Scheme (1108536) страница 112019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 11)

По аналогии с ДНК, в программной системе,использующей ГА, хромосома может представлять собой битовуюпоследовательность. Для достаточно широкого класса задач, такоепредставление дает хорошие результаты. Например, в задаче нахожденияэкстремума функции на отрезке, битовая хромосома можетинтерпретироваться как двоичная запись аргумента функции. Для болеесложных задач роль гена могут играть элементы, устроенные болеесложно, чем один бит. Заметим только, что в результате операцийрепродукции, могут получаться произвольные комбинации генов, которыедолжны иметь осмысленную интерпретацию.Репродукция популяции происходит в условиях естественного отбора,предполагающего выживание и размножение «лучших», наиболееприспособленных к конкретным условиям, хромосом.

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

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

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

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

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

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

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

Во-первых, на работу алгоритма влияют егопараметры:• интенсивная мутация снижает скорость алгоритма и может серьезноповлиять на сходимость;• слишком малая вероятность мутации затрудняет выход алгоритма излокальных экстремумов;• большие популяции сходятся дольше;• при малом размере популяции возрастает вероятность остановки влокальном экстремуме.61Также скорость сходимости ГА зависит от модели отбора, алгоритмавыбора хромомосом-родителей.В простейшей модели ГА будем рассматривать только две стратегиирепродукции популяции - скрещивание двух хромосом и мутациюСкрещивание определяет поступательное развитие популяции и состоит внаследование генетического материала достаточно «хороших» родителей.В результате скрещивания доля «хороших» хромосом в общей массе будетвозрастать.Поступательное развитие в условиях некоторой среды в общем случае неявляется монотонным и непрерывным.

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

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

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

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

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

Граф представляет собойсовокупность множества вершин и ребер G(V, E). Как правило,информационные структуры, соответствующие вершинам (V) и ребрамграфа (E), имеют последовательное представление. Для отображенияЕ —> V * V (каждому ребру ставится в соответствие пара вершин - начало иконец) используются различные способы: матрицы смежности, матрицыинцидентности, списочные структуры. Каждый способ имеетопределенные достоинства и недостатки, и выбор определяетсяспецификой конкретной задачи.В реальных задачах исходная информация для инициализации конкретногографа отличается большим объемом и хорошей структурированностью.Она может быть получена как непосредственно от пользователя, так и издругого приложения.

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

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее