УДК 51

СЕТЕВАЯ СИСТЕМА ПОДДЕРЖКИ РЕШЕНИЯ НЕСТАНДАРТНЫХ ЗАДАЧ

©2000 г. Н. К. Косовский, Д. В. Хитров

В настоящее время существуют теории, позволяющие ускорить и некоторым образом алгоритмизировать поиск решения нестандартных задач. Как правило, они предлагают некоторую фиксированную систему эвристических правил. Хорошо известные авторы в этой области - Г. С. Альтшуллер [2], Д. Пойа [3] и В. А. Уфнаровский [8]. Описываемая система представляет собой сетевое средство для создания и применения своих собственных подходов к решению нестандартных задач, а также использования подходов других клиентов и средств, встроенных в ядро системы. Доступ к системе осуществляется через программу просмотра типа Netscape Navigator или Internet Explorer. Таким образом, обеспечивается простота и дружественность пользовательского интерфейса. Для реализации серверной части системы используются MS Windows NT 4.0 в качестве ОС, MS Internet Information Server 4.0 в качестве Web сервера, Active Server Pages в качестве средства создания сценариев. В разработанной версии системы для хранения информации используется комбинированная схема представления данных. Данные хранятся в СУБД MS Access и в файлах в формате XML. Как правило, данные, хранимые в БД, связаны с именами XML файлов. Для каждого зарегистрированного пользователя создается собственная система подкаталогов. В этих каталогах хранятся разработанные пользователем подходы, нити решений, принадлежащих пользователю, а так же графические изображения, загруженные пользователем.

ИСПОЛЬЗУЕМЫЙ ИНСТРУМЕНТАРИЙ

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

Существует довольно большое количество платформ, системных решений и средств разработки Web-приложений. В число обязательных компонентов таких приложений входят Web сервер, язык написания CGI сценариев и средства хранения информации. Для реализации системы нужно было выбрать наиболее подходящую комбинацию этих элементов. При выборе принимались во внимание следующие критерии. Доступность средств разработки и документации к ним, простота использования и администрирования, наличие постоянного сопровождения и ряд других свойств. Кроме того, стоял вопрос о том, стоит ли создавать мультиплатформную систему или ограничиться какой-то определенной платформой. Поскольку система спроектирована в соответствии с технологией клиент-сервер, этот вопрос рассматривался отдельно для клиентской и для серверной части. Мультиплатформность клиентской части системы обеспечивается тем, что в качестве клиентского места используется обычная программа просмотра типа Netscape Navigator или Internet Explorer. Обзорный анализ существующих средств показал, что при создании мультиплатформной серверной части придется затратить большое время на техническую часть задачи, связанную с изучением самих средств и тестированием их адекватной работы на различных платформах. Кроме того, все наиболее удачные средства, обеспечивающие наибольшую совместимость, являются дорогими коммерческими продуктами, что так же затрудняет их использование. Поэтому было решено создать серверную часть системы только для одной платформы.

В настоящее время можно выделить два основных конкурирующих типа операционных систем - ОС семейства UNIX и ОС семейства Microsoft Windows. Существует много сторонников и противников обоих направлений. Для обоих типов ОС имеется большое число Web серверов и средств разработки. Системы Windows более распространены среди обычных пользователей персональных компьютеров. Они имеют более привычный и удобный пользовательский интерфейс, который фактически стал стандартом де-факто. В связи с этим также хорошо развиты и средства разработки под эту платформу. Существует инструментарий, который хорошо сопровождается, постоянно развивается и расширяется. Непосредственно сама компания Microsoft предоставляет полный набор средств, для создания Web-приложений практически любого уровня сложности [9]. В число предлагаемых программных средств так же входит Internet Information Server (IIS), компонентами которого являются Web-сервер, FTP-сервер и развитая технология написания CGI-сценариев - Active Server Pages. Интегрируемость предлагаемых средств делает их использование простым и удобным, и позволяет создавать комплексные приложения с использование различных хорошо взаимосвязанных компонент. Использование Windows NT, IIS и ASP в течение нескольких лет показали простоту, удобство и достаточную надежность данного инструментария и позволили накопить опыт работы с этим программными средствами. Поэтому для создания системы в качестве платформы было выбрано Windows NT 4.0.

ПРЕДСТАВЛЕНИЕ ДАННЫХ В СИСТЕМЕ

Было исследовано и опробовано несколько возможных вариантов хранения данных. В качестве пробных вариантов рассматривались MS SQLServer 7.0, СУБД MS Access 97 и собственные специализированные форматы файлов. Оказалось, что для определенного круга подзадач более удобно хранить данные в реляционной СУБД, но в других случаях использования табличной формы хранения данных существенно увеличивает сложность представления данных, а применение других методов чрезвычайно удобно. Например, эксперименты показали, что информацию, связанную с эвристическими приемами и подходами, а так же информацию о ходе решений удобно хранить в формате XML. В то время как, регистрационную информацию о пользователях гораздо проще и удобнее хранить в обычной реляционной базе. В результате было решено использовать комбинированную схему представления данных, включающую в себя как СУБД, так и другие средства.

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

Язык XML (Extensible Markup Language - расширяемый язык разметки) оказался очень удобным средством для представления данных, описывающих эвристические подходы и выполненных с их помощью решений. XML представляет собой метаязык, который позволяет не только представлять в структурированном виде данные различного рода, но также описывать другие языки. XML развивался как адаптированное для использования в Internet подмножество языка SGML (Standard Generalized Markup Language - стандартный обобщенный язык разметки), который в 80-ые годы был принят ISO в качестве стандарта обобщенного языка разметки.

Для хранения данных с системе на основе XML были построены два специализированных языка для представления эвристических подходов и решений. Грамматики этих языков описана в формате XML Schema definition language также базирующемся на XML.

Открытая спецификация XML и наличие большого количества рекомендаций способствовали развитию серии свободного распространяемых программных пакетов и компонент. Эти средства, как правило, включают в себя готовый парсер, а так же API (Application Programming Interface) для работы с ним и с построенным деревом документа. Для данного проекта была выбрана ActiveX компонента XMLDOM компании Microsoft. XMLDOM оказалась наиболее доступной и удобной для использования в ASP сценариях.

Для представления данных имеющих наиболее ярко выраженный эвристический характер были разработаны язык описания эвристических подходов (HADL - Heuristic Approach Description Language) и язык описания эвристических решений (HSDL - Heuristic Solution Description Language). Оба эти языка построены на основе XML и тесно взаимосвязаны. Каждый файл, описания эвристического решения содержит ссылку на использованный для этого решения эвристический подход или включает в себя подход целиком. Эвристический подход в свою очередь представляет собой файл в формате HADL, который описывает граф эвристического подхода.

На основе анализа существующих эвристических приемов и подходов были выявлены основные конструкции, присущие большинству исследованных техник [1,4,5,7]. Можно считать, что почти все эвристические подходы и приемы состоят из набора советов, вопросов, требующих вербального ответа, вопросов с альтернативным выбором, вопросов с совместным выбором вариантов ответов и различного рода таблиц и рисунков. На основании этих заключений предложено представлять эвристики в виде графа состоящего из узлов описывающих подобные конструкции. Каждый узел графа содержит тип узла, необходимую текстовую информацию (фактически это тот текст, который видит пользователь), имена переменных, в которых сохраняется ответ, и информацию о связях с другими узлами.

Для записи подходов был разработан специальный язык HADL, построенный на основе XML. Описание грамматики выполнено в формате XML Schema definition language в соответствии с рекомендациями World Wide Web consortium.

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

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

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

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

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

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

Необходимым требованием к системам подобного рода является возможность использования графических изображений. Графические изображения очень часто бывают более информативны и более удобны для представления разного рода информации, чем текст. Многие подходы, например, АРИЗ, включают в себя шаги по работе с изображениями. По причине разнородности графической информации в зависимости от специализации рассматриваемых задач, разработка универсальных графических редакторов кажется нецелесообразной. Тем более что уже существует большое количество хорошо развитых программных продуктов с четкой специализацией. Поэтому было решено не вносить в систему специальных средств создания графических изображений, а реализовать наиболее общий механизм, не имеющей определенной специализации. Идея заключается в том, что пользователь системы оперирует с изображениями фиксированного графического формата, а система предоставляет средства для загрузки этих изображений. Практически все современный графические инструментарии позволяют осуществлять экспорт из своих внутренних форматов в форматы GIF и JPEG, которые широко используются в World Wide Web. Пользователям предлагается применять наиболее подходящие и удобные средства для создания своих изображений, затем осуществлять конвертирование этих изображений в GIF или JPEG и загружать полученные файлы на сервер. Для загрузки файлов на сервер используется ActiveX компонента SA-FileUpload фирмы Software Artisans, реализующая RFC 8867.

 

ОБЩАЯ СТРУКТУРА СИСТЕМЫ

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

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

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

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

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

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

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

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

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

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

ЛИТЕРАТУРА

  1. Алексеев Б. Т., Косовский Н. К., Селеджи С. М., Хитров Д. Б. Разработка интеллектуальной системы эвристик для результативных систем. Ялта : Межд. конф. "Знания-Диалог-Решение", 1997.
  2. Альтшуллер Г. С. Творчество как точная наука. Теория решения изобретательских задач. М. : Советское радио, 1979. - 175 с.
  3. Пойа Д. Как решать задачу. М. : Гос. учебно-педагогическое изд. министерства просвещения РСФСР, 1959. - 206 с.
  4. Косовский Н. К. Сокращение перебора рекомендаций при совершенствовании систем. Матер. Всесоюзный семинар "Разработка и применение программных средств ПЭВМ в учебном процессе, 1991. - Кн.2.
  5. Косовский Н. К. Эвристические совместно последовательные схемы решения задач. Межд. сем. : Двухступенчатое образование и самофинансирование вузов. Юрмала : Тез. докл. Т. 2, математическая и философская подготовка в ВТУЗах. 1992. - С. 52-53.
  6. Косовский Н. К., Хитров Д. В. Информационная система эвристического поиска решений. Межд. конф. "Математика, компьютер, образование". Дубна : 1996. - С. 66.
  7. Косовский Н. К., Хитров Д. В. Система, управляющая поиском инновационных идей на основе эвристической логики с конечозначными предикатами. Труды III Международной конференции "Дискретные модели в теории управляющих систем". (22-27 июня 1998г.). М. : МГУ, 1998. - С. 50-52.
  8. Уфнаровский В. А. Математический аквариум. Кишинев : Штиинца, 1987. - 216 с.
  9. Sorensen  R. Inside Microsoft Internet Development. Microsoft Press, 1998. - 322 p.

NETWORK SUPPORT SYSTEM OF DECIDING

THE NON-STANDARD PROBLEMS

N. K. Kosovskii, D. V. Hitrov

At present exist theories, allowing accelerate and in some way to create algorithm searching deciding the non-standard problems. As a rule, they offer certain fixed heuristic rule system. Well known authors in this area - G. С. Altshooller, D. Poia and In. А. Ufanovskii. Described system presents itself network a facility for making and using their own own approaches to deciding the non-standard problems, as well as using the approaches of other clients and facilities built-in in the system kernel. Access To the system is realized through the program of viewing a type Netscape Navigator or Internet Explorer. Thereby, is ensured simplicity and friendly user interface. For realization an server part of systems are used by MS Windows NT 4.0 as OS, MS Internet Information Server 4.0 as Web server, Active Server Pages as facility of making the scenarioes. In developped system versions for keeping information is used multifunction scheme of presentation of data. Given kept in IMS MS Access and in files in XML format. As a rule, data, prestored in DB, connected with names XML files. Own subdirectory system is created For each authorized user. In these directories kept approaches developped by the user, threads of deciding, belonging user, but in the same way graphic expressing, loaded user.

198904, Россия, Санкт-Петербург,

Старый Петергоф, Библиотечная пл., д. 2

kosov@nkk.usr.pu.ru, air@tepkom.ru .

Работа частично поддержана грантом РГНФ 97-05-12-048.

Кафедра информатики

Математико-механический факультет

Санкт-Петербугский государственный университет

Поступила в редакцию 5.10.2000.