434

Моделирование сети Хэмминга

Курсовая

Информатика, кибернетика и программирование

Структурная схема сети Хэмминга. Разработка концептуальной объектной модели системы. Скриншот главного окна программы KR.exe. Основными алгоритмами программы являются алгоритм обучения нейронной сети и алгоритм Хэмминга.

Русский

2013-01-06

604.5 KB

131 чел.

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

РыбинскИЙ  государственнЫЙ авиационнЫЙ технИЧЕСКИЙ УНИВЕРСИТЕТ им. П. А. СОЛОВЬЕВА

Факультет радиотехники, электроники и информатики

Кафедра   вычислительных систем

КУРСОВОЙ  ПРОЕКТ

по  дисциплине

Технология программирования

на тему

Моделирование сети Хэмминга

Пояснительная записка

ТП.230101.000.000.000.ПЗ

Студент группы ВС1-08………………………………………(Щербатова М. А.)

(Код)   (Подпись, дата)   

Руководитель канд. техн. наук, доцент……………………...(Паламарь И. Н.)

                              (Подпись, дата)   

Нормоконтролер канд. техн. наук, доцент ………………….(Паламарь И. Н.)

                            (Подпись, дата)   

Рыбинск  2011

Содержание

Введение

1 Анализ технического задания

2 Разработка математической модели системы

3 Разработка концептуальной модели системы

4 Проектирование программы

4.1 Разработка пользовательского интерфейса

4.2 Разработка алгоритмов

4.3 Кодирование программы

4.3.1 Модуль main.pas

4.3.2 Модули Grahic.pas и Help1.pas

5 Разработка контрольного примера (тестирование)

6 Руководство пользователя

Заключение

Список использованных источников


Введение

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

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

Данная программа предназначена для решения такой задачи как распознавание образа, причем сеть Хемминга способна восстанавливать образ при 50-60 % его зашумления. Программа позволяет работать с исходными множествами образов (до 26 образов во множестве), которые находятся в файлах формата .txt в кодированном виде. Также пользователь может создавать свои образы, добавлять, удалять образы из множества, накладывать шумы (белый, черный, инверсия), сохранять пользовательские изменения, а также наглядно графически отображать ход процесса изменения уровней нейронов второго слоя. Если необходимо, можно отключать графику и получать результат мгновенно в отдельном окне, где будет выдан распознанный образ и его номер во множестве.   

1 Анализ технического задания

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

В качестве входных данных будут выступать файлы формата .txt, содержащие множество образов (до 26) в кодированном виде, либо множество образов, созданных пользователем.  Выходные данные – это графическое отображение распознанного образа и его номер во  входном множестве.

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

Программа разработана в среде Delphi 7.0.

2 Разработка математической модели системы

Структура нейронной сети Хэмминга представлена на рисунке 2.1.

Рисунок 2.1 – Структурная схема сети Хэмминга

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

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

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

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

Тип входных сигналов - бинарные векторы, выходных – целые числа. Число синапсов в сети равно N*M.

Рассмотрим алгоритм работы сети Хэмминга. Вначале идет инициализация весовых коэффициентов первого слоя (шаг 1) – формула (2.1):

                                         (2.1)

где х – запоминаемые образы, i – соответствующий компонент вектора х, j – номер образа, n – размерность вектора х, m – количество запоминаемых образов.

На входы сети подается неизвестный вектор Х{хi:i=0…n-1}, исходя из которого рассчитываются состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя) (шаг 2) – формула (2.2):

                                         (2.2)

где х – неизвестный образ, Т=n/2 – порог активационной функции (нелинейный/линейный преобразователь, изменяющий выходной сигнал сумматора).

После этого полученными значениями инициализируются значения аксонов второго слоя – формула (шаг 3) (2.3):

                                         (2.3)

Далее вычисляются новые состояния нейронов второго слоя – формулы (2.4), (2.5):

                          (2.4)

где p – номер итерации, 0<e<1/m.

                                (2.5)

где f – пороговая активационная функция – формула (2.6):

                                                     (2.6)

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

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

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

В реализуемой программе организация хранения информации будет представлена в виде файлов формата .txt в кодированном виде. Этот способ организации данных будет применен из-за его простоты и распространенных методов работы с файлами такого формата.

3 Разработка концептуальной объектной модели системы

Программа состоит из трех модулей:

- основное окно «Нейронная сеть Хэмминга» (MainForm). На данной форме находятся все управляющие элементы;

- окно «Графика» (GraphicForm) вызывается при выполнении алгоритма Хэмминга. На форме отображается ход алгоритма – изменение состояний нейронов второго слоя;

- окно «Help» (HelpForm) содержит руководство пользователя.

В программе созданы свои классы с наследованием, описанные в модуле Main.pas. Два других модуля не содержат собственных классов. Был создан класс-предок  TNeuron0, имеющий абстрактный метод. От этого класса наследуется класс-потомок TNeuron. Он является предком следующих классов: класса нейронов первого уровня TNeuronFirstLevel и класса нейронов второго уровня TNeuronSecondLevel. Также были созданы: класс неизвестного входного вектора TUnknownVector, класс одного изображения TImage, класс нейронной сети Хэмминга THammingNetwork и класс обработки исключительных ситуаций EError1. Классы имеют конструкторы, деструкторы, поля, методы и свойства. UML-диаграммы представлены на рисунке 3.1.

Рисунок 3.1 – UML-диаграммы

4 Проектирование программы

4.1 Разработка пользовательского интерфейса

После запуска программы KR.exe открывается окно, вид которого представлен на рисунке 4.1.1.

Рисунок 4.1.1 – Скриншот главного окна программы KR.exe

На данном окне расположены следующие вкладки меню: «Действия над образами», «Работа нейронной сети», «Создание помех», «Help».

Если пользователь желает работать с уже имеющимися образами, то он должен загрузить данные из файла формата .txt, в котором находится множество образов в кодированном виде. Были созданы два таких файла: «Арабские цифры.txt»  и «Английский алфавит.txt». Чтобы открыть эти файлы, необходимо выбрать: «Действия над образами»\ «Открыть файл для работы с образами». Появится окно, представленное на рисунке 4.1.2.

Рисунок 4.1.2 – Скриншот открытия файла

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

Рисунок 4.1.3 – Скриншот главного окна программы KR.exe после открытия файла «Английский алфавит.txt»

Если пользователь создал свое множество образов или хочет редактировать уже существующее, то он может сохранить изменения и свой проект, нажав: «Действия над образами»\ «Сохранить образы в файл». Необходимо сохранять только в  файл формата .txt.

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

Рисунок 4.1.4 – Скриншот главного окна программы KR.exe после зашумления образа белым и черным одновременно

Станет доступной вкладка «Работа нейронной сети»\«Выполнить алгоритм Хэмминга». После нажатия на данную вкладку откроется форма «Графика», на которой будет отображено динамическое изменение уровней нейронов второго слоя. По окончании вычислений на данной форме останется один столбец с некоторым значением, которое будет отличаться от значений в других столбцах. Чем выше будет это значение, тем точнее распознан образ. Значения в остальных столбцах опустятся до нуля (может быть ситуация, когда значения во всех столбцах останутся на одном уровне, причем это значение будет сильно отличаться от нуля). Вышеописанное представлено на рисунке 4.1.5.

Рисунок 4.1.5 – Скриншот окна «Графика» программы KR.exe после выполнения алгоритма

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

Рисунок 4.1.6 – Скриншот главного окна программы KR.exe после выполнения алгоритма

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

Для вызова справки в главном окне программы нужно меню «Help». На экран выведется руководство пользователя к данной программе.


4.2 Разработка алгоритмов

Основными алгоритмами программы являются алгоритм обучения нейронной сети и алгоритм Хэмминга.

Алгоритм обучения нейронной сети представлен на рисунке 4.2.1.

Рисунок 4.2.1 – Блок-схема алгоритма обучения нейронной сети

Алгоритм Хэмминга представлен на рисунке 4.2.2.

Рисунок 4.2.2 – Блок-схема алгоритма Хэмминга


4.3 Кодирование программы

4.3.1 Модуль main.pas

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

TUnknownVector=class – класс для входного вектора;

TImage=class – класс для одного изображения;

TNeuron0=class – класс-предок для класса нейронов. Данный класс содержит следующие свойство и метод:

property Y:real read Fy write SetY – свойство доступа к полю класса;

