Расчетно-графическое задание - Архитектура высокопроизводительных систем - файл n1.doc

Расчетно-графическое задание - Архитектура высокопроизводительных систем
скачать (888 kb.)
Доступные файлы (1):
n1.doc888kb.13.10.2012 20:15скачать

n1.doc

Содержание





Содержание 2

1 Архитектура и организация вычислительных процессов в нейрокомпьютерах 3

1.1 История развития нейронных сетей 4

1.2 Биологический и искусственный нейрон 5

1.3 Нейронная сеть 8

1.4 Обучение нейронных сетей 11

1.5 Причины применения нейронных сетей 13

1.5. 1 Применение нейронных сетей 13

1.6 Вывод 16

2 Расчёт характеристик систем пакетной обработки 17

Рисунок 2.1 - Типовая структура СОО 17

2.1 Программная реализация 19

3 Механизм работы и защиты по привилегиям при выполнении команды CALL <селектор:смещение> 21

Список использованной литературы 23

Приложение А 24



1 Архитектура и организация вычислительных процессов в нейрокомпьютерах



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

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

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

  1. распределенное представление информации и параллельные вычисления;

  2. способность к обучению и обобщению;

  3. адаптивность;

  4. толерантность к ошибкам;

  5. низкое энергопотребление.

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

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

1.1 История развития нейронных сетей




Изучению человеческого мозга - тысячи лет. С появлением современной электроники, начались попытки аппаратного воспроизведения процесса мышления. Первый шаг был сделан в 1943 г. с выходом статьи нейрофизиолога Уоррена Маккалоха (Warren McCulloch) и математика Уолтера Питтса (Walter Pitts) про работу искусственных нейронов и представления модели нейронной сети на электрических схемах.

1949 г. - опубликована книга Дональда Хебба (Donald Hebb) "Организация поведения", где исследована проблематика настройки синаптических связей между нейронами.

1950-е гг. - появляются программные модели искусственных нейросетей. Первые работы проведены Натаниелом Рочестером (Nathanial Rochester) из исследовательской лаборатории IBM. И хотя дальнейшие реализации были успешными, эта модель потерпела неудачу, поскольку бурний рост традиционных вычислений оставил в тени нейронные исследования.

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

1958 г. - Джон фон Нейман (John fon Neumann) предложил имитацию простых функций нейронов с использованием вакуумных трубок.

1959 г. - Бернард Видров (Bernard Widrow) и Марсиан Хофф (Marcian Hoff) разработали модели ADALINE и MADALINE (Множественные Адаптивные Линейные Элементы (Multiple ADAptive LINear Elements)). MADALINE действовала, как адаптивный фильтр, устраняющих эхо на телефонных линиях. Эта нейросеть до сих пор в коммерческом использовании.

Нейробиолог Френк Розенблатт (Frank Rosenblatt) начал работу над перцептроном. Однослойный перцептрон был построен аппаратно и считается классической нейросетью. Тогда перцептрон использовался для классификации входных сигналов в один из двух классов. К сожалению, однослойный перцептрон был ограниченым и подвергся критике в 1969 г., в книге Марвина Мински (Marvin Minsky) и Сеймура Пейперта (Seymour Papert) "Перцептроны".

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

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

1982 г. - к возрождению интереса привело несколько событий. Джон Хопфилд (John Hopfield) представил статью в национальную Академию Наук США. Подход Хопфилда показал возможности моделирования нейронных сетей на принципе новой архитектуры.

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

С 1985 г. Американский Институт Физики начал ежегодные встречи - "Нейронные сети для вычислений".

1989 г. - на встрече "Нейронные сети для обороны" Бернард Видров сообщил аудитории о начале четвертой мировой войны, где полем боя являются мировые рынки и производства.

1990 г. - Департамент программ инновационных исследований защиты малого бизнеса назвал 16 основных и 13 дополнительных тем, где возможно использование нейронных мереж.

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


1.2 Биологический и искусственный нейрон




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

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

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

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

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


Рисунок 1.1 - Структура пары типичных биологических нейронов
Дендриты идут от тела нервной клетки к другим нейронам, где они принимают сигналы в точках соединения, называемых синапсами, как показано на рисунке 1.1. Принятые синапсом входные сигналы передаются к телу нейрона. Здесь они суммируются, причем одни входы стремятся возбудить нейрон, другие — воспрепятствовать его возбуждению [2].

Когда суммарное возбуждение в теле нейрона превышает некоторый порог, нейрон возбуждается, посылая по аксону сигнал другим нейронам.

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

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

