Проектирование процедур, удовлетворяющих u-требованиям, для алгоритмов, отделимых от знаний

4. Сизиков, В. П. К имитационному моделированию на базе ДИС-технологии [Текст] / В. П. Сизиков // Омский научный вестник. Сер. Приборы, машины и технологии. — 2010. — № 1 (87). - С. 186-190.

5. Основы моделирования процессов с языком ДИС-технологии [Текст] : отчёт по НИОКР / В. П. Сизиков, Т. Ю. Круковская, В. Ф. Кузнецов // Математическое моделирование процессов с выходом на имитацию. - Омск : Ом-ГУПС, 2014. - 121 с. - № 01201368699.

6. Сизиков, В. П. Где, когда и какая возможна динамика систем? [Текст] / В. П. Сизиков // Динамика систем, механизмов и машин. - 2014. - № 3. - С. 231-234.

7. Разумов, В. И. Основы теории динамических информационных систем [Текст] / В. И. Разумов, В. П. Сизиков. -Омск : ОмГУ, 2005. - 212 с.

8. Сизиков, В. П. Модель и анализ взаимодействия протона и электрона на базе ДИС-технологии [Электронный ресурс] / В. П. Сизиков // Теоретические и прикладные аспекты современной науки : сб. науч. тр. по материалам VI Междунар. науч.-практ. конф. В 6 ч. Ч. 3. - Белгород : ИП Петрова М. Г., 2015. - Режим доступа : http://www.issledo.ru (дата обращения: 11.03.2015).

9. Сизиков, В. П. Турбулентность: системный статус и управление [Электронный ресурс] / В. П. Сизиков // Теоретические и прикладные аспекты современной науки : сб. науч. тр. по материалам IX Междунар. науч.-практ. конф. В 6 ч. Ч. 2. - Белгород : ИП Петрова М. Г., 2015. - Режим доступа : http://www.issledo.ru (дата обращения: 10.05.2015).

10. Сизиков, В. П. Трещины и дислокации: системный статус и управление [Электронный ресурс] / В. П. Сизиков // Современные тенденции развития науки и технологий : сб. науч. тр. по материалам II Междунар. науч.-практ. конф. В 7 ч. Ч. 2. - Белгород : ИП Ткачёва Е. П., 2015. - Режим доступа : http://www.issledo.ru (дата обращения: 15.06.2015).

11. Сизиков, В. П. Системный анализ совершенства мышления [Электронный ресурс] / В. П. Сизиков, Т. Ю. Круков-ская // Современные тенденции развития науки и технологий : сб. науч. тр. по материалам III Междунар. науч.-практ. конф. В 6 ч. Ч. 5. - Белгород : ИП Ткачёва Е. П., 2015. - Режим доступа : http://www.issledo.ru (дата обращения: 02.07.2015).

12. Сизиков, В. П. Системный анализ модернизаций в обществе [Электронный ресурс] / В. П. Сизиков, В. И. Разумов // Современные тенденции развития науки и технологий : сб. науч. тр. по материалам IV Междунар. науч.-практ. конф. В 6 ч. Ч. 3. - Белгород : ИП Ткачёва Е. П., 2015. - Режим доступа : http://www.issledo.ru (дата обращения: 12.08.2015).

СИЗИКОВ Виктор Петрович, кандидат технических наук, доцент (Россия), доцент кафедры высшей математики.

Адрес для переписки: v_p_sizikov@mail.ru

Статья поступила в редакцию 15.09.2015 г. © В. П. Сизиков

УДК 004:[004.02+004.588]+377

А. Е. УЛЬТАН

Финансовый университет при Правительстве РФ, Омский филиал

ПРОЕКТИРОВАНИЕ ПРОЦЕДУР, УДОВЛЕТВОРЯЮЩИХ ^ТРЕБОВАНИЯМ, ДЛЯ АЛГОРИТМОВ, ОТДЕЛИМЫХ ОТ ЗНАНИЙ_

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

Ключевые слова: компонент, образование, Интернет.

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

а) они должны содержать как минимум иМЬ-учебник (наше понятие), приспособленный для единообразного компьютерного системного изложения материала;

б) они должны уметь самостоятельно решать предложенные задачи и на основе этого предостав-

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

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

Эффективности обучения должна способствовать возможность компонентов обращаться друг

Рис. 1. Пример диаграммы состояний

Рис. 2. Диаграмма классов для алгоритма отделимого от знаний

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

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

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

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

горитма и поэтому можем описать его с помощью диаграммы состояний из языка UML (Universal modeling language), изображенной на рис. 1.

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

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

Каждому состоянию мы поставим в соответствие несколько классов: класс-распознаватель следующего состояния с процедурой «Выполнить» и по одному классу-действию с процедурой «Выполнить» для каждого действия состояния.

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

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

Класс «Алгоритм»-управляющий. Его конструктор (процедура, запускаемая, когда создается объект класса «Алгоритм») делает следующее:

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

— создает форму, изображающую меню и элементы системы для общения с пользователем (задания условия задачи и ее решения);