procedure SetY(Value:real; virtual;abstract  – абстрактный метод записи в поле класса;

TNeuron(TNeuron0)=class – класс-предок для нейронов первого и второго уровней. Данный класс содержит следующие свойство и метод:

property Y:real read Fy write SetY – свойство доступа к полю класса;

procedure SetY(Value:real) – метод записи в поле класса;

TNeuronFirstLevel=class(TNeuron) – класс-потомок класса TNeuron нейронов первого уровня. Данный класс содержит элементы:

procedure Setbk(Value:real) - метод записи в поле класса;

property bk:real read Fbk write Setbk – свойство доступа к полю класса;

constructor Create(TekIm:integer) - конструктор класса;

TNeuronSecondLevel=class(TNeuron) класс-потомок класса TNeuron нейронов второго уровня. Данный класс содержит элементы:

procedure Setyt1(Value:real) - метод записи в поле класса;

property Yt1:real read Fyt1 write Setyt1 – свойство доступа к полю класса;

THammingNetwork=class(TObject,IMyInterface) – класс-контейнер, содержащий массивы из нейронов первого и второго уровней. Данный класс содержит элементы:

constructor Createконструктор класса;

destructor Destroy;override – перекрытый деструктор класса (заменяет виртуальный родительский метод класса);

function ActFunction(Arg:real):realфункция, реализующая активационную функцию в алгоритме обучения нейронной сети;

function QueryInterface(const IID: TGUID; out Obj): HResult; stdcallфункция, позволяющая программе или любой другому объекту узнать обо всех остальных имеющихся у этого объекта интерфейсах;

function _AddRef: Integer; stdcallфункция, выполняющая задачу сопровождения жизненного цикла COM-объекта. При каждом обращении к _Addref содержимое счетчика ссылок данного объекта увеличивается на единицу;

function _Release: Integer; stdcall - функция, выполняющая задачу сопровождения жизненного цикла COM-объекта. При каждом обращении к _Release содержимое счетчика ссылок данного объекта уменьшается на единицу;

EError1=class(Exception) – класс для исключительных ситуаций. Содержит конструктор:

constructor Create – конструктор класса.

Также были реализованы следующие процедуры:

procedure TMainForm.FormCreate(Sender: TObject) – конструктор главной формы;

procedure TMainForm.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) – процедура реакции на событие нажатия кнопкой мышки в области компонента;

procedure TMainForm.StringGrid1DrawCell(Sender: TObject; ACol,  ARow: Integer; Rect: TRect; State: TGridDrawState)процедура закрашивания ячеек первого окна;

procedure TMainForm.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState) - процедура закрашивания ячеек второго окна;

procedure TMainForm.Button1Click(Sender: TObject) – процедура реакции на событие нажатия на кнопку «Следующий образ»;

procedure TMainForm.Button2Click(Sender: TObject) - процедура реакции на событие нажатия на кнопку «Предыдущий образ»;

procedure TMainForm.ClearWindowClick(Sender: TObject) - процедура реакции на событие нажатия на кнопку «Очистить формы»;

procedure TMainForm.FormDestroy(Sender: TObject) - деструктор главной формы;

procedure TMainForm.AddImageClick(Sender: TObject) - процедура реакции на событие нажатия на кнопку «Добавить образ во множество»;

procedure TMainForm.DelImageClick(Sender: TObject) - процедура реакции на событие нажатия на кнопку «Удалить текущий образ из множества»;

procedure TMainForm.SaveImageClick(Sender: TObject) - процедура реакции на событие нажатия на кнопку «Сохранить текущий образ во множестве»;

procedure TMainForm.N2Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Открыть файл для работы с образами»;

procedure TMainForm.N6Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Обучить сеть»;

procedure TMainForm.N7Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Подать образ на вход сети»;

procedure TMainForm.N8Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Выполнить алгоритм Хэмминга»;

procedure TMainForm.N3Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Сохранить образы в файл»;

procedure TMainForm.N12Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Инвертировать образ»;

procedure TMainForm.N10Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Зашумить черным»;

procedure TMainForm.N11Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Зашумить белым»;

procedure TMainForm.N13Click(Sender: TObject) - процедура реакции на событие нажатия на вкладку меню «Help».

4.3.2 Модули Graphic.pas и Help1.pas