Рисунок 1.2 - Модель искусственного нейрона
Множество входных сигналов, обозначенных x1,x2xi, поступает на искусственный нейрон. Эти входные сигналы, в совокупности обозначаемые вектором X, соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигнал умножается на соответствующий вес w1,w2wi, и поступает на суммирующий блок, обозначенный ?. Каждый вес соответствует "силе" одной биологической синаптической связи. (Множество весов в совокупности обозначается вектором W.) Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход, который мы будем называть NET. В векторных обозначениях это может быть компактно записано следующим образом:
NET = XW.
Сигнал NET далее, как правило, преобразуется активационной функцией F и дает выходной нейронный сигнал OUT. Активационная функция может быть обычной линейной функцией
OUT = F(NET),
где F — константа, пороговой функцией
,
где T — некоторая постоянная пороговая величина, или же функция, более точно моделирующая нелинейную передаточную характеристику биологического нейрона и предоставляющей нейронной сети большие возможности.

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


1.3 Нейронная сеть




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

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


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

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

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


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

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

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

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

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


1.4 Обучение нейронных сетей




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

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

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

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

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

В искусственной нейронной сети, использующей обучение по Хэббу, наращивание весов определяется произведением уровней возбуждения передающего и принимающего нейронов. Это можно записать как
,
где — значение веса от нейрона i к нейрону j до подстройки, — значение веса от нейрона i к нейрону j после подстройки, ?— коэффициент скорости обучения, — выход нейрона i и вход нейрона j, — выход нейрона j.

Сети, использующие обучение по Хэббу, конструктивно развивались, однако за последние 20 лет появились и разрабатывались более эффективные алгоритмы обучения. В частности, были развиты алгоритмы обучения с учителем, приводящие к сетям с более широким диапазоном характеристик обучающих входных образов и большими скоростями обучения, чем использующие простое обучение по Хэббу.[5]

1.5 Причины применения нейронных сетей




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

Сравнительные характеристики компьютера с архитектурой фон Неймана и нейронной сети представлены в таблице 1.
Таблица 1 – Сравнительные характеристики




Компьютер

Нейронная сеть

Процессор

Сложный

Простой

Высокоскоростной

Низкоскоростной

Один или несколько

Большое количество

Память

Отдельно от процессора

В процессоре

Локализированная

Распределенная

Адресация по адресу

Адресация по смыслу

Вычисления

Централизованные

Распределенные

Последовательные

Параллельные

Сохраненные программы

Самообучение

Надежность

Уязвимость

Живучесть

Специализация

Числовые операции

Проблемы восприятия

Среда функционирования

Строго вызначеное

Плохо вызначенное

Строго ограниченное

Без ограничений

Функции

Логично,
через правила,
концепции, вычисления

Через изображения,
рисунки, управление

Метод обучения

По правилам

По примерам

Применение

Числовая обработка информации

Распознавание языка,
распознавание образов,
распознавание текстов


1.5. 1 Применение нейронных сетей




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

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

Аппроксимация функций. Предположим, что есть обучающая выборка ((x1,y1), (x2,y2)..., (xn,yn)) (пары данных вход-выход), которая генерируется неизвестной функцией F, искаженной шумом. Задача аппроксимации состоит в нахождении неизвестной функции F. Аппроксимация функций необходима при решении многочисленных инженерных и научных задач моделирования.

Предвидение/прогноз. Пусть заданы n дискретных отсчетов {y(t1), y(t2), ..., y(tn)} в последовательные моменты времени t1, t2,..., tn . Задача состоит в предвидении значения y(tn+1) в следующий момент времени tn+1. Предвидение/прогноз имеют большое значение для принятия решений в бизнесе, науке и технике (предвидение цен на фондовой бирже, прогноз погоды).

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

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

Управление. Рассмотрим динамическую систему, заданную совокупностью {u(t), y(t)}, где u(t) - входное управляющее воздействие, а y(t) - выход системы в момент времени t. В системах управления с эталонной моделью целью управления является расчет такого входного воздействия u(t), при котором система действует по желательной траектории, заданной эталонной моделью. Примером является оптимальное управление двигателем.

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

  1. множество данных, содержащих информацию, что характеризует проблему;

  2. соответственно установленное по размерам множество данных для обучения и тестирования сети;

  3. понимание базовой природы решаемой проблемы;

  4. выбор функции сумматора, передаточной функции и методов обучения;

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

  6. соответствующая мощность обработки.

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

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

1.6 Вывод




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

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

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

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

2 Расчёт характеристик систем пакетной обработки




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

Рисунок 2.1 - Типовая структура СОО