— создает объект «Состояние ученика». Первоначально устанавливается состояние «Задание условия задачи». Но после нажатия пользователем на кнопку «Самостоятельное решение» объект перейдет в состояние «Самостоятельное решение». После нажатия пользователем на кнопку «Автоматическое решение» перейдет в состояние «Автоматическое решение». После нажатия на кнопку «Сделай шаг» перейдет в состояние «Сделай шаг». После нажатия на кнопку «Намекни» перейдет в состояние «Намекни». После выполнения намека или действий одного шага объект «Состояние

ученика» самостоятельно возвращается в состояние «Самостоятельное решение», а из состояния «Автоматическое решение» не возвращается, и решение производится до конца. После окончания решения задачи доступными остаются состояния «Задание условия задачи», возможно «Анализ решения» и «Завершение работы»;

— создает стек «Очередь распознавателей» и стек «Очередь действий».

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

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

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

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

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

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

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

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

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

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

Если же пользователь перейдет в состояние «Автоматическое решение», то решение будет продолжено автоматически до конца.

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

Переход в новое состояние осуществляется так:

— если мы переходим в некоторое начальное подсостояние некоторого надсостояния, то:

— вместо распознавателя текущего состояния в стеке «Очередь распознавателей» добавляется сначала распознаватель надсостояния, а затем распознаватель начального подсостояния. В стек «Очередь действий» ничего не добавляется;

— если мы переходим в некоторое состояние или подсостояние, то:

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

Если же мы переходим в некоторое состояние или подсостояние, выходя из надсостояния, то стек «Очередь распознавателей» сначала очищаем, а затем заполняем распознавателями состояний, имена которых присутствуют в полном имени состояния, в которое мы перешли. Состояние, в которое мы перешли, получится в вершине стека «Очередь распознавателей». Затем стек «Очередь действий» заполняется действиями нового текущего состояния или остается пустым, если в этом состоянии делать ничего не надо;

— если мы переходим в конечное состояние или подсостояние, то:

— убираем распознаватель текущего состояния из стека «Очередь распознавателей». Стек «Очередь действий» заполняется действиями нового состояния оказавшегося в вершине стека «Очередь распознавателей» или остается пустым, если в этом состоянии делать ничего не надо.

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

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

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

Библиографический список

1. Ультан, А. Е. Разработка обучающей программы «Решение текстовых задач по алгебре» / А. Е. Ультан, В. А. Закан-

дырин // Омский научный вестник. Сер. Приборы, машины и технологии. - 2009. - № 6 (82). - С. 200-201.

2. Ультан, А. Е. Разработка архитектуры комплекса обучающих программ / А. Е. Ультан, Е. С. Петров // Омский научный вестник. Сер. Приборы, машины и технологии. - 2010. -№ 6 (92). - С. 190-193.

3. Ультан, А. Е. Разработка обучающей информационной системы «Алгебра» / А. Е. Ультан, Д. А. Кравцов // Омский научный вестник. Сер. Приборы, машины и технологии. -2011. - № 3 (98). - С. 169-173.

4. Ультан, А. Е. Что такое «Интеллектуальные компьютерные компоненты тройного назначения» и основные факторы,

влияющие на их устройство / А. Е. Ультан // Омский научный вестник. Сер. Приборы, машины и технологии. - 2015. -№ 3 (143). - С. 287-289.

УЛЬТАН Александр Ефимович, кандидат технических наук, доцент кафедры «Информатика и информационные технологии». Адрес для переписки1: ultan_ae@mail.ru

Статья поступила в редакцию 25.05.2015 г. © А. Е. Ультан

УДК 004:[004.02+004.588]+377

А. Е. УЛЬТАН

Финансовый университет при Правительстве РФ, Омский филиал

ПРОЕКТИРОВАНИЕ ПРОЦЕДУР, УДОВЛЕТВОРЯЮЩИХ ^ТРЕБОВАНИЯМ, ДЛЯ АЛГОРИТМОВ, НЕ ОТДЕЛИМЫХ ОТ ЗНАНИЙ_

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

Ключевые слова: компонент, образование, Интернет.

Что такое интеллектуальные компьютерные компоненты тройного назначения, удовлетворяющие и-требованиям? Согласно концепции, изложенной в [1-4], необходимо создавать способные взаимодействовать между собой интеллектуальные компьютерные компоненты тройного назначения (название наше), выводящие в Интернет различные предметные области с задачами. Внешне, для удобства пользователей, они все, на наш взгляд, должны выглядеть единообразно, т. е. удовлетворять следующим требованиям, которые мы назвали и-требования:

а) они должны содержать как минимум иМЬ-учебник (наше понятие), приспособленный для единообразного компьютерного системного изложения материала;

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

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

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

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

Что такое алгоритм, не отделимый от знаний. н Когда мы решаем задачу по геометрии, или упроща- Р ем алгебраическое выражение, или решаем урав- Т нение и т. д., то мы заранее известную совокуп- А ность шагов, решающую задачу, не знаем. Здесь мы Ы действуем пошагово, но должны с помощью знаний С обосновать допустимость каждого шага отдельно Т (однако эта допустимость еще не означает необхо- Н димость). Так мы поступаем либо пока не получим Т ответ, либо пока не откажемся от попыток решить Н задачу. |

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