- •Парадигми програмування
- •8.080401: Інформаційні управляючі системи та технології
- •Тема 1. Парадигма імперативного програмування Лекція 1. Огляд парадигм програмування
- •1.1 Базові поняття і визначення
- •1.2 Класифікація парадигм програмування
- •Парадигми
- •Объектно-ориентированные возможности
- •Функциональные возможности
- •1.3 Огляд парадигми імперативного програмування
- •1.4 Програмування, кероване подіями
- •1.5 Узгоджене програмування і паралельні обчислення
- •1.6. Підтримка різних парадигм програмування в ms.Net
- •Тема 2. Парадигма об’єктно-орієнтованого програмування Лекція 2. Об'єктно-орієнтоване програмування та його реалізація в c# на платформі ms.Net
- •2.1 Основні принципи об’єктно-орієнтованого програмування
- •2.2 Чисто об'єктно-орієнтовані і гібридні мови програмування
- •2.3. Реалізація принципів ооп в мові c#
- •Тема 3. Програмування за прототипом і сценарне програмування Лекція 3. Програмування за прототипом і сценарне програмування
- •3.1 Програмування за прототипом
- •3.2 Сценарне програмування
- •Тема 4. Парадигма компонентного програмування Лекція 4. Компонентне програмування як розвиток об’єктного
- •4.1 Основні ідеї компонентної розробки
- •4.2 Компонентна об'єктна модель com (Component Object Model).
- •4.3. Технологія ActiveX – основні можливості
- •Лекція 5. Компонентне програмування в .Net
- •5.1 Основні концепції платформи ms.Net
- •5.1.1 Структура fcl
- •5.1.2 Загально мовне середовище виконання – clr – динамічна складова ms.Net Framework
- •5.1.3. Система типів даних в Microsoft .Net
- •Управління типами в cts
- •5.2. Розробка компонентів на платформі .Net
- •5.3. Поняття збірки і маніфесту в .Net
- •1. Створення dll-бібліотеки
- •2. Створення консольного проекту для тестування функції з бібліотеки.
- •3. Підключення проекту бібліотеки до консольного проекту.
- •4. Встановлення стартового проекту.
- •5. Створення Windows-проекту в тому самому рішенні.
- •6. Робимо проект стартовим і запускаємо на виконання. Результат:
- •7. Документування коду
- •Лекція 6. Візуальне програмування
- •6.1. Парадигма візуального програмування
- •1. Підключення до сервера бд
- •2. Створення власної бд і таблиць
- •3. Заповнення таблиці тестовими даними
- •4. Створення Windows-застосунку (форми)
- •5. Зв'язування елементів форми з джерелом даних
- •7. Створення запитів до даних і їх відображення на формі у вигляді таблиці (Grid)
- •Тема 5. Парадигма декларативного програмування Лекція 7. Основи парадигми декларативного програмування
- •7.1 Основи парадигми декларативного програмування
- •7.2 Основи функціонального програмування
- •Основи Лісп
- •7.3 Основи логічного програмування
- •7.4 Основи Пролог
- •Лекція 8. Основи xml
- •8.1. Визначення і структура xml-документа
- •8.2. Створення xml-документа
- •8.2.1. Структура xml-документа
- •8.3. Способи відображення xml-документа
- •8.4. Правила створення коректного xml-документа
- •8.4.1. Визначення коректного документа
- •8.4.2. Складові частини коректно сформованого хмl-документа
- •8.4.3. Додавання елементів в документ
- •8.4.4. Типи вмісту елементу
- •Лекція 9. Робота з xml в .Net
- •9.1. Класи для роботи з xml .Net
- •9.2. Читання і запис потоків даних Xml
- •9.2.1. Використання класу XmlReader
- •9.2.2. Методи читання даних
- •9.2.3. Контроль типів даних при читанні Xml-документа
- •9.3. Створення xml-документа в Visual Studio
- •Лекція 10. Створення xml-документів в .Net
- •10.1. Використання класу XmlWriter - запис потоків даних Xml
- •10.2. Використання dom в .Net
- •10.2.1. Читання xml-документа за допомогою XmlNodeList
- •10.2.2. Вставка елементів (вузлів) в xml- документ
- •10.3. Обробка атрибутів
- •10.3.1. Витягання атрибутів за допомогою XmlReader
- •10.3.2. Вставка атрибутів в документ за допомогою XmlWriter
- •Лекція 11. Елементи функціонального програмування в c#
- •11.1. Елементи функціонального програмування в c#
- •11.2. Делегати
- •11.3. Лямбда-вирази і лямбда-функції
- •Приклади
- •Лекція 12. Мова linq
- •2. Linq: узагальнення і інтерфейси
- •3. Основні операції запиту
- •4. Перетворення даних з linq
- •12.1. Основи мови linq
- •1.1 Джерело даних
- •1.2. Запит
- •1.3. Виконання запиту
- •12.2. Linq: узагальнення і інтерфейси
- •12.2.1. Змінні iEnumerable в запитах linq
- •12.3. Основні операції запиту
- •12.3.1. Визначення джерела даних
- •12.3.2. Фільтрація
- •12.3.3. Впорядкування
- •12.3.4. Угрупування
- •12.3.5. З'єднання
- •12.3.6. Вибір (Проектування)
- •12.4. Перетворення даних з linq
- •12.4.1. З'єднання декількох вхідних послідовностей в одну вихідну
- •12.4.2. Вибір підмножини кожного вихідного елементу
- •12.4.3. Перетворення об'єктів, що знаходяться в пам'яті, в xml
- •12.4.4. Виконання операцій над вихідними елементами
- •12.5. Зв'язки типів в операціях запиту
- •12.5.1. Запити, що не виконують перетворення вихідних даних
- •12.5.2. Запити, що виконують перетворення вихідних даних
- •12.5. 3. Дозвіл компілятору визначати відомості про типа
- •12.6. Синтаксис запиту або синтаксис методу
- •12.6.1. Методи розширення стандартних операторів запитів
- •12.6.2. Лямбда-вирази
- •Тема 7. Парадигма агентно-орієнтованого програмування Лекція 13. Агентно-орієнтоване програмування
- •13.1 Основні поняття агентно-орієнтованої парадигми програмування
- •1. За архітектурою побудови агентів і їх властивостями:
- •За функціональним призначенням:
- •3. За здатністю до мобільності:
- •3Адачні агенти
- •13.2 Мультиагентні інформаційні системи
- •1. Формальна мова опису системи моделей (ментальної, соціальної):
- •2. Інструменти перетворення звичайних програм у відповідні агентні програми.
- •13.3. Приклади практичного застосування агентної парадигми
- •3Асоби пошуку в Інтернет
- •Тема 8. Парадигма теоретичного програмування Лекція 14. Основні парадигми теоретичного програмування
- •Основна література
- •Додаткова література
1. Формальна мова опису системи моделей (ментальної, соціальної):
- мова специфікації інформаційних, часових, мотиваційних і функціональних дій агента в середовищі роботи;
- мова інтерпретації специфікацій агента;
2. Інструменти перетворення звичайних програм у відповідні агентні програми.
Способи взаємодії агентів визначаються як координація, комунікація, кооперація (або коаліція).
Координація агентів – це процес, за допомогою якого агенти забезпечують послідовне функціонування при узгодженості їх поведінки і без взаємних конфліктів. Координація агентів визначається:
– взаємозалежністю цілей всіх агентів-членів коаліції, а також можливого впливу агентів один на одного;
– обмеженнями, які приймаються для групи агентів коаліції в рамках спільного функціонування;
– компетенцією – знаннями умов середовища функціонування і ступеня їх використання.
Координаційні механізми засновані на угодах, які визначаються з урахуванням вартості і корисності (в термінах прибутку від встановленої угоди між агентами).
Головним засобом комунікації агентів є транспортний протокол ТСР/IP. Проте він не достатній для підтримки «соціальності» агентів. Більш прийнятним є стандарт мови передачі повідомлень - ACL (Agent Communication Language).
До перших комерційних мов програмування агентів відноситься Telescript. На практиці агент може бути реалізований як компонент Java, COM-об'єкт, Lisp-програма або опис TCL. Для створення мультиагентних систем можуть використовуватися мови APRIL і MAIL.
Всі сучасні інструментальні засоби побудови мультиагентних систем підрозділяються на два класи – бібліотеки (наприклад, JATLite – додаткові бібліотеки до мови Java) і середовища (наприклад, AgentBuilder, середовище, що надає засоби для організації мультиагентної системи, засоби специфікації архітектури агента і поведінки агентів, а також засоби відладки агентних програм і спостереження за поведінкою агентів).
З розвитком глобальної комп'ютерної мережі і зростанням об'ємів інформаційних ресурсів Інтернет роль інтелектуальних агентів і мультиагентних систем в організації ефективного пошуку інформації зростає
13.3. Приклади практичного застосування агентної парадигми
3Асоби пошуку в Інтернет
Найбільш популярні агенти в Internet - індексні агенти (Lycos, WebCrawler, InfoSeek). Індексні агенти виконують масовий, автономний пошук та зберігають індексні слова в назвах документів та в їх тексті. Користувач може здійснити пошук в масиві ключових слів. Індексні агенти намагаються бути вичерпними настільки, наскільки це можливо. Індексні агенти можуть дати досить швидку відповідь, але мають ряд обмежень:
запит по ключових словах є незручним;
індекси не є персоналізованими, що призводить до неправильних відповідей;
кількість помилок дуже швидко зростає з розширенням розмірів Internet;
індексні агенти не можуть індексувати весь Internet, зокрема - бази даних, сервера.
Наступним кроком розвитку таких агентів є можливість оцінювання вартості доступу, зони дії та швидкості. Більш селективними агентами є агенти, які допомагають користувачеві пересуватися по FAQ.
Наступний етап - допомога в одержанні інформації, яка безпосередньо не розташована в Internet. Для цього розробляються агенти, які дозволяють знайти експерта, який міг би допомогти отримати інформацію. Розглянемо засоби пошуку в Internet більш детально.
Інтелектуальні інформаційно-пошукові агенти
Для виходу на новий рівень у використанні Інтернет, в першу чергу, необхідним є перехід до семантично значущого подання інформації в мережі. Аналіз як реально діючих в Інтернет систем, так і дослідних прототипів, що орієнтувалися на подання інформації в вигляді знань, дозволяє стверджувати, що найбільш поширеним напрямком для реалізації застосувань в цій області є агентні технології і мультиагентні системи.
Будемо називати агентів, метою функціонування яких є ефективна взаємодія користувача з інформаційним середовищем і перетворення його в персоналізовані знання для конкретних користувачів,
інтелектуальними інформаційно-пошуковими агентами.
Інтелектуальні інформаційно-пошукові агенти повинні вміти;
отримувати знання від інших пошукових агентів, що мають доступ до потрібної інформації;
аналізувати отриману інформацію та вибирати потрібне користувачеві на основі свого досвіду спілкування з ним;
оптимізувати свої дії згідно власного досвіду.
Процес індивідуалізації буде відбуватися із використанням агентів непомітно для користувача. Для забезпечення свого призначення агенти мусять самостійно навчатися, наслідуючи прикладу користувача. В них повинна бути закладена спроможність "стежити" за послідовністю дій, що виконуються користувачем під час сеансу перегляду, і накопичувати інформацію про питання, що цікавлять користувача, вносячи відповідні зміни в свою поведінку. Метою створення інтелектуальних інформаційно-пошукових агентів є покращання результатів пошуку Інтернет. Сучасні пошукові машини досить часто видають занадто високий відсоток "зайвих" документів. Хоча, звичайно, результати пошуку залежать і від теми пошуку, і від обсягу документів по цій темі і ряду інших чинників. Переваги агентів перед простим зверненням до машин пошуку: Пошуковий агент передає користувачу не просто результати роботи машини (машин) пошуку, а заздалегідь переглядає документи і обирає з них найбільш релевантні з його точки зору. Для цього агент використовує певну технологію оцінки релевантності;
Агент може налаштовуватися до уподобань користувача, тобто враховувати ряд обмежень на пошук, що формулюються володарем агента.
Деякі агенти можуть працювати в режимі of-line, тобто коли користувач дасть завдання агенту і відключається від Інтернет, а агент рушає на сервер, де виконує роботу. Коли користувач знову підключається, агент надсилає йому виконане завдання. Агенти можуть бути налаштовані на пошук за розкладом - шукати інформацію кожну годину, день, тиждень, місяць тощо. Ця опція корисна при пошуку, наприклад, новин, інформації, поновлення якої відбувається досить часто або інформації, яка необхідна користувачу постійно в його роботі.
Агенти можуть навчатися. Користувач оцінює роботу агента, а агент враховуючи ці оцінки, може коригувати свої критерії відбору інформації.
Таким чином, пошукові агенти можуть розглядатися як інтелектуальна надбудова над машинами пошуку.
Питання
1. Що обумовило появу та розвиток концепції агентів?
2. Які 4 властивості повинна мати програма-агент?
3. Що означає така властивість агента, як автономність?
4. Що означає така властивість агента, як реактивність?
5. Наявність яких додаткових властивостей підвищує інтелектуальність агента?
6. Які є типи агентів за архітектурою побудови?
7. Які є типи агентів за функціональним призначенням?
8. Що таке мультиагентна програмна система?
9. Що складає основу парадигми агентно-орієнтованого програмування?
10. Які є способи взаємодії агентів?
