- •Парадигми програмування
- •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. Основні парадигми теоретичного програмування
- •Основна література
- •Додаткова література
3Адачні агенти
Припустимо, що агент повинен спланувати подорож, для цього необхідно здійснити планування з урахуванням висунутих обмежень. Цей процес вимагає використання технологій штучного інтелекту: виведення на основі правил, класичне планування, різноманітні логічні формалізми і т.д. Загальне рішення проблеми контролю важко запропонувати в зв'язку з тим, що вона суттєво залежить від вирішення проблем виявлення інформації, комунікації, онтології та інших. Для того, щоб адекватно реагувати на зовнішні події агент повинен вміти знаходити нові ресурси та періодично контролювати їх на надходження новин, що можуть вплинути на прийняття рішення. Також він повинен вміти прогнозувати зміни, що можуть суттєво вплинути на рішення, та оцінювати їх ймовірність та ризик. Таке розширене розуміння процесу планування особливо підкреслює важливість проблеми онтології. Дійсно, сайти, де розміщується інформація про погоду, оформлені для сприйняття їх людиною. Тому онтологію агента необхідно розширити настільки, наскільки це можливо та необхідно для того, щоб врахувати подібну додаткову інформацію.
Таким чином, успішність роботи задачного агента цілком залежить від ефективності механізмів пошуку, обробки та збереження інформації, які реалізують інформаційні агенти.
Інформаційні агенти
Інформаційний агент - це агент, що має доступ принаймні до одного, а потенційно - до багатьох інформаційних джерел, і здатний порівнювати і обробляти інформацію, отриману з цих джерел, для того, щоб відповідати на запити, надіслані користувачем та іншими інформаційними агентами. Інформаційні джерела можуть бути багатьох типів, включаючи, наприклад, традиційні БД, а також інші інформаційні агенти. Процес знаходження відповіді на запит може потребувати залучення інформаційних джерел, доступних агенту по мережі.
Інформаційні агенти забезпечують засоби допомоги в управлінні великими обсягами інформації. Особливо така задача стає актуальною при обробці інформації в Internet. Метою створення інформаційних агентів є створення умов для вирішення задач типу: "Сформувати звіт останніх фінансових результатів конкурентів нашої компанії використовуючи Internet-ресурси, витративши не більше 400 доларів на плату за доступ". Це звичайно важка задача.
На теперішній час не існує агентів, що вирішували навіть такі проблеми. Дійсно, для цього необхідно, щоб були вирішенні проблеми виявлення інформації, проблема онтології, сумісність програмного забезпечення, проблема мислення та проблема контролю. Крім того, можливо бути необхідно перекласти запит іншою мовою та представити результат у зручній формі.
Найбільш відомі агентні архітектури – PRS, JAM, TOURINMACHINE, COSY, INTERRAP.
13.2 Мультиагентні інформаційні системи
Автономно розроблені агенти можуть утворювати мультиагентну систему, взаємодіючи для досягнення спільних цілей. В такій системі кожний агент знає про своє оточення (модель), про себе (ментальну модель) і про агентів, з якими він взаємодіє (соціальна модель), знає цілі: реактивні (викликані зовнішніми подіями), власні (локальні) і кооперативні, а також умови своєї поведінки в певних ситуаціях і умови локального і сумісного планування дій.
Основу парадигми агентно-орієнтованого програмування складають:
