Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
Альтернативный способ записи рисунка. Предложенный выше способ хорош своей простотой и плох большим объемом данных. Большинство графических форматов файлов (например gif) обеспечивают высокую степень компрессии графической информации. Для использования этой возможности при записи поля графической информации на диск предлагается альтернативный формат. В этом формате первые два байта должны быть нулевыми. Поскольку в основном формате записи рисунков эти два байта формировали размер рисунка по горизонтали, нулевая ширина рисунка служит признаком использования альтернативного формата. Следующие пять байт хранят ascii коды типа графического формата. Используются коды заглавных букв латинского алфавита. Если тип графического стандарта содержит менее пяти символов (pcx, gif), то тип дополняется символами пробела справа. Следующие четыре байта, с восьмого по одиннадцатый, содержат число байт в графическом файле. Начиная с двенадцатого байта, идет информация, содержавшаяся в графическом файле.
Сопоставление элементов векторов правильных ответов, достоверности, вычисленных ответов, уверенности и оценки производится по следующему правилу. Первому полю типа правильный ответ соответствуют первое поле типа достоверность, первое поле типа вычисленный ответ, первое поле типа уверенность, первое поле типа оценка, второму — вторые и т. д.
Неопределенные значенияВ практике работы большинство таблиц данных не полны. То есть, часть данных в примерах задачника не известна. Задачник должен однозначно указать предобработчику неизвестные данные. Для этих целей для каждого типа входных данных определено специальное значение — неопределенное. Для передачи неизвестных значений используются следующие величины: 10-40 для действительных чисел и 0 для всех типов качественных признаков.
Пример описания задачникаВ этом разделе приведено описания простого задачника для прогнозирования курса американского доллара к рублю. Задачник содержит три примера. В разделе описания данных вместо символа табуляции использован символ «®», а вместо символа конца абзаца — «¶».
TaskBook CursValuty
Structure
Field" Цвет" tbColor Color End Field
Field" Вес" tbWeight Real End Field
Field" Дата" tbCommentReal End Field
Field" Текущий курс" tbInputReal End Field
Field" Курс на следующий день" tbAnswersReal End Field
Field" Достоверность курса" tbReliabilityReal End Field
Field" Предсказанный курс" tbCalcAnswersReal End Field
Field" Надежность предсказания" tbCalcReliabilityReal End Field
Field" Оценка предсказания" tbEstimation Real End Field
End Structure
Source
HFFFF®1.0®01.01.97®5773®5774®1.0®5775®0.1®0.07¶
HFFFF®1.0®02.01.97®5774®5776®1.0®5777®0.01®0.7¶
HFFFF®1.0®03.01.97®5776®5778®1.0®5779®0.2®0.007¶
End TaskBook
Стандарт второго уровня компонента задачник
В этом разделе описаны все запросы компонента задачник в виде процедур и функций. При описании используется синтаксис языков Turbo Pascal и С. В Паскаль варианте приведены заголовки функций и процедур. В С варианте — прототипы функций. Большинство запросов, реализуется в виде функций, сообщающих о корректности завершения операции.
Предполагается возможность одновременной работы нескольких сеансов одного задачника. Например, допускается редактирование задачника и одновременное обучение сети по тому же задачнику.
Все запросы к компоненту задачник можно разбить на следующие группы.
1. Чтение и запись задачника.
2. Начало и конец сеанса.
3. Перемещение по примерам.
4. Определение, получение и изменение данных.
5. Окраска примеров.
6. Установление структуры Задачника.
7. Добавление и удаление примеров.
8. Обработка ошибок.
Чтение и запись задачника
К этой группе запросов относятся запросы, работающие со всем задачником в целом. Эти запросы считывают задачник, сохраняют задачник на диске или выгружают ранее считанный или созданный задачник.
Прочитать задачник (tbAdd)Описание запроса:
Pascal:
Function tbAdd(CompName: PString): Logic;
C:
Logic tbAdd(PString CompName)
Описание аргумента:
CompName — указатель на строку символов, содержащую имя файла задачника.
Назначение — служит для считывания задачника.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Если в данный момент считан задачник, то генерируется запрос tbDelete. Если запрос tbDelete завершается неуспешно, то генерируется внутренняя ошибка 104 — попытка считывания задачника при открытых сеансах ранее считанного задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается.
3. Первые четыре символа строки CompName составляют слово File. Остальная часть строки содержит имя компонента и после пробела имя файла, содержащего компонент.
4. Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 102 — ошибка чтения задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
Записать задачник (tbWrite)Описание запроса:
Pascal:
Function tbWrite(CompName, FileName: PString): Logic;
C:
Logic tbWrite(PString CompName, PString FileName)
Описание аргументов:
CompName — указатель на строку символов, содержащую имя задачника.
FileName — имя файла, куда надо записать компонента.
Назначение — сохраняет задачник в файле.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Если в момент получения запроса отсутствует считанный задачник, то возникает ошибка 101 — запрос при отсутствии задачника, управление передается обработчику ошибок, а обработка запроса прекращается.
3. Задачник записывается в файл FileName под именем CompName.
4. Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 103 — ошибка записи задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
Закрыть задачник (tbDelete)Описание запроса:
Pascal:
Function tbDelete: Logic;
C:
Logic tbDelete()
Назначение — удаляет из памяти ранее считанный задачник.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Если есть открытые сеансы, то возникает ошибка 105 — закрытие задачника при открытых сеансах. Управление передается обработчику ошибок. Выполнение запроса прекращается.
3. Задачник закрывается. Запрос успешно завершается.
Начало и конец сеанса
К этой группе запросов относятся два запроса, открывающие и закрывающие сеансы работы с задачником.
Начало сеанса (InitSession)Описание запроса:
Pascal:
Function InitSession(NewColor: Color; Oper: Integer; Var Handle: Integer): Logic;
C:
Logic InitSession(Color NewColor, Integer Oper, Integer* Handle)
Описание аргументов:
NewColor — цвет для отбора примеров задачника в текущую выборку.
Oper — операция для отбора в текущую выборку. Должна быть одной из констант CEqual, CIn, CInclude, Cxclude, CIntersect
Handle — номер сеанса. Начальное значение не важно. В этом аргументе возвращается номер сеанса.
Назначение — начинает сеанс. Отбирает текущую выборку.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Если аргумент Oper является недопустимым, то возникает ошибка 106 — недопустимый код операции при открытии сеанса, управление передается обработчику ошибок. Сеанс не открывается. Возвращается значение ложь.
3. Создается новый сеанс (в одно-сеансовых задачниках просто инициируется сеанс). Номер сеанса заносится в аргумент Handle.
4. Значения аргументов NewColor и Oper сохраняются во внутренних переменных задачника
5. Указателю текущего примера присваивается состояние «до первого примера»
6. InitSession:= Next(Handle) — результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Следующий пример».
Конец сеанса (EndSession)Описание запроса:
Pascal:
Procedure EndSession(Handle: Integer);
C:
void EndSession(Integer Handle)
Назначение — закрывает сеанс.
Описание аргументов:
Handle — номер сеанса.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.