Blog
JACK (Agent Oriented Software Group)
Агент-базираният софтуер (AOS) води света към революционно ново поле на автономни и полуавтономни системи. Такъв софтуер осигурява способността за вземане на решения, която лежи в основата на автономията. С настоящите приложения, включително и подпомагането при вземане на решения, управление на производството на петрол, автономни въздушни и подводни превозни средства, както и модерни военни системи за симулация, този софтуер има потенциално приложение в автомобилния транспорт и финансови индустрии
AOS специализира в оперативния автономен софтуер, покривайки пълен спектър, от „интелигентни асистенти”, подпомагащи експертите в решаването на критични проблеми, до автономни системи за изпълнението на задачи, делегирани от хората.
Агент-базираните продукти, JACK® и C-BDI™ осигуряват тази способност и могат да се използват по много начини: разгърнати на борда на автономно превозно средство или нефтена платформа; като част от IT система и дори може да се използват като интелигентен асистент на телефон.
Автономна способност за вземане на решения е в основата на тези продукти. Като част от една линия, обхващаща почти две десетилетия, тази технология е кулминацията на един процес на непрекъснато изследване и развитие, която започва в края на 1980 г. с изследвания в областта на автономна диагности на повреди за космически совалки.
Подобна технология сега е се използва от клиенти в широк спектър от индустрии и приложения, включително автономна безпилотни системи за летателни апарати, подпомагане във вземането на решения за производството на петрол, системи за подпомагане във вземането на решения при космически превозно средство, военна симулация и синтетични среди. За това най-последно приложение, се предоставя CoJACK ™, който моделира човешкото познание, включително и последиците от модераторите (като например умора и страх) върху човешкото представяне.
AOS работи с партньори и клиенти, които искат да включат този автономен аспект в своите продукти, индустрия или организация, използвайки JACK, C-BDI и CoJACK.
JACK® приложението се състои от колекция от автономни агенти, които вземат информация от околната среда и комуникират с други агенти. Това осигурява системни интегратори с много мощна форма на капсулиране. Всеки агент се дефинира на база на неговите цели, знание и социална способност и след това се оставя да изпълнява своята функция самостоятелно в средата, в която е вграден.
Това е един много ефективен начин за изграждане на приложения за динамични и сложни среди – всеки агент е отговорен за извършване на своите собствени цели, за реагирането на събития и общуването с други агенти в системата. Не е необходимо изрично да се програмират взаимодействията на цялото приложение, по-скоро, взаимодействията се очертават като страничен продукт на индивидуалните цели и възможности на съставните единици.
JACK е зряла, многоплатформена среда за изграждане, задействане и интегриране на многоагентни търговски системи. Тя е изградена на здрава логическа основа: BDI (Beliefs/Desires/Intentions – Вярвания / Желания / Замисли). BDI е интуитивна и мощна абстракция, която позволява на разработчиците да управляват сложността на проблема. В JACK, агентите са дефинирани според техните вярвания (какво знаят и какво знаят как се прави), техните желания (какви цели биха искали да постигнат) и техните замисли (целите, с чието постигане те са ангажирани в момента).
От инженерна гледна точка, JACK се състои от архитектурно-независими съоръжения, както и набор от сменяеми компоненти, които са насочени към изискванията на специфични агент архитектури. За програмист на приложения, JACK в момента се състои от три основни разширения на JAVA. Първото е набор от синтактични допълнения към хост език. Тези допълнения могат да бъдат разделени както следва:
- малък брой ключови думи, за идентифицирането на основните компоненти на агент (като агент, план и събитие);
- набор от отчети за деклариране на атрибути и други характеристики на компонентите (например информацията, съдържаща се в убеждения или пренасяна от събитията). Всички атрибути са силно типизирани.
- набор от отчети за определянето на статични връзки (например, кои планове могат да се приемат, за да се реагира на определено събитие);
- набор от отчети за манипулиране на състоянието на агента (например, добавяне на нови цели или подцели, които трябва да бъдат постигнати, промени на вярвания, взаимодействие с други агенти).
За удобство на програмистите, по-специално тези с опит в областта на изкуствения интелект, JACK също поддържа логически променливи и курсори. Те са особено полезни, когато става въпрос за състоянието на вярвания на агента. Техната семантика е по средата между логическите програмни езици и вграден SQL.
В допълнение към BDI разширението, JACK предлага разширение за поддръжка на Екипно-ориентираното програмиране, наричано SimpleTeam. Екипно-ориентираното програмиране е нюанс на Агент-базираното програмиране, където агент колаборацията е посочена от абстрактната гледна точка на групата като цяло. Концепцията зад този подход е, че координираното поведение е определено или програмирано от най-високо равнище (“птичи поглед”) на перспектива и че базовата машина картографира такива спецификации в индивидуални дейности на засегнатите агенти. SimpleTeam поддържа най-ценния и практически аспект по отношение на екипите: централизираната спецификацията на координирано поведение и неговата реализация чрез действителната координирана дейност. За да се постигне това се добаят няколко концепции към ядрото на JACK, включително и Екип и Роля. Също така се добавят няколко твърдения към JACK езика, за да се позволи управлението и манипулирането на тези концепции от програмист.
Подходът, възприет от JACK, има редица предимства в сравнение с други рамки, идващи от света на изкуствения интелект и стандартни обектно-ориентирани архитектури. Приемането на Java гарантира широко достъпна, добре поддържана среда за изпълнение.
JACK предлага няколко полезни аспекта:
- това е ефективен начин да се изрази процедурна логика от високо ниво в рамките на обектно-ориентирана среда. Това също помага за бърза разработка на приложения, като позволява по-ясно разграничение между абстрактни типове данни и техните операции, от една страна, и поведението на конкретно приложение, изискващо фина настройка или еволюция, когато системата е вече оперативна, от другата страна. Докато първите трябва да се основават на висока производителност, да са добре изпитани, за многократна употреба и са с изключително скъп код, последният е по-добре изразен като планове, които могат лесно да бъдат модифицирани.
- Чувствителността на контекста и сложната семантика на умствените нагласи на BDI архитектурата. Тези характеристики позволяват някои нива на адаптивност към променящите се условия
- Лекотата на интеграция с остарели системи. Това дава възможност, наред с други неща, поетапен подход за разпределено развитие на системата.
Използвана литература:
- http://agent-software.co.uk/
- http://aosgrp.com/products/jack/
- Nick Howden, Ralph Rönnqu ist, Andrew Hodgson, Andrew Lucas. “JACK Intelligent Agents – Summary of an Agent Infrastructure”