Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_ПАРАДИГМИ ПРОГРАМУВАННЯ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.32 Mб
Скачать

12.6.2. Лямбда-вирази

У попередньому прикладі умовний вираз (num % 2 == 0) передається як вбудований аргумент методу Where: Where(num => num % 2 == 0). Цей вбудований вираз називається лямбда-виразом. Він є зручним способом написання коду, який інакше довелося б записувати в громіздкішій формі як анонімний метод, універсальний делегат або дерево виразів. У C# => є лямбда-оператором, який читається як "переходить". num зліва від оператора є вхідній змінній, яка відповідає num у виразі запиту. Компілятор може визначити тип num, оскільки йому відомо, що numbers є універсальним типом IEnumerable<(Of <(T>)>). Основна частина лямбда-виразу представляє те саме, що і вираз в синтаксисі запиту або в будь-якому іншому виразі або операторі C#; він може включати виклики методів і іншу складну логіку. Значенням, що повертається є просто результат виразу.

Приступаючи до роботи з LINQ, немає необхідності широко використовувати лямбда-вирази. Проте деякі запити можуть виражатися лише в синтаксисі методів, а деякі з них вимагають лямбда-виразів.

Тема 7. Парадигма агентно-орієнтованого програмування Лекція 13. Агентно-орієнтоване програмування

13.1 Основні поняття агентно-орієнтованої парадигми програмування

Технологія, яка базується на програмних агентах, забезпечує нову парадигму для створення інтелектуальних систем. Програмний агент - це сутність, що здатна до формулювання цілей, навчання, планування та прийняття рішень за обставинами, що динамічно змінюються.

Парадигма агентно-орієнтованого програмування формувалася на базі теорії динамічних систем, теорії управління, когнітивної психології (теорії мотивації), концептуального моделювання баз даних і знань і ін.

Поява концепції агентів обумовлена сучасним рівнем інформаційних технологій і необхідністю обробки великих об'ємів інформації, розподіленої в інформаційних мережах. Простим прикладом задачі, яка може ефективно розв'язуватися за допомогою агентів, є пошук потрібних відомостей в Інтернет, що вимагає великих витрат часу на пошук, аналіз і відбір потрібної інформації.

Проблема побудови і використання агентів досліджується в рамках областей штучного інтелекту і комп'ютерних наук.

Під агентом, як правило, розуміють комп'ютерну програму, яка має такі властивості:

  • автономність – здатність працювати без зовнішніх втручань і здійснювати контроль своїх дій і станів;

  • соціальна активність – здатність співробітничати з іншими програмами-агентами (і людьми), використовуючи агентно-комунікаційні мови;

  • реактивність – здатність змінювати свою поведінку залежно від стану зовнішнього середовища;

  • проактивность – уміння не тільки вирішувати поточну задачу пошуку, але і вибирати при цьому потенційно корисну для користувача інформацію в своїй базі даних.

Вимога автономності викликана потребою в тому, щоб відповідно до змін середовища агент був здатний здійснювати дії гнучко та інтелектуально без постійних вказівок або втручання користувача. В ідеальному варіанті агент, якиЙ довгий час неперервно функціонує в середовищі, повинен бути здатним навчатися на власному досвіді.

Використання агентно-орієнтованої парадигми призводить до змін стилю програмування. Найближчим до агентно-орієнтованого стилю програмування є об'єктно-орієнтований.

У таблиці наведено основні їх відмінності

Об'єкти

Агенти

основний елемент

екземпляр

агент

параметри

необмежені

знання, бажання, наміри, здібності..

процес обчислення

операції

повідомлення

типи повідомлень

визначені в класах

визначені в наборі програм

послідовність повідомлень

неявні

визначаються в ході спілкування

соціальний статус

ніякого

чесність, логічність,...

Інтелектуальність агента підвищує наявність у нього таких додаткових властивостей:

  • переконань – базованих на знанні агента про поточний стан оточення і його змінах, до яких повинні привести дії агента;

  • бажань – базованих на відношенні агента до майбутніх станів оточення і перевазі одного стану над іншими, а також здатності розрізняти несумісні і не здійсненні бажання;

  • цілей – які розглядаються як підмножини несуперечливих бажань агента;

  • намірів – утворених несуперечливою підмножиною цілей, які може досягти агент при певному обмеженні ресурсів, і засобами їх досягнення;

  • мобільності – здатності самостійно переходити з однієї платформи на іншу.

На сьогоднішній час більшість агентів жорстко спеціалізовані і не мають одночасно всі ці властивості.

Хоча існують різні підходи до класифікації агентів, найбільш поширена така їх класифікація:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]