Модули Graphic.pas и Help1.pas содержат только стандартный класс TFORM. В модуле Graphic.pas были реализованы следующие процедуры:

   рrocedure PaintOneGrid(Sender:TStringGrid;Im:integer) - процедура задания ячейкам столбцов значений;

   рrocedure MyGraphicsпроцедура, реализующая выбор столбца, соответствующего номеру образа (в соответствии со значением выходов нейронов второго слоя);

   procedure MyDelay(Sec:Integer) – процедура реализации паузы;

   procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState) - процедура закрашивания ячеек столбцов;

   procedure FormShow(Sender: TObject) – процедура запуска формы «Графика».

В модуле Help1.pas была реализована следующая процедура:

   procedure FormCreate(Sender: TObject) – конструктор формы.

5 Разработка контрольного примера (тестирование)

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

После открытия нужного файла (в данном случае будет открыт файл «Английский алфавит.txt») на главной форме в левом окне отобразится графическое представление образов. Вместе с тем, под левым окном отобразится дополнительная информация: количество образов, прочитанных из файла, а так же номер текущего образа, выбранного нами. Вышеописанное представлено на рисунке 5.1.

Рисунок 5.1 – Скриншот главного окна программы KR.exe после открытия файла «Английский алфавит.txt»

Далее пользователь может изменять образы по своему усмотрению: можно зашумить  или инвертировать образ, используя меню «Создание помех», а также видоизменить образ с помощью вкладки «Перо». Выберем «Перо 4» и внесем изменения в текущий образ. Видоизмененный образ представлен на рисунке 5.2.

Рисунок 5.2 – Скриншот главного окна программы KR.exe после изменения образа с помощью пера

Если необходимо работать с множеством образов, содержащим только что измененный образ или с образами, созданными пользователем, то необходимо нажать кнопку «Сохранить текущий образ во множестве».

Чтобы начать работу с нейронной сетью, сначала необходимо обучить нейронную сеть множеству выбранных образов, нажав «Работа нейронной сети»\ «Обучить сеть», после чего станет доступной вкладка «Работа нейронной сети»\«Подать образ на вход сети». Далее необходимо выбрать образ из множества, видоизменить его своему усмотрению и нажать «Работа нейронной сети»\«Подать образ на вход сети». Вышеописанное представлено на рисунках 5.3, 5.4, 5.5.

Рисунок 5.3 – Скриншот главного окна программы KR.exe после нажатия кнопки «Сохранить текущий образ во множестве» и  вкладки меню «Работа нейронной сети»\ «Обучить сеть»

Рисунок 5.4 – Скриншот главного окна программы KR.exe после нажатия  вкладки меню «Создание помех»\«Инвертировать образ»

Рисунок 5.5– Скриншот главного окна программы KR.exe после нажатия  вкладки меню «Работа нейронной сети»\«Подать образ на вход сети»

Теперь стала доступной вкладка «Работа нейронной сети»\«Выполнить алгоритм Хэмминга». После нажатия на данную вкладку откроется форма «Графика», на которой будет отображено динамическое изменение уровней нейронов второго слоя. Это представлено на рисунке 5.6.

Рисунок 5.6 – Скриншот окна «Графика» программы KR.exe после выполнения алгоритма Хэмминга

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

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

При необходимости можно убрать галочку с параметра «Показать графику (изменение уровней нейронов второго слоя)» и форма «Графика» не будет отображаться после нажатия вкладки «Работа нейронной сети»\«Выполнить алгоритм Хэмминга», а результат алгоритма отобразится на главной форме мгновенно. Это можно увидеть на рисунке 5.7.

Рисунок 5.7 – Скриншот главного окна программы KR.exe после выполнения алгоритма

В данном случае программа выдала неверный образ. Это произошло потому, что нейронная сеть Хэмминга способна правильно распознавать только слабо зашумленные сигналы, а в данном примере уровень помех превышает 50%. Если к этому же входному образу применить не инвертирование, а двукратное зашумление черным, тогда сеть выдаст верный образ. Это представлено на рисунке 5.8.

Рисунок 5.8 – Скриншот главного окна программы KR.exe после выполнения алгоритма при двукратном зашумлении черным входного образа

6 Руководство пользователя

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

Если пользователь желает работать с уже имеющимися образами, то он должен загрузить данные из файла формата .txt, в котором находится множество образов в кодированном виде. Создано два таких файла: «Арабские цифры.txt»  и «Английский алфавит.txt». Чтобы открыть эти файлы, необходимо выбрать: «Действия над образами»\ «Открыть файл для работы с образами».

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

Если пользователь создал свое множество образов или хочет редактировать уже существующее, то он может сохранить изменения и свой проект, нажав: «Действия над образами»\ «Сохранить образы в файл». Необходимо сохранять только в  файл формата .txt.

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

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

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

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

Для вызова справки в главном окне программы нужно меню «Help». На экран выведется руководство пользователя к данной программе.


Заключение

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

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

Список использованных источников

Орлов С. А. Технологии разработки программного обеспечения [Текст]: учебное пособие / С. А. Орлов – СПб.: Питер, 2002. –  464 с.

СТП 1.01 – 2002. Текстовые документы. Общие требования к оформлению учебных документов [Текст]. – введ. 2002 – 01 – 01. – Рыбинск : РГАТА, 2002. – 28 с.

Камаев, В. А., Костерин В. В. Технологии программирования [Текст]: Учебник/ В. А. Камаев, В. В. Костерин. – 2-е изд., перераб. И доп. – Высш. шк., 2006. – 454 с. : ил.  ISBN 5-06-004870-5.


 

А также другие работы, которые могут Вас заинтересовать

6729. Условия обязательного представления документов, подтверждающих страну происхождения товаров 26.42 KB
  Условия обязательного представления документов, подтверждающих страну происхождения товаров. Для подтверждения СПТ сертификат о происхождении товара предоставляется в обязательном порядке в случае: предоставление таможенных преференций в отнош...
6730. Определение страны происхождения товаров из стран, которым Республика Беларусь (государства-участники Таможенного союза) во взаимной торговле предоставляет (-ют) преференциальный торговый режим 30.14 KB
  Определение страны происхождения товаров из стран, которым Республика Беларусь (государства-участники Таможенного союза) во взаимной торговле предоставляет (-ют) преференциальный торговый режим. На единой территории государств-участников ТС в отноше...
6731. Определение страны происхождения товаров из стран, которым Республика Беларусь (государства-участники Таможенного союза) во взаимной торговле предоставляет (-ют) торговый режим свободной торговли 28.4 KB
  Определение страны происхождения товаров из стран, которым Республика Беларусь (государства-участники Таможенного союза) во взаимной торговле предоставляет (-ют) торговый режим свободной торговли. На основании соглашения о создании зоны свободной то...
6732. Правовые основы определения таможенной стоимости товаров 29.82 KB
  Правовые основы определения таможенной стоимости товаров. Таможенная стоимость товаров применяется в качестве основы для обложения товаров таможенными пошлинами и налогами, исчисляемыми по адвалорной ставке либо адвалорной составляющей комбинированн...
6733. Методы определения таможенной стоимости товаров 27.97 KB
  Методы определения таможенной стоимости товаров. От выбора метода определения таможенной стоимости зависит не только размер рассчитываемой в таможенных целях цены пересекающего границу товара, но и величина платежей, базой для расчета которых выступ...
6734. Метод определения таможенной стоимости по цене сделки с ввозимыми товарами 28.93 KB
  Метод определения таможенной стоимости по цене сделки с ввозимыми товарами. Согласно ст.2 Соглашения от 25.01.2008г., основой определения таможенной стоимости ввозимых товаров должна быть в максимально возможной степени стоимость сделки с этими това...
6735. Ограничения в использовании метода определения таможенной стоимости по цене сделки с ввозимыми товарами 28.92 KB
  Ограничения в использовании метода определения таможенной стоимости по цене сделки с ввозимыми товарами. Для определения таможенной стоимости товаров не применяется метод по цене сделки если: Существуют ограничения в отношении прав покупателя ...
6736. Дополнительные начисления к цене сделки. Суммы, подлежащие вычитанию из цены сделки 29.48 KB
  Дополнительные начисления к цене сделки. Суммы, подлежащие вычитанию из цены сделки. В соответствии со ст. 5 Соглашения от 25.01.2008 г. при определении таможенной стоимости ввозимых товаров по стоимости сделки с ними к цене, фактически уплаченной и...
6737. Метод определения таможенной стоимости по цене сделки с идентичными товарами 29.04 KB
  Метод определения таможенной стоимости по цене сделки с идентичными товарами. Цена сделки с идентичным товаром может быть принята в качестве определения таможенной стоимости только в том случае, если на момент определения таможенной стоимости товара...