Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vstyp_ai.doc
Скачиваний:
2
Добавлен:
13.09.2019
Размер:
274.94 Кб
Скачать

445. Програма граматичного розібрання списку на державній мові.

Граматичний аналіз (граматичний розбір). Процес зіставлення лінійної послідовності лексем (слів, лексем) мови з його формальної граматикою. Результатом зазвичай є дерево розбору або абстрактне синтаксичне дерево. Для граматичного розбору комп'ютерних мов використовуються контекстно-вільні граматики. Це обгрунтовано тим, що граматики більш загальних типів за ієрархією Хомського (контекстно-залежні і, тим більше, необмежені) набагато важче піддаються певному аналізу, а більш прості (регулярні граматики) не дозволяють описувати вкладені конструкції мови, і тому недостатньо виразні. Методи граматичного розбору можна розбити на 2 великі класи - висхідні та низхідні - відповідно до порядку побудови дерева граматичного розбору. Спадні методи (методи зверху вниз) починають з правила граматики, що визначає кінцеву мету аналізу з кореня дерева граматичного розбору і намагаються його нарощувати, щоб наступні вузли дерева відповідали синтаксису аналізованого пропозиції. Висхідні методи (методи знизу вгору) починають з кінцевих вузлів дерева граматичного розбору і намагаються об'єднати їх побудовою вузлів все більш і більш високого рівня до тих пір, поки не буде досягнутий корінь дерева.

Абстрактне синтаксичне дерево. Інші назви: дерево Канторовича, Abstract Syntax Tree (AST), АСД. Абстрактне синтаксичне дерево це кінцеве, позначене, орієнтоване дерево, в якому внутрішні вершини зіставлені з операторами мови програмування, а листя з відповідними операндами. Таким чином, листя є порожніми операторами і представляють тільки змінні і константи. АСД відрізняється від дерева розбору тим, що зберігає тільки істотну інформацію про програму, тоді як дерево розбору, навпаки, - багато надлишкової інформації. У цьому сенсі абстрактне синтаксичне дерево є конденсованої формою дерева розбору, зручною для представлення структури мовних конструкцій з точки зору семантики.

449. Семантика числення висловів (Представлення знань) Семантика – значення речення. Оскільки програми штучного інтелекту повинні бути узгоджені з представляючими їх структурами, досить важко продемонструвати, що істинність їх положень залежить тільки від істинності початкового знання, тобто що процедури виводу не мають логічних помилок. Для цього необхідна точна інтерпретація семантики. Інтерпретація набору висловів – це присвоєння значення істинності (1) чи хибності (0) кожному пропозиціональному символу. Щоб встановити істинність чи хибність того чи іншого вислову використовують таблиці істинності, що має в собі всі можливі варіанти значення істинності для елементарних суджень. Таблиці істинності для логічних операцій:

Кон‘юнкція. Імплікація.

A B A۸B A B A→B

0 0 0 0 0 1

0 1 0 0 1 1

1 0 0 1 0 0

Дизюнкція. Еквівалентність

A B A۷B A B A≡B

0 0 0 0 0 1

0 1 1 0 1 0

1 0 1 1 0 0

Заперечення. A ¬A

0 1

1 0

446. Програма з використанням селекторів зовнішніх баз даних.

Система внутрішніх баз даних Visual Prolog, що використовує предикати asserta, assertz, retract і retrctall, є простою і зручною. Однак вона поступається і швидкості роботи з великими базами даних, почасти через цих міркувань була створена система зовнішніх баз даних, за допомогою якої можна, наприклад, створити: систему управління запасами з великою кількістю записів; експертну систему з багатьма відносинами і невеликою кількістю записів цього складної структури; облікову систему для запам'ятовування великих текстів в базі даних; користувача базу, в якій дані пов'язані не реляційних шляхом. Система зовнішніх баз даних Visual Prolog підтримує різні типи програм, і при цьому задовольняє наступному вимозі: недопустима втрата даних при операції оновлення (навіть в разі припинення подачі електроживлення). Предикати зовнішніх баз даних Visual Prolog забезпечують наступні можливості: ефективна обробка великих обсягів даних на диску; можливість помістити базу даних як в файл, так і на згадку; багатокористувацький доступ; велика гнучкість у роботі з даними, ніж та, що забезпечується механізмом пошуку з поверненням; здатність зберегти і завантажити зовнішні бази даних в двійковому вигляді. Зовнішня база даних Visual Prolog складається з двох компонентів: одиниць даних, тобто термів Visual Prolog, згрупованих в ланцюжки, і відповідних B + дерев, які використовуються для швидкого доступу до даних. Імена всіх стандартних предикатів управління базами даних підпорядковуються таких угод: перша частина імені (db_, chain_, term_ і т.д.) ідентифікує те, що ви повинні визначити як вхідні дані; друга частина імені (flush, btrees, delete і т. д.) вказує на вироблене дію чи вихідна даність. Наприклад, за допомогою db_delete віддаляється база даних, за допомогою chain_delete - ланцюжок, a term_delete видаляє терм. Селектори зовнішніх баз даних Є можливість підтримувати кілька баз даних відкритими одночасно в пам'яті і на диску. Використовуючи таку гнучкість, можна поміщати зовнішні бази да них там, де досягається найкращий компроміс між швидкодією і витрата ми пам'яті. Для вказівки однієї з декількох відкритих баз даних при кожному виклику стан дротяні предикатів використовуються селектори, які визначаються доменом db_selector. Він працює аналогічно домену file в системі файлів. Наприклад, таке оголошення декларує customers і parts селекторами зовнішніх баз даних: domains

db_selector = customers; parts

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