Получение областей достижимости летательного аппарата

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.03.2011
Размер файла 168,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

26

Московский Государственный Технический Университет им. Н.Э. Баумана

Курсовая работа

на тему: «Получение областей достижимости ЛА»

Руководитель:

Воронов Е.М.

Группы: ИУ 1-194

Москва 2010

Оглавление

Введение

1. Определение задачи

2. Теоретическая часть

2.1 Кластеры

2.2 Виды кластеров

2.3 Развертывание кластера

2.4 Сведения о MPI

2.5 Нейронные сети

2.6 Этапы решения задач

3. Постановка задачи

Выводы

Введение

В данной курсовой работе, в теоретической части рассмотрены различные виды кластеров, историю их создания основные качества и недостатки, так же в приведенном материале описан процесс развертывания кластера и сведения о МРI.

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

Создание методов решения в настоящем времени с минимальной затратой времени таких задач, позволит пилотам ЛА принимать оптимальные решения в условиях боя.

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

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

1. Определение задачи

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

Как известно, уравнения движения центра масс ЛА в нормальной земной системе координат (СК) OXYZ описывается следующей системой нелинейных дифференциальных уравнений:

где - скорость ЛА, - угол наклона траектории, - угол поворота траектории, - высота ЛА, - тангенциальная перегрузка, - нормальная перегрузка, - скоростной угол крена, - ускорение свободного падения=9.81. Управления ЛА задаются вектором

t [0,T]=[0,90] [c]

Ограничения на управление:

|n|max=8, -1.6<|nТ|max<0.6

||=180є

Начальные условия:

V(0) ? [0.2,1.9]v [м/с], где vзв - скорость звука в воздухе

И (О) ? (-90°,90°)

Ш(0)=0?

Х(0) =0

Y(0) ? [0,11000][м]

Z(0) = 0

Имеет место следующее фазовое ограничение:. 02vз в<V(t)<l.9vзв.

Уточнению подлежит способ обработки ситуаций

И= 90°, И = 270°.

Примем начальные условия для решения задачи:

V(t0)=0;

И(t0)=0;

Ш(t0)=0;

Y(t0)=10000;

Z(t0)=0;

Далее опишем методы изменения управляющих параметров:

1) Нормальная перегрузка ЛА изменяется по следующему закону:

Где t2 время переключения нормальной перегрузки.

2) Тангенциальная перегрузка ЛА изменяется по следующему закону:

Где t3 - время переключения тангенциальной перегрузки.

3) Угол крена летательного аппарата ус изменяется от -180° до 180° с шагом 6°.

Задача в общем случае описывается следующим образом:

Проинтегрировав методом Эйлера нашу систему, мы получим границу области достижимости ЛА.

2. Теоретическая часть

Параллельные вычисления - это одновременная работа нескольких вычислительных устройств (процессоров) при решении одной задачи. Применение параллельных вычислений преследует две цели:

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

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

2.1 Кластеры

История создания кластеров неразрывно связана с ранними разработками в области компьютерных сетей. Одной из причин для появления скоростной связи между компьютерами стали надежды на объединение вычислительных ресурсов. В начале 1970-х гг. группой разработчиков протокола TCP/IP и лабораторией Xerox PARC были закреплены стандарты сетевого взаимодействия. Появилась и операционная система Hydra («Гидра») для компьютеров PDP-11 производства DEC, созданный на этой основе кластер был назван С.трр (Питтсбург, шт. Пенсильвания, США, 1971). Тем не менее, только около 1983 г. были созданы механизмы, позволяющие с лёгкостью пользоваться распределением задач и файлов через сеть, по большей части это были разработки на основе BSD в версии Sun Microsystems.

Первым коммерческим проектом кластера стал ARCNet, созданный компанией Datapoint в 1977 г. Прибыльным он не стал, и поэтому строительство кластеров не развивалось до 1984 г., когда DEC построила свой VAXcluster на основе операционной системы VAX/VMS. ARCNet и VAXcluster были рассчитаны не только на совместные вычисления, но и совместное использование файловой системы и периферии с учётом сохранения целостности и однозначности данных. VAXCluster (называемый теперь VMSCluster) и сейчас можно приобрести для систем HP OpenVMS, использующих процессоры Alpha и Itanium.

Два других ранних кластерных продукта, получивших признание, включают Tandem Hymalaya (1994, класс НА) и IBM S/390 Parallel Sysplex (1994).

История создания кластеров из обыкновенных персональных компьютеров во многом обязана проекту Parallel Virtual Machine. В 1989 г. это ПО для объединения компьютеров в виртуальный суперкомпьютер открыло возможность мгновенного создания кластеров. В результате суммарная производительность всех созданных тогда дешёвых кластеров обогнала по производительности сумму мощностей «серьёзных» коммерческих систем.

Кластер - группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единую машину.

Один из первых архитекторов кластерной технологии Грегори Пфистер (Gregory F. Pfister) дал кластеру следующее определение: «Кластер - это разновидность параллельной или распределённой системы, которая:

1. состоит из нескольких связанных между собой компьютеров;

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

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

Обычно различают следующие основные виды кластеров:

отказоустойчивые кластеры (High-availability clusters, НА)

кластеры с балансировкой нагрузки (Load balancing clusters)

вычислительные кластеры (Compute clusters)

grid-системы

2.2 Виды кластеров

Кластеры высокой доступности

Обозначаются аббревиатурой НА (англ. High Availability - высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов - два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров. В частности, для GNU/Linux, FreeBSD и Solaris существует проект бесплатного ПО Linux-HA.

Кластеры распределения нагрузки

Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера - производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (OpenVMS Cluster, Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (Linux Virtual Server, Mosix).

Вычислительные кластеры

Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора на операциях над числами с плавающей точкой (Flops) и низкая латентность объединяющей сети, и менее существенными - скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций - набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Ethernet, Myrinet, InfiniBand или другими относительно не дорогими сетями. Такую систему принято называть кластером Beowulf. Специально выделяют высокопроизводительные кластеры (Обозначаются англ. аббревиатурой HP С Cluster - High-performance computing cluster).

Системы распределенных вычислений (grid)

Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами.

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

В данной работе мы будем рассматривать и использовать разряд кластеров Beowulf.

Сейчас в наших научных организациях и университетах (в том числе и МГТУ им. Н.Э. Баумана), как правило, имеются специалисты по ОС Linux. В то же время присутствие множества более-менее современных персональных компьютеров в этих организациях имеется. Закономерно появилась идея создания параллельных вычислительных систем из общедоступных компьютеров на базе процессоров Intel и недорогих Ethernet-сетей, установив на эти компьютеры Linux и, объединив с помощью одной из бесплатно распространяемых коммуникационных библиотек (PVM, а затем MPI) эти компьютеры в кластер. Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с той, что можно получить, используя дорогие суперкомпьютеры.

Beowulf - это мультикомпьютерная архитектура, которая может использоваться для параллельных вычислений. Это система, обычно состоящая из одного серверного узла и одного или более клиентских узлов, соединенных при помощи Ethernet или некоторой другой сети. Это система, построенная из готовых промышленных компонент, например ПЭВМ, на которых может работать ОС Linux, стандартных адаптеров Ethernet и коммутаторов. Она не содержит специфических аппаратных компонентов и легко воспроизводима. Beowulf также использует программные продукты, такие как ОС Linux, среды программирования Parallel Virtual Machine (PVM) и Message Passing Interface (MPI). Серверный узел управляет всем кластером и является файл-сервером для клиентских узлов. Он также является консолью кластера и шлюзом во внешнюю сеть. Большие системы Beowulf могут иметь более одного серверного узла, а также возможно специализированные узлы, например, консоли или станции мониторинга. В большинстве случаев клиентские узлы в Beowulf пассивны. Они конфигурируются и управляются серверными узлами и выполняют только то, что предписано серверным узлом. В бездисковой конфигурации клиентов, клиентские узлы даже не имеют IP-адресов или имен, пока их не назначит сервер. Одно из основных отличий Beowulf от кластера рабочих станций состоит также в том, что Beowulf работает как одна машина. В большинстве случаев клиентские узлы не имеют клавиатур и мониторов, и могут быть доступны только через удаленное подключение. Узлы Beowulf могут рассматриваться как элементы процессор+память, которые вставляются в кластер так же как процессор или модуль памяти вставляются в материнскую плату.

Beowulf - это не специфический пакет программ, новая топология сети или новейшая модификация ядра ОС. Beowulf - это технология кластеризации компьютеров, работающих под управлением ОС Linux в разновидность параллельного, виртуального суперкомпьютера. Хотя существует много программных пакетов, таких как модификации ядра, библиотеки PVM и MPI и конфигурационные утилиты, которые делают архитектуру Beowulf более быстрой, простой в конфигурировании и эффективной, можно построить машину класса Beowulf, используя только стандартный дистрибутив Linux, без какого либо дополнительного математического обеспечения. Если имеются два соединенные сетью компьютера под ОС Linux, которые разделяют по меньшей мере файловую систему /home при помощи NFS, и позволяют друг другу выполнять удаленный шелл (rsh или ssh), то можно говорить, что это простой кластер Beowulf из двух узлов.

Кроме Beowulf, известна еще одна близкая кластерная технология - NOW. В NOW персональные компьютеры обычно содержат информацию о самих себе и поставленных перед ними задачах, а в обязанности системного администратора такого кластера входит формирование данной информации. Кластеры Beowulf в этом отношении (то есть с точки зрения системного администратора) проще: там отдельные узлы не знают о конфигурации кластера. Лишь один выделенный узел содержит информацию о конфигурации; и только он имеет связь по сети с внешним миром. Все остальные узлы кластера объединены локальной сетью, и с внешним миром их связывает только «тоненький мостик» от управляющего узла.

2.3 Развертывание кластера

кластер летательный нейронный сеть

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

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

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

Установить из исходников пакет MPICH или OpenMPI. В нашем случае это пакет MPICH.

Описать в /etc/hosts будущие узлы вашего кластера, в том числе и консоль кластера.

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

6. Установить на консоли кластера ssh-клиент и ssh-сервер.

На всех узлах кластера установить операционную систему, библиотеки, необходимые для выполнения пользовательских параллельных программ, установить MPICH, NFS-client, ssh-server. Узлы кластера в целях экономии ресурсов не должны быть загромождены различным ПО. Максимум, что стоит инсталлировать на них, это библиотеки GNOME и KDE, если они нужны пользовательским программам.

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

На всех узлах кластера обеспечить беспарольный доступ по ssh для консоли кластера.

10. Кластер собран и работоспособен. Теперь можно приступать к написанию, компиляции и запуску программ.

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

2.4 Сведения о MPI

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

Эффективность и надежность обеспечиваются: определением MPI операций не процедурно, а логически, т.е. внутренние механизмы выполнения операций скрыты от пользователя; использованием непрозрачных объектов в MPI {группы, коммуникаторы, типы и т.д.); хорошей реализацией функций передачи данных, адаптирующихся к структуре физической системы. Обменные функции разработаны с учетом архитектуры системы, например, для систем с распределенной памятью, систем с общей памятью, и некоторых других систем, что позволяет минимизировать время обмена данными.

Переносимость обеспечивается, во-первых, тем, что тот же самый исходный текст параллельной программы на MPI может быть выполнен на ряде машин (некоторая настройка необходима, чтобы взять преимущество из элементов каждой системы). Программный код может одинаково эффективно выполняться, как на параллельных компьютерах с распределенной памятью, так и на параллельных компьютерах с общей памятью. Он может выполняться на сети рабочих станций, или на наборе процессоров на отдельной рабочей станции. Во-вторых, переносимость обеспечивается способностью параллельных программ выполняться на гетерогенных системах, то есть на системах, состоящих из процессоров с различной архитектурой. MPI обеспечивает вычислительную модель, которая скрывает много архитектурных различий в работе процессоров. MPI автоматически делает любое необходимое преобразование данных и использует правильный протокол связи, посылается ли код сообщения между одинаковыми процессорами или между процессорами с различной архитектурой. MPI может настраиваться как на работу на однородной системе, так и на работу на гетерогенной системе. В третьих, такими механизмами, как: определение одного вычислительного компьютера в виде виртуального компьютера и возможностью задания произвольного количества таких виртуальных компьютеров в системе не зависимо от количества физических компьютеров (зависимость только от объема оперативной памяти в системе). В четвертых, переносимость обеспечивается заданием виртуальных топологий. Отображение виртуальных топологий на физическую систему осуществляется системой MPL Виртуальные топологии обеспечивают оптимальное приближение архитектуры системы к структурам задач при хорошей переносимости задач. И, наконец, в пятых, компиляторами для Fortran(a) и С.

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

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

Полный список целей таков:

Разработать прикладной программный интерфейс (не обязательно для компиляторов или библиотеки системной реализации).

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

Обеспечить удобные для интерфейса описания аргументов для языков Си и ФОРТРАН77.

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

Определить интерфейс, который не слишком отличается от уже существующих, таких как PVM, NX, Express, р4 и так далее и обеспечить расширения, которые допускают большую гибкость.

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

Семантика интерфейса не должна зависеть от используемого языка программирования.

Интерфейс должен быть спроектирован так, чтобы позволять безопасное выполнение потоков.

Алгоритмизация.

Последним шагом наших исследований является алгоритмизация нашей задачи в среде Linux с помощью библиотеки MPI.

Используем некоторое упрощение - пусть в нашем случае изменяется только один управляющий параметр п - нормальная перегрузка ЛА.

В данной программе задается промежуток интегрирования системы. Он в свою очередь делится на несколько промежутков в зависимости от количества процессоров, на которых мы реализуем задачу. Главный процесс (rank = 0), отсылает дочерним процессорам отрезок времени, на котором изменяется время переключения (tp) нормальной перегрузки ЛА. Дочерние процессы интегрируют систему и отсылают главному процессу результаты интегрирования, которые мы после можем анализировать.

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

2.5 Нейронные сети

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

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

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

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

Параллели из биологии.

Нейронные сети возникли из исследований в области искусственного интеллекта, а именно, из попыток воспроизвести способность биологических нервных систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга (Patterson, 1996). Основной областью исследований по искусственному интеллекту в 60-е - 80-е годы были экспертные системы. Такие системы основывались на высокоуровневом моделировании процесса мышления (в частности, на представлении, что процесс нашего мышления построен на манипуляциях с символами). Скоро стало ясно, что подобные системы, хотя и могут принести пользу в некоторых областях, не ухватывают некоторые ключевые аспекты человеческого интеллекта. Согласно одной из точек зрения, причина этого состоит в том, что они не в состоянии воспроизвести структуру мозга. Чтобы создать искусственных интеллект, необходимо построить систему с похожей архитектурой.

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

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

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

2.6 Этапы решения задач

Сбор данных для обучения;

Подготовка и нормализация данных;

Выбор топологии сети;

Экспериментальный подбор характеристик сети;

Экспериментальный подбор параметров обучения;

Собственно обучение;

Проверка адекватности обучения;

Корректировка параметров, окончательное обучение;

Вербализация сети с целью дальнейшего использования.

Следует рассмотреть подробнее некоторые из этих этапов.

Сбор данных для обучения.

Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:

Репрезентативность - данные должны иллюстрировать истинное положение вещей в предметной области;

Непротиворечивость - противоречивые данные в обучающей выборке приведут к плохому качеству обучения сети.

Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называется обучающей парой или обучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на «сыром» наборе, как правило, не даёт качественных результатов. Существует ряд способов улучшить «восприятие» сети.

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

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

Фильтрация выполняется для «зашумленных» данных.

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

Выбор топологии сети.

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

Экспериментальный подбор характеристик сети.

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

Экспериментальный подбор параметров обучения

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

Собственно обучение сети.

В процессе обучения сеть в определенном порядке просматривает обучающую выборку. Порядок просмотра может быть последовательным, случайным и т. д. Некоторые сети, обучающиеся без учителя, например, сети Хопфилда просматривают выборку только один раз. Другие, например, сети Кохонена, а также сети, обучающиеся с учителем, просматривают выборку множество раз, при этом один полный проход по выборке называется эпохой обучения. При обучении с учителем набор исходных данных делят на две части - собственно обучающую выборку и тестовые данные; принцип разделения может быть произвольным. Обучающие данные подаются сети для обучения, а проверочные используются для расчета ошибки сети (проверочные данные никогда для обучения сети не применяются). Таким образом, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение. Если ошибка на обучающих данных продолжает уменьшаться, а ошибка на тестовых данных увеличивается, значит, сеть перестала выполнять обобщение и просто «запоминает» обучающие данные. Это явление называется переобучением сети или оверфиттингом. В таких случаях обучение обычно прекращают. В процессе обучения могут проявиться другие проблемы, такие как паралич или попадание сети в локальный минимум поверхности ошибок. Невозможно заранее предсказать проявление той или иной проблемы, равно как и дать однозначные рекомендации к их разрешению.

Проверка адекватности обучения.

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

Применение нейронных сетей для решения поставленной задачи.

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

3. Постановка задачи

Уравнения движения центра масс ЛА в нормальной земной системе координат описываются нелинейной системой ОДУ (1), где - скорость ЛА, - угол наклона траектории, - угол поворота траектории, - высота ЛА, - тангенциальная перегрузка, - нормальная перегрузка, - скоростной угол крена, - ускорение свободного падения [1]. Управления ЛА задаются вектором

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

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

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

В работе рассматривается подход к построению ОДЛА, основанный на построении нейронной сети, выходами которой являются непосредственно координаты точек, принадлежащие области достижимости или ее границе. Целью работы является исследование эффективности такого подхода на примере построения дальней границы ОДЛА.

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

где - время перехода на особый участок управления ,

Структура нейронных сетей

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

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

Входы - выходы нейронной сети НС1

Нейронная сеть 2 (НС2) предназначена для отыскания расстояния до дальней границы ОДЛА в заданном направлении, определяемом углами , . Нейроны входного слоя соответствуют элементам , , , Выходом сети является длина радиус-вектора конечного положения ЛА на дальней границе ОДЛА. Отметим, что, вообще говоря, существуют такие направления, в которых ЛА в момент времени Т вообще не может оказаться на дальней границе ОДЛА - «запрещенные» направления. Сеть НС2 не способна самостоятельно выявить эти направления.

Нейронная сеть 3 (НС3) определяет управление, приводящее ЛА на границу ОДЛА в заданном направлении , . Входами сети являются параметры , , , , а выходами - параметры управления , .

Во всех трех нейронных сетях в качестве функций активации выходного слоя сети используются линейные функции активации.

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

Схема исследования

Рассматривается задача, в которой величины , , варьируются в следующих пределах

(- скорость звука в воздухе):

Обучающая выборка составит из 4500 элементов. Из нее случайным образом будут выбирается 20% проверочных точек для определения момента окончания обучения. Начальные веса и пороговые элементы нейронов каждого слоя установятся в соответствии с алгоритмом инициализации Нгуен-Видроу (Nguyen-Widrow). Данный алгоритм выбирает такие их значения, чтобы область выходных значений каждого нейрона в слое была приблизительно равномерно распределена по области входных значений слоя. При генерации этих значений используются случайные числа.

Обучение каждой из сетей выполняется 10 раз с различными начальными весами и пороговыми значениями, затем выбирается сеть с минимальным значением ошибки. Исследование точности аппроксимации обученной сети выполнено с использованием тестовой выборки, содержащей более 20000 элементов. Точность аппроксимации оценивается следующими величинами: средняя относительная погрешность ; средняя абсолютная погрешность ; максимальная относительная погрешность ; максимальная абсолютная погрешность ; среднее квадратичное отклонение.

Выводы

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

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

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

Изменяется в нашу пользу практически на 15 секунд, в дальнейшем график продолжает двигаться в сторону 0, в конечном итоге мы ускорили процесс почти в 6 раз, что доказывает, что метод эффективен.

Но после подсоединения 6-го блока можно заметить, что время, затрачиваемое на решение задачи меняется в сторону 0, но с маленькой разницей. Поэтому можно сказать, что подключение больше 6-ти блоков будет влиять больше на массу ЛА, чем на сокращение времени решения задачи.

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

Размещено на Allbest.ru


Подобные документы

  • Особенности и основные этапы разработка компьютерной модели расчета траектории неуправляемого летательного аппарата, анализ модели динамики. Метод Эйлера как линейное приближение, использующее первые два члена ряда Тейлора, способы решения задач.

    курсовая работа [930,6 K], добавлен 14.01.2013

  • Разработка программы для создания системы дорог и городов, позволяющей пользователю реализовать проверку достижимости любого города. Выбор среды разработки, определение требований к программному продукту. Основные компоненты пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 18.07.2012

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

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Рост активности в области теории и технической реализации искусственных нейронных сетей. Основные архитектуры нейронных сетей, их общие и функциональные свойства и наиболее распространенные алгоритмы обучения. Решение проблемы мертвых нейронов.

    реферат [347,6 K], добавлен 17.12.2011

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

    курсовая работа [322,5 K], добавлен 14.03.2009

  • Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.

    контрольная работа [135,5 K], добавлен 30.11.2015

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

    курсовая работа [377,4 K], добавлен 26.02.2015

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

    дипломная работа [8,7 M], добавлен 29.06.2012

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

    реферат [158,2 K], добавлен 16.03.2011

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

    реферат [45,1 K], добавлен 20.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.