Система состоит из процессора (Пр), одной или нескольких шин (Ш), внешней памяти накопителей на жестких (ЖД) и гибких (МД) дисках, мультиплексного канала (МК), а также множества терминалов (Т), которые предназначены для связи с пользователями.

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

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

При синтезе СОО определяются:

а) быстродействие процессора;

б) количество шин, МД, ЖД.

Стоимость системы вычисляется по формуле

,
где SI и В – стоимость и быстродействие процессора;

S2...Sn – стоимости типовых устройств;

m – количество устройств i-ого типа;

n-1 – количество типов стандартных устройств.
Среднее время ответа определяется по формуле:

где i – среднее количество обращений к i-ому устройству;

vi – среднее время занятости стандартного устройства типа i=2,n;

i – среднее количество обращений к процессору (этапов счета);

 – среднее число процессорных операций. А - интенсивность потока задач, поступающих в систему.

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

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

Устройства описываются следующими параметрами:

- МД и ЖД - средним временем доступа к данным. – vmd и vzd и емкостью накопителя G md и Gzd соответственно;

- шина данных - средним временем передачи данных - vdb.

Задачи, решаемые системой, по своим параметрам делятся на несколько классов, каждый из которых характеризуется:

- интенсивностью k поступления потока запросов на решение;

- трудоемкостью k (количеством) процессорных операций;

- множеством файлов Fj используемых задачами;

- числом обращений Nkj к файлу Fj в процессе решения задачи k-того класса.

Файлы Fj (J=l,k) задаются общей длиной файла Gj средней длиной записи qj, которая передаётся при обмене информацией между оперативной и внешней памятью.

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

2.1 Программная реализация




Программа была разработана в Microsoft Visual Studio 2011 Ultimate с помощью языка программирования Visual C#. Для работы программы требуется .NET Framework версии не ниже чем 2.0.

Интерфейс программы представлен на рисунке 2.2.


Рисунок 2.2 – Интерфейс программы
Для синтеза СОО необходимо выбрать один из вариантов, и нажать кнопку «Рассчитать», в результате чего буду показаны результаты всех расчетов, как показано на рисунке 2.3.


Рисунок 2.3 – Результат работы программы

Для просмотра всех исходных данных по вариантам необходимо нажать кнопку «Данные». На экране появиться окно с всей необходимой информацией, как показано на рисунке 2.4.


Рисунок 2.4 – Окно «Данные»
Просмотр всех таблиц данных осуществляется переключением вкладок.

Листинг программы представлен в Приложение А.

3 Механизм работы и защиты по привилегиям при выполнении команды CALL <селектор:смещение>




По заданию выполнение команды должно происходить через шлюз задачи. При использовании шлюза задачи команда CALL должна задать селектор с битом TI=1, для выбора необходимого селектора TSS из локальной таблицы. Предположим что текущий уровень привилегий CPL = 1 (01).










15






















7



















0




0

0

0

0

0

0

0

0

0

1

0

1

0

1

1

0

Рисунок 3.1 - Селектор команды (RPL = 2)
Этот селектор указывает на номер дескриптора шлюза - 10. Но при всем этом для доступа к шлюзу должно соблюдаться условие DPL >= max(CPL,RPL) – (3>2), а селектор TSS иметь бит TI=0.
























































63

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

36

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

0

0

1

0

1

 

 

 

 




31

Селектор TSS

15

 

 

 

 

 

 

 

7

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

























 

 

 

 

 

 

 

 




















































DPL

 





































Рисунок 3.2 – Дескриптор шлюза
Селектор дескриптора шлюза задачи указывает на номер дескриптора сегмента TSS - 17. Для обращения к нему, нужно этот селектор загрузить в регистр TR, и затем произойдет выборка дескриптора TSS из глобальной таблицы.




15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

Рисунок 3.3 - Регистр TR
При выборе дескриптора TSS его поле DPL не контролируется, т.е. уровень привилегий кода входной задачи не играет роли.




















































63

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

0

0

0

1

0

0

1

0

1

1

0

0

0

0

0

0

1

1

0

0

1

0

0

1

1

0

0

1

0

0

1

1




31

Базовый адрес

15

Размер сегмента

0

0

0

0

0

0

1

0

0

0

0

1

1

0

1

0

0

0

0

0

0

0

0

1

1

1

0

1

0

1

0

0

0

Рисунок 3.4 - Дескриптор TSS
Базовый адрес в дескрипторе TSS – 1293434h указывает на расположение сегмента TSS в памяти. Адрес задачи, на которую будет произведено переключение, храниться в регистрах CS и EIP. Для получения содержимого этих регистров нужно получить их адреса. Для этого нужно к базовому адресу прибавить 20 и 4С – смещения для регистров EIP и CS соответственно. Получается что адрес CS – 1293454h, адрес EIP – 1293480h



15

 

 

 

 

 

 

 

7

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

1

Рисунок 3.5 – Регистр CS


31

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

0

1

0

1

0

1

0

0

0

1

0

0

1

0

0

0

0

0

0

0

1

0

0

0


Рисунок 3.6 – Регистр EIP
Далее начинается выполнение новой задачи посредством выборки команды по содержимому регистров CS и EIP сегмента TSS.

Список использованной литературы




1 Тарков М.С. Нейрокомпьютерные системы. БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2006.

2 Уоссермен, Ф. Нейрокомпьютерная техника: Теория и практика. М.: Мир, 1992. — 240 с.

3 Тарков М.С.Нейрокомпьютерные системы. БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2006.

4 Круглов В.В, Борисов В.В. Искусственные нейронные сети. Теория и практика. М.: Горячая линия - Телеком, 2001. — С. 382.

5 Беркинблит М. Б. Нейронные сети — М.: МИРОС и ВЗМШ РАО, 1993. — 96 с.

Приложение А



Листинг программы
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;
namespace vpis

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}
private void button3_Click(object sender, EventArgs e)

{

Close();

}
private void show_data_Click(object sender, EventArgs e)

{

show_data frm = new show_data();

frm.Show();

}
private void raschet_Click(object sender, EventArgs e)

{

double intensiv=0;
listBox2.Items.Clear();

if (listBox1.SelectedIndex == -1)

{

MessageBox.Show("Выберите вариант");

}

else

{

string variant = listBox1.SelectedItem.ToString();

string[] my = ReadVariant("zadachi.txt", Convert.ToInt16(variant));
int[] zadachi = new int[my.Length];

for (int i = 0; i <= my.Length - 1; i++) zadachi[i] = Convert.ToInt16(my[i]);//Задачи варианта
double[] intensivs = new double[my.Length];

for (int i = 0; i <= my.Length - 1; i++)

{

string[] inten = ReadVariant("intensiv_zadac.txt", zadachi[i]); //интенсивности задач

intensivs[i] = Convert.ToDouble(inten[0]);

intensiv = intensiv + Math.Round(intensivs[i], 2);

}
listBox2.Items.Add("Интенсивность = " + intensiv);

int[] trud_proc_k = new int[zadachi.Length];

for (int i = 0; i <= zadachi.Length - 1; i++)

{

my = ReadVariant("trud_proc_oper.txt", Convert.ToInt16(zadachi[i]));//трудоемкость проц операций варианта

trud_proc_k[i] = Convert.ToInt16(my[0]);

}
//трудоемкость процессорных операций для средней задачи

double intensiv_k = 0;

for (int i = 0; i <= zadachi.Length - 1; i++)

{

intensiv_k = intensiv_k + intensivs[i] * trud_proc_k[i];

}

//listBox2.Items.Add(intensiv_k);

double trud_proc = Math.Round(intensiv_k / intensiv, 2);

listBox2.Items.Add("Трудоемкость проц операций = " + trud_proc);
double sum_sr_chisl = 0;

double[] d_k = new double[10];

double d = 0;

for (int i = 0; i < 10; i++)

{

sum_sr_chisl = 0;

for (int j = 0; j <= zadachi.Length - 1; j++)

{

my = ReadVariant("chisl_obras_files.txt", zadachi[j]);

sum_sr_chisl = sum_sr_chisl + Convert.ToInt16(my[i]) * intensivs[j];

}

d_k[i] = Math.Round(sum_sr_chisl / intensiv, 2);

d = d + d_k[i];

}

listBox2.Items.Add("Суммарное число обращений к файлам = " + d);

dataGridView1.RowCount = 2;

dataGridView1.Rows[0].Cells[0].Value = "Среднее число обращений к файлу";

dataGridView1.Rows[1].Cells[0].Value = "Вероятность обращения к файлу";

double[] p = new double[10];
for (int i = 0; i < 10; i++)

{

p[i] = Math.Round(d_k[i] / d, 2);

dataGridView1.Rows[0].Cells[i + 1].Value = d_k[i];

dataGridView1.Rows[1].Cells[i + 1].Value = p[i];
}
double trud_0 = Math.Round(trud_proc / (d + 1), 2);

listBox2.Items.Add("Средняя трудоемкость этапов счета = " + trud_0);
double p_zd = 0;

for (int i = 0; i < 10; i++)

{

p_zd = Math.Round(p_zd, 2) + p[i];

}

listBox2.Items.Add("Вероятность обращения к файлам на ЖД = " + p_zd);
my = ReadVariant("param_nakop.txt", Convert.ToInt16(variant));

double m_vr = intensiv * Convert.ToDouble(my[0]) * p_zd;
my = ReadVariant("param_files.txt", 1);

double Gmd = 0;

for (int i = 0; i <= my.Length - 1; i++)

{

Gmd = Gmd + Convert.ToDouble(my[i]);

}

listBox2.Items.Add("Gmd = " + Gmd);
my = ReadVariant("param_files.txt", 1);

double Gzd = 0;

for (int i = 0; i <= my.Length - 1; i++)

{

Gzd = Gzd + Convert.ToDouble(my[i]) / 1024;

}

listBox2.Items.Add("Gzd = " + Gzd);
my = ReadVariant("param_nakop.txt", Convert.ToInt16(variant));
double m_vr1 = Gmd / Convert.ToDouble(my[2]);
//минимальное количество ЖД

double minZd = Math.Max(intensiv * d * p_zd * Convert.ToDouble(my[0]), m_vr1);
int kol_Zd = (int)(minZd) + 1;

listBox2.Items.Add("Количество ЖД = " + kol_Zd);
//минимальное количество MД

double p_md = Math.Round(Math.Abs(1 - p_zd), 2);
m_vr1 = Gzd / Convert.ToDouble(my[3]);

double minMd = Math.Max(intensiv * d * p_md * Convert.ToDouble(my[1]), m_vr1);
int kol_Md = (int)(minMd) + 1;

listBox2.Items.Add("Количество МД = " + kol_Md);
//количество шин данных

my = ReadVariant("sr_vrem_pered_inf.txt", Convert.ToInt16(variant));

double minShd = intensiv * d * Convert.ToDouble(my[0]);
int kol_Shd = okrugl(minShd);

listBox2.Items.Add("Количество ШД = " + kol_Shd);
double alf_md = p_md * d;

double alf_zd = p_zd * d;

listBox2.Items.Add("alf_md = " + alf_md);

listBox2.Items.Add("alf_zd = " + alf_zd);
//среднее время ответа

double B = 0;

for (int i = 0; i <= zadachi.Length - 1; i++)

{

my = ReadVariant("trud_proc_oper.txt", Convert.ToInt16(zadachi[i]));//трудоемкость проц операций варианта

B = B + Convert.ToInt16(my[0]);

}

B = B / 5;

listBox2.Items.Add("Быстродействие проц-ра = " + B);

double a1 = d + 1;

my = ReadVariant("param_nakop.txt", Convert.ToInt16(variant));

double U = trud_proc * a1 / B + alf_md * kol_Md * Convert.ToDouble(my[1]) / (kol_Md - intensiv * alf_md * Convert.ToDouble(my[1])) + alf_zd * kol_Zd * Convert.ToDouble(my[0]) / (kol_Zd - intensiv * alf_zd * Convert.ToDouble(my[0]));

my = ReadVariant("sr_vrem_pered_inf.txt", Convert.ToInt16(variant));

U = U + kol_Shd * Convert.ToDouble(my[0]) / (kol_Shd - intensiv * Convert.ToDouble(my[0]));

listBox2.Items.Add("Среднее время ответа системы = " + Math.Round(U,2));

double stoim_s = 0;

my = ReadVariant("stoim_ustr.txt", Convert.ToInt16(variant));

double S1 = B * Convert.ToDouble(my[0]);

listBox2.Items.Add("Стоимость процессора = " + S1);

stoim_s = S1 * B + Convert.ToDouble(my[1]) * kol_Zd + Convert.ToDouble(my[2]) * kol_Md + Convert.ToDouble(my[3]) * kol_Shd;

listBox2.Items.Add("Стоимость системы = " + stoim_s);

}

}
private string[] ReadVariant(string nameF, int Nvar)

{

FileStream fs = new FileStream(nameF, FileMode.Open, FileAccess.Read);

StreamReader sr = new StreamReader(fs);

string myStr="";

string[] paramStr;

for (int i = 0; i < Nvar; i++)

{

myStr = sr.ReadLine();

}

paramStr = myStr.Split(' ');

sr.Close();

fs.Close();

return paramStr;

}
private int okrugl(double var)

{

double vr = var - Math.Truncate(var);

int otv;

if (var >= 0.5)

{

otv = (int)var + 1;

}

else otv = (int)var;
return otv;

}

}

}






Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации