Деякі поняття.
Характеристика основних елементів агентно-орієнтованого програмування
З урахуванням наведеного механізму планування важливо підкреслити, що поведінка, подібна представленій нижче, перешкоджає виконанню будь-якої іншої поведінки, бо його action () метод ніколи не завершується. Фактична робота, яку агент повинен робити, як правило, здійснюється в рамках «поведінки агента». Поведінка представляє собою завдання, яку агент може виконувати. Відкриті: кінцеве… Читати ще >
Деякі поняття. Характеристика основних елементів агентно-орієнтованого програмування (реферат, курсова, диплом, контрольна)
- · Об'єкт — програмна сутність заданої структури та конкретизованих механізмів взаємодії з іншими об'єктами за допомогою передачі повідомлень. Повідомлення формуються і відсилаються у відповідь на отримані повідомлення. Формування повідомлень відбувається процедурами на підставі даних.
- · Актор — програмна сутність заданої структури і механізмів взаємодії.
Містить дані і процедури.
Інкапсуляція, відношення, успадкування, породження повідомлень.
· Агент — програмна сутність для виконання поставлених завдань.
Володіє поведінкою, а саме: взаємодіє із зовнішнім складною і динамічно-розвивається середовищем, здатної модифікуватися або бути модифікованої іншими агентами в залежності від конкретних умов. Взаємодія має на увазі:
- · Сприйняття динаміки середовища;
- · Дії, що змінюють середовище;
- · Міркування з метою інтерпретації спостережуваних явищ, вирішення завдань, виведення висновків і визначення дій.
Види середовищ:
Залежно від ступеню свободи середовища, що припускає наявність у ній відповідного типу агента, середовища поділяються на:
- · Замкнуті: кінцеве детерміноване або імовірнісний опис всього середовища, яке відоме агенту апріорі або шляхом дослідження.
- · Відкриті: кінцеве детерміноване або імовірнісний опис локальній області середовища, в якій знаходиться агент і яке відоме йому апріорі або шляхом дослідження.
- · Трансформовані: середовища, що динамічно розвивається, структурою яких є агент.
Структура агента.
Структурно агента можна зобразити наступним чином:
Агент-> Ресурси-> Об'єкти-> Функції-> Дані.
Загальні приклади використання.
Типовим прикладом агентно орієнтованого підходу можна назвати спеціальні програми, що імітують дії гравців в комп’ютерних іграх. Поширена назва для таких програм — боти. Однак, використання ботів не обмежується застосуванням в комп’ютерних іграх. Їх можна зустріти як елемент програми в чатах і форумах, що виконують роль «співрозмовника» і підтримуючих «дискусії». Однак деякі боти виконують не тільки роль імітаторів в процесі спілкування або гри, вони використовуються для редагування текстової інформації (у тому числі і в Вікіпедії), для налагодження мережевих з'єднань, модерування ресурсів і т.п.
JADE.
Дуже просто створити агента в JADE, визначивши метод його ініціалізації:
import jade.core.Agent;
public class BookBuyerAgent extends Agent {.
protected void setup () {.
// Printout a welcome message.
System.out.println («Hello! Buyer-agent» + getAID (). GetName () + «is ready.»);
}.
}.
Фактична робота, яку агент повинен робити, як правило, здійснюється в рамках «поведінки агента». Поведінка представляє собою завдання, яку агент може виконувати.
Агент може виконувати одночасно кілька моделей поведінки. Однак важливо зауважити, що розклад кількох моделей поведінки в агента має не упереджувальний характер, а кооперативний. Це означає, що коли поведінка виповнюється за розкладом, його метод action () викликається і працює до тих пір, поки не завершиться. Тому саме програміст визначає, коли агент переключається від виконання даного поведінки до виконання наступного.
З урахуванням наведеного механізму планування важливо підкреслити, що поведінка, подібна представленій нижче, перешкоджає виконанню будь-якої іншої поведінки, бо його action () метод ніколи не завершується.
public class OverbearingBehaviour extends Behaviour {.
public void action () {.
while (true) {.
// Do something.
}.
}.
public boolean done () {.
return true;
}.
}.
Приклад.
Типовим прикладом агентно орієнтованого підходу можна назвати спеціальні програми, що імітують дії гравців в комп’ютерних іграх. Поширена назва для таких програм — боти. Однак, використання ботів не обмежується застосуванням у комп’ютерних іграх. Їх можна зустріти як елемент програми в чатах і форумах, що виконують роль «співрозмовника» і підтримуючих «дискусії». Однак деякі боти виконують не тільки роль імітаторів в процесі спілкування або гри, вони використовуються для редагування текстової інформації (в тому числі і у Вікіпедії), для налагодження мережевих з'єднань, модерування ресурсів і т.п.
Розглянемо предметну область «Торгівля книгами», на якій будуть проілюстровані кроки, необхідні для створення агентно-орієнтованих додатків з JADE.
Кожен купує агент отримує назву книги, яку він повинен придбати в якості аргументу командного рядка і періодично запитує всіх відомих йому продавців-агентів, щоб зробити запит про покупку. Як тільки пропозиція отримано, агент-покупець підтверджує його і відправляє замовлення. Якщо більше ніж один агент-продавець надає цю книгу, покупець вибирає найкращу пропозицію (найкращу ціну). Купивши необхідну книгу, агент-покупець завершує роботу. Кожен агент-продавець має мінімальний інтерфейс, за допомогою якого користувач може додавати нові назви (і їх ціну) в локальний каталог книг, виставлених на продаж. Агенти-продавці знаходяться в стані очікування запитів від агентів-покупців. Коли вони отримують запит на книгу, вони перевіряють, чи є дана книга в їх каталозі. Якщо так, то вони відповідають пропозицією з ціною. Інакше відмовляють. Коли вони отримують замовлення на покупку, вони обробляють його і видаляють запитану книгу зі свого каталогу.