Название: Вопросно-ответное программирование человеко-компьютерной деятельности( Соснин П.И.)

Жанр: Информационные системы и технологии

Просмотров: 1874


2.3. базис компьютерного программирования

2.3.1. Алгоритмические языкиДля любого типа программных моделей PD  и PК  их потенциал, то есть класс задач, которые могут быть запрограммированы, определяется базисными конструктами и операциями, связанными в единое целое – язык  программирования.  В  этом  плане  существуют  универсальные

и специализированные языки программирования. Универсальный язык потенциально    пригоден     для     программирования    любых     задач, а специализированный язык предназначен для программирования задачопределённого класса.

j

 
Для любого алгоритмического языка LA определена его формальная

j

 
грамматика   G(LA ),    которая    позволяет   определиться,   во-первых, с   переходом   от   естественно-языковых   текстов   постановок   задач к   исходным   текстам,   а,   во-вторых,   с   автоматическим   переводом исходных текстов на машинный язык, то есть на язык исполняемых кодов.

j

 
Любая грамматика G(LA ) – это формальная модель определённого

j

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

1960-е 1970-е 1980-е 1990-е 2000-е настоящее время

Подпрограммы Объекты Сервисы Агенты

Модули Компоненты Активы Семейства

3

 
Продуктов

Подпись: -96-Рис. 2.7. Парадигмы повторного использования в программной инженерии

Разумеется, в настоящее время востребован опыт повторного использования всех конструктов, представленных на рис. 2.7. Но так как интересы  монографии связаны  с  прецедентами и  их  использованием в  решении  задач,  в  последующих  рассуждениях  ограничимся единицами повторного использования, которые на рисунке находятся выше линии времени. Из таких единиц определимся детальнее, но не более чем концептуально, с объектами, сервисами и агентами.2.3.2. Объектная ориентация в программированииВ основе объектной ориентации программирования, в первую очередь, лежит объявление и материализация программистом программных конструктов для объектов, выделенных в задачной ситуации и названных в постановке задачи.Под объектами понимаются составляющие задачной ситуации, каждую из которых можно распознать (если они уже существуют настоящем)      или      создать      (материализовать),     решив      задачу. Для построения его программного аналога любой объект определяется, исходя из того из чего он состоит, какие у него свойства, в каких отношениях он находится с другими объектами и что с ним можно делать.Возможность создавать программные аналоги объектов задачи, предоставляемая программисту, выводит на следующие полезные эффекты:  на всех этапах жизненного цикла задачи, в том числе в процессах её решения и кодирования, сохраняется единое понимание, как объектов  задачи,  так  и  их  представления  в  рассуждениях программистов и в создаваемых ими исходных кодах;  за каждым программным аналогом любого объекта стоит класс объектов задачи, у  которого могут быть подклассы и  так  далее до

любого           уровня     вложенности,     что     выводит     на     позитивы классифицирования (экономность информационного представления, наследование и другие); программный аналог объекта задачи является абстракцией, обобщающей те варианты его существования, которые могут наблюдаться в разных задачных ситуациях и не только в подобных, что позволяет оформлять такие аналоги как единицы повторного использования и накапливать их в специальных библиотеках; закономерности связывания объектов задачной ситуации легко учитываются в создании программных аналогов для совокупностей объектов,  что  в  объектно-ориентированном  программировании привело диаграммам классов.На            рис.     2.8            представлен   абстрактный  пример           объектнойструктуризации, в котором раскрыта структура одного из объектов.Объект Объект

функциональные зависимости между объектами Имя объекта:Объявления: переменная 1; переменная 2;

ОбъектОбъект Объект ОбъектОбъект .........................переменная N.Действия:метод 1;................ метод 2; метод М.

Рис. 2.8. Объектно-ориентированная структуризацияОбъектная ориентация вложена практически в любой современный алгоритмический язык, поскольку она зарекомендовала себя исключительно положительно.

2.3.3. Сервисная ориентацияВ  основу  сервисной  ориентации  программных  средств, экономически оправданной как для владельца, так и для потребителей сервиса или сервисов, положено: выделение задач, решение которых может быть востребовано достаточной группой лиц;  программная реализация задач в форме «сервисов»; материальное оформление «сервисов» в виде, открытом для доступа и использования пользователями по образцу сервисного обслуживание в повседневной жизни.Обобщённая картина сервисной ориентации приведена на рис. 2.9, на котором    отсутствует    обязательная    привязка    к    WEB-сервиснойреализации и даже привязка к корпоративной сети.Описание сервисовРегистрациясервисов

Найти Опубликовать

Потребитель сервисов Провайдер сервисов Описание сервисов

Связать Сервисы

Рис. 2.9. Сервисно-ориентированная архитектураПринципиальным в сервисно-ориентированной архитектуре является привязка к «опубликованному» описанию совокупности программных единиц,   каждая   из   которых   активизируется   и    исполняется   по

ситуативному  запросу  потребителя  сервиса.  В  принципе,  под  такую архитектуру можно подвести экспертные системы [43].Но всё же, в полном объёме её специфики сервисно-ориентированная архитектура находит своё материальное воплощение в рамках человеко- компьютерной деятельности в корпоративных сетях или в интернете.2.3.4. Агентная ориентацияСпецифику агентной ориентации раскроем, начиная с архитектуры многоагентных систем, обобщённое представление которой приведено на рис. 2.10.

агент коммуникация между агентамиагент         агент

агент агент

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

и действовать на среду в течение некоторого времени, преследуя свои собственные цели.Это значит, что при построении искусственного агента минимальный набор базовых характеристик включает такие свойства как:  активность, способность к организации и реализации действий;  реактивность, способность воспринимать состояние среды; автономность, относительная независимость от окружающей среды или наличие некоторой «свободы воли», обусловливающей собственное поведение, которое должно иметь хорошее ресурсное обеспечение; коммуникативность      (общительность),      вытекающая      из необходимости  решать  свои  задачи  совместно  с  другими  агентами и обеспечиваемая развитыми протоколами коммуникации; целенаправленность,  предполагающая  наличие  собственных источников мотивации, а в более широком плане, особых интенциональных характеристик.К числу дополнительных характеристик, приводящих к  различным типам агентов, относятся: ментальные свойства, такие как знания (knowledge), убеждения (beliefs, вера), желания (desires), намерения (intentions), цели (goals), обязательства (commitments), а также характеристики мобильность (mobility), благожелательность (benevolence), правдивость(veracity) и рациональность (rationality) [38].В зависимости от того, какие характеристики вложены в агента различают и используют следующие их базовые типы ‒ реактивный тип, рассуждающий (интеллектуальный тип и гибридный (композитный) тип, в котором синтезированы возможности первых двух типов. Архитектура агентов реактивного типа раскрыта на рис. 2.11.

Агентр е ц е п т о р ы Реактивное поведение         э фусловие     реакция          фе условие     реакция          к................      ...................            т оусловие      реакция          р ы

Рис. 2.11. Архитектура реактивного агентаЛюбой реактивный агент, по сути дела, представляет собой автономное программное образование, выполняющее возложенную на него работу в рамках событийного управления, взаимодействуя, в общем случае, с другими агентами, возможно интеллектуальными.Взаимодействуя со средой, реактивный агент формирует результат взаимодействия,     который     используется     как     «ключ     доступа» к «условным реакциям», вложенным в «тело» агента. В результате выбранная «условная реакция» исполняется, а результат исполнения воздействует  на  среду,  в  которой  существует  агент.  Среда существования конкурентного агента включает не толку среду общую для всех агентов, но и других агентов, с которыми запрограммировано взаимодействие.Если  отмеченные  отношения  и  действия  отсутствуют,  то программное образование называть агентом не корректно.Упрощенная  архитектура  интеллектуального  агента  приведена  на рис. 2.12, где показано, что рассуждающий агент обладает моделью среды, которую он использует в процессах взаимодействия со средой, включая   коммуникативное   взаимодействие   с    другими   агентами, с которыми он находится кооперации и «сотрудничает».

р          Агент ец еп    модельт          средыо ры планировщик э ф ф еисполнитель   кплана            то ры

Рис. 2.12. Архитектура рассуждающего агентаМодель среды позволяет агенту планировать своё поведение в ответ на ситуацию, сложившуюся в его окружении. Ели в планировании используется библиотека «условных реакций», то агенту приписывается композитный тип, архитектура которого приведена на рис. 2.13.

Агент Рассуждающий компонент

р          модель е         средыц планировщик исполнитель  э плана           ф ф

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