Міністерство освіти України
Національний університет «Львівська політехніка»
Кафедра «Інформаційні системи та мережі»
КУРСОВА РОБОТА
З курсу
«Системи штучного інтелекту»
на тему:
« Проектування СШІ на основі мови Пролог»
Виконала: ст.гр. ФЛ-44
Прийняла:
ЛЬВІВ-2010
Національний університет « Львівська політехніка»
Інститут комп’ютерних наук та інформаційних технологій
Кафедра « Інформаційні системи та мережі»
ЗАВДАННЯ
На курсову роботу студентові
Чабан Наталі Володимирівні
Тема роботи _________________________________________________________________
_______________________________________________________________________________
Термін здачі студентом закінченої курсової роботи
_______________________________________________________________________________
Вихідні відомості до роботи____________________________________________________
____________________________
Зміст пояснювальної записки___________________________________________________
_______________________________________________________________________________
Перелік графічного матеріалу __________________________________________________
_______________________________________________________________________________
Дата видачі завдання __________________________________________________________
Керівник _______________________________________________________________________
Завдання прийняла до виконання __________________________________________________
КАЛЕНДАРНИЙ ПЛАН
Пор.
№
Назва етапів курсової роботи
Термін виконання
Примітка
Студент
Підпис
Керівник роботи
Підпис
ЗМІСТ:
Вступ
Розділ I. Теоретична частина.
2.1 Штучний інтелект.
Інтелект людини та її розумова діяльність.
Штучний інтелект як наука.
Еволюція штучного інтелекту.
Сучасні напрямки досліжень в штучному інтелекті.
2.2.Мова логічного програмування «Пролог».
Програмування і логіка.
Історія виникнення мови Пролог.
Актуальність та принцип роботи мови Пролог.
Програмування на мові Пролог.
Ефективність програм та їх розробка
РозділII. Практична частина
Проектування систем Штучного інтелекту на основі мови пролог у видавничій справі
Висновок
Список використаної літератури
5-8cт
9-13ст
13-14ст
15-17ст
17-20ст
20-22cт
22-24ст
24-28ст
28-30ст
30-33ст
33-40ст
61-62ст
62-63ст
Вступ
Розвиток людської цивілізації можна розглядати як послідовність соціально-економічних та технологічних революцій, кожна з яких долаючи недоліки попередньої стадії розвитку, виявляє нові ресурси та створює нові можливості для подальшого прогресу. Приводом для останньої технологічної революції, початої біля півстоліття тому, стала інформаційна криза, викликана зростанням протиріччя між кількістю створюваної людством інформації, та її обсягом, доступним для сприйняття та використання пересічними членами суспільства. Це протиріччя спричиняло уповільнення темпів зростання виробництва, зменшення його ефективності, зростання соціального розшарування та збільшення напруженості у суспільстві, створення умов для конфліктів, найбільшими з яких були останні дві світові війни. Після закінчення другої світової війни і, особливо, з початком холодної війни, яка значною мірою була війною інформаційною, почались інтенсивні пошуки шляхів подолання інформаційної кризи. Саме в цей період було створено перші ЕОМ, що мали прискорити вирішення цієї проблеми.
Вже перший досвід практичного використання ЕОМ показав, що методи обробки інформації, використовувані для їх програмування, часто поступаються тим, які в подібних ситуаціях застосовує людина. Згадаймо, наприклад, скільки часу нам потрібно для прийняття рішення при переході вулиці. А для ЕОМ, що вирішуватиме таку ж задачу, треба розпізнати ситуацію на дорозі, виявити рухомі об’єкти, оцінити можливі загрози і тілки тоді зробити висновки. Виконання цієї послідовності дій потребує часу та значних обчислювальних ресурсів. Подібні порівняння приводили до висновку, що людський мозок приховує значний інтелектуальний потенціал, що може бути застосований для поліпшення методів програмування, а можливо і самих принципів роботи ЕОМ.
Отже таким чином, людина підходить до проблеми сворення «інтелектуальних машин», машин які б могли імітувати розумову діяльність людини. На горизонті наук зявляється нова дисципліна «штучний інтелект».
Інтелектуальна машина - це штучна система, яка імітує рішення людиною складних завдань в процесі його життєдіяльності (лат. intelektus - розум; розумові здібності людини). Людина у своїй діяльності використовує різноманітні інтелектуальні функції (інтуїція, творчість, уява, асоціація, індукція, дедукція, обчислення, пошук та ін.). Створення штучних систем, які б реалізовували ці функції і є головним завданням проблематики штучного інтелекту.
Штучний інтелект (ШІ) - це наука про концепції, що дозволяють обчислювальним машинам (ОМ) робити такі речі, які у людей виглядають розумними. Але що ж являє собою інтелект людини? Чи чи це здатність роздумувати? Чи є це здатність засвоювати і використовувати знання? А можливо це здатність оперувати і обмінюватися ідеями? Безсумнівно, всі ці здібності являють собою частину того, що є інтелектом. Насправді дати визначення інтелекту, мабуть, неможливо, тому що інтелект - це сплав багатьох навичок в області обробки і представлення інформації.
Зародився штучний інтелект у загальному комплексі кібернетичних досліджень пов'язаних з розвитком обчислювальної техніки, удосконаленням програмного забезпечення, розширенням галузей використання ЕОМ.60-70-ті роки минулого сторіччя були періодом бурхливого розвитку систем обробки інформації у різних сферах (наука, промисловість та ін.). Підвищилась продуктивність та надійність ЕОМ, зросли обсяги пам'яті, розширились номенклатура периферійних пристроїв і систем програмного забезпечення. В результаті на початку 80-х років були створені персональні ЕОМ, більш доступні для користувачів, що значно розширило сферу використання комп'ютерів. Однак на початку 80-х років розвиток обчислювальної техніки не привів до різкого розширення її використання, що стримувалося традиційною технологією вирішення завдань на ЕОМ. Стало очевидним, що прогрес розвитку засобів обчислювальної техніки має кількісний характер, що є необхідною, але не достатньою умовою ефективного використання комп'ютерів. Потрібним стало виконання ще однієї умови - забезпечення високого рівня обробки інформації та перетворення машини у зручного партнера кінцевого користувача при виконанні ним функцій, пов'язаних з професійною діяльністю. На вирішення цієї проблеми були направлені не тільки дослідження у галузі апаратних засобів, а й дослідження у галузі штучного інтелекту.
Створення штучного інтелекту було і є актуальним протягом багатьх років. Для його проектування використовується багато засобів, зокрема мова програмування пролог.
Логічне програмування, так само як і подібний до нього напрямок - функціональне програмування, радикально відхиляється від основного шляху розвитку мов програмування. Логічне програмування будується не за допомогою деякої послідовності абстракцій і перетворень, що відштовхується від машинної архітектури фон Неймана й властивого їй набору операцій, а на основі абстрактної моделі, що ніяк не пов'язана з якимось типом машинної моделі. Логічне програмування базується на переконанні, що не людині варто навчати мисленню в термінах операцій комп'ютера (на деякому історичному етапі певні вчені й інженери вважали подібний шлях простим й ефективним), а комп'ютер повинен виконувати інструкції, властиві людині. У своєму граничному й чистому виді логічне програмування припускає, що самі інструкції навіть не задаються, а замість цього явно, у вигляді логічних аксіом, формулюються відомості про завдання й припущення, достатні для рішення певних задач. Така безліч аксіом є альтернативою звичайній програмі. Подібна програма може виконуватися при постановці завдання, формалізовані у вигляді логічного твердження, що підлягає доказу. Таке твердження називається цільовим твердженням. Виконання програми полягає у спробі вирішити завдання, тобто довести цільове твердження, використовуючи припущення, задані в логічній програмі. Логічне програмування виникло головним чином завдяки успіхам в автоматичному доказі теорем, зокрема завдяки розробці принципу резолюції. Успіхи в технології реалізації також значною мірою сприяли поданню логіки як практичної формальної системи програмування. Перший експериментальний інтерпретатор був реалізований Русселом і Колмерое й іншими в університеті Екс – Марсель в 1972 році. Йому було дане ім'я Пролог (“програмування мовою логіки” – PROgramming in Logic), і він вплинув на розробку наступних систем. Деякий час логічне програмування було припинило свій розвиток, але з часом бува відкритий японський проект комп’ютерів п'ятого покоління. Саме із цього моменту відбувся перехід Прологу від юності до зрілості. Prolog призначений для видачі відповідей, які він логічно виводить за допомогою своїх потужних внутрішніх процедур. Так програма на Prolog у кілька рядків може замінити кілька сторінок тексту при програмуванні на якій-небудь іншій мові. Завдяки наявності потужних засобів зіставлення, Prolog придатний не тільки для використання в додатках, що ставляться до області штучного інтелекту й обробці природно-мовних конструкцій, але також застосовуємо в таких традиційних областях, як, наприклад, керування базами даних. Своїм корінням Пролог сягає математичної логіки. Якщо традиційні мови програмування є процедурно-орієнтованими, Пролог заснований на декларативній точці зору на програмування. Мова програмування Пролог базується на обмеженому наборі механізмів, що включають до себе зіставлення зразків, деревовидне представлення структур даних та автоматичне повернення. Цей невеликий набір створює дивовижно потужний та гнучкий програмний апарат. Пролог особливо добре застосовувати для вирішення задач, в яких фігурують об’єкти (зокрема структури) та відносини між ними. При використанні предиката можна вказувати як точні дані, так і відносини між ними. Пролог – це мова програмування, призначена для обробки символьної нечислової інформації. Мова Пролог добре пристосована для вирішення тих завдань, в яких мова йде про відносини між різними об'єктами. Програмування на Пролозі складається у визначенні відносин й у постановці питань, що стосуються цих відносин. Процес, у результаті якого Пролог-система встановлює, чи задовольняє об'єкт запит, містить у собі логічний вивід і дослідження різних варіантів. Все це робиться автоматично самою Прологом-системою й, як правило, приховано від користувача. Технологія алгоритмічного програмування базується на методі послідовної деталізації алгоритмів. Спочатку формулюється основний алгоритм, що складається з "великих" блоків (команд), частина яких може бути незрозуміла виконавцеві (не входить у його систему команд). У цьому випадку вони записуються як виклики допоміжних алгоритмів. Потім відбувається деталізація, тобто всі допоміжні алгоритми докладно розписуються з використанням команд, зрозумілих виконавцеві. Мова програмування характеризується властивими йому механізмами керування й обробки даних. Пролог як універсальну мову програмування можна розглядати й із цих точок зору. При успішному виконанні обчислення засобу керування програм мовою Пролог подібні до засобів керування у звичайних процедурних мовах. Структури даних, якими оперують логічні програми, - терми – відповідають загальним структурам записів у звичайних мовах програмування. Пролог використовує дуже гнучку систему організації структур даних. Подібно мові Лісп, Пролог є безтиповою мовою, що не містить оголошення даних. Основна мета логічного програмування – створити можливість розробки програм мовою високого рівня. В ідеалі програміст повинен записати аксіоми, що визначають необхідні відносини, повністю ігноруючи, яким образом ці аксіоми будуть використатися в процесі виконання. Наявні мови логічного програмування, і, зокрема Пролог, усе ще далекі від цього ідеалу декларативного програмування. Не можна ігнорувати конкретний, чітко певний спосіб моделювання абстрактного оператора в реалізації кожної мови. Ефективне логічне програмування вимагає знання й використання цього способу.
Системи штучного інтелекту, які створенні на основи мови Пролог можна використовувати для обробки інформації. Зокрема такі системи використовуються у видавничій справі, засобах масових інформацій. На мою думку,сьогодні основним засобом масової ін формації, джерелом інформації є Інтернет. Тому неодмінно слід згадати використання систем штучного інтелекту у цій мережі.
Розділ I. Теоретична частина
Штучний інтелект
Інтелект людини та її розумова діяльність.
Щоб зрозуміти, що таке штучний інтелект – треба для початку усвідомити, що таке інтелект взагалі. Тому, спершу я спробую ввести визначення інтелекту.
З давніх-давен людині були необхідні помічники для полегшення виконання тих чи інших операцій. Були винайдені різноманітні механізми, машини і т.п. Поява електронно-обчислювальних машин дала змогу автоматизувати виконання трудомістких розрахункових робіт. Згодом стало ясно, що ці машини можна використовувати не тільки для обчислень, але й для керування різними пристроями, складними автоматизованими виробництвами тощо. Широкого поширення набули роботи - програмно керовані пристрої, здатні безпосередньо взаємодіяти з фізичним світом та виконувати в ньому певні дії. Такі роботи широко використовуються у виробництві.
Природня мова на сучасному етапі малопридатна для цього через свою складність та неоднозначність. Один із шляхів вирішення цієї задачі є формулювання інструкцій мовою, зрозумілою виконавцю, тобто написання програм. Програмування полягає у перекладі інструкцій, написаних мовою, близької до природної, на мову, яку здатна сприйняти обчислювальна система. Відомі складності сучасного програмування, пов’язані з необхідністю надмірної алгоритмізації, тобто детального ретельного розписування інструкцій з урахуванням усіх можливих ситуацій. З цієї ситуації існує єдиний вихід - підвищення рівня “розумності”, інтелектуальності сучасних комп’ютерів та роботів. Постає питання, що розуміється під такими поняттями, як “інтелектуалізація”, "штучний інтелект"? Можна стверджувати, що “штучний” інтелект у тому чи іншому розумінні повинен наближатися до інтелекту природного і у ряді випадків використовуватися замість нього; так само, як, наприклад, штучні нирки працюють замість природних. Чим більше буде ситуацій, у яких штучні інтелектуальні системи зможуть замінити людей, тим більш інтелектуальними будуть вважатися ці системи.
Навряд чи є сенс протиставляти поняття штучного інтелекту і інтелекту взагалі. Тому слід спробувати визначити поняття інтелекту, незалежно від його походження.
Людина вважається інтелектуальною “від природи”, і цей інтелект був вироблений на протязі мільйонів років еволюції. Людина вміє вирішувати багато інтелектуальних задач. Кожна людина вважає, що вона розуміє значення слова “інтелект”, але якщо попросити дати визначення цього слова, в переважній більшості чіткої відповіді не буде. І дійсно, дати визначення поняття інтелекту, яке б задовольняло всіх, очевидно, неможливо. Але відсутність чіткого визначення не заважає оцінювати інтелектуальність на інтуїтивному рівні. Можна навести як мінімум два методи такої оцінки: метод експертних оцінок і метод тестування При застосуванні методу експертних оцінок рішення про ступінь інтелектуальності приймає досить велика група експертів
При застосуванні методу тестування пропонується розв’язати ті чи інші тестові завдання. Існує значна кількість інтелектуальних тестів для оцінки рівня розумових здібностей людини, що знайшли застосування в психології та психіатрії [ Айзенк, Дюк, Клайн]. На приклад:
Приклад1 Вставте число, яке пропущене:
36 30 24 18 6
Приклад 2. Викресліть зайве слово:
лев лисиця жираф щука собака
Серед психіатрів інколи можна почути вислів: “він міркує логічно вірно, але неправильно”. Наприклад, дається тестове завдання: “серед слів соловей, чапля, перепілка, стілець, шпак виділити зайве”.Більшість людей, не задумуючись, дає відповідь стілець, тому що всі інші слова - це назви птахів. І раптом хтось дає відповідь шпак, пояснюючи це тим, що це єдине слово, в якому відсутня літера “л”.Обидві класифікації є логічно вірними і формально рівноправними. Але чому ж перевага віддається одній з них? Тому, що так міркує більшість людей. А чому так міркує більшість людей? Очевидно, тому, що перша класифікація вважається більш важливою для практичної діяльності людини. Це положення приймається на аксіоматичному рівні, без доведення.
Потрібно наголосити, що поняття “штучний інтелект” не можна зводити лише до створення пристроїв, які повністю або частково імітують діяльність людини. Не менш важливою є інша задача: виявити механізми, які лежать в основі діяльності людини, щоб застосувати їх при вирішенні конкретних науково-технічних задач. І це лише одна з можливих проблем.
Розглянемо і проаналізуємо в загальних рисах деякі проблеми, які доводиться постійно вирішувати людському розумові: розпізнавання образів, мислення та обчислювальні задачі.
На інтуїтивному рівні можна сформулювати декілька типових задач розпізнавання образів (або просто розпізнавання):
задача ідентифікації – полягає в тому, що об’єкт, який спостерігається людиною, потрібно вирізнити серед інших (наприклад, побачивши іншу людину, впізнати у ній свого друга);
проблема розпізнавання в класичній постановці: об’єкту, що спостерігається, до одного з заздалегідь відомих класів об’єктів (наприклад, відрізнити легковий автомобіль від вантажного).
Людина робить класифікацію просто. Наприклад, чоловік, повернувшись додому з роботи, відразу ж пізнає свою дружину, але більшість людей в повному обсязі не зможе пояснити, як він це робить. Як правило, раціонального пояснення немає. Теорія розпізнавання, яка інтенсивно розвивається, необхідна для того, щоб навчити розв’язувати задачі розпізнавання штучні інтелектуальні системи на основі досвіду розпізнавання людиною. Зокрема, сформульовано такий ключовий принцип: будь-який об`єкт у природі - унікальний; унікальні об`єкти - типізовані. У відповідності до цього принципу, розпізнавання здійснюється на основі аналізу певних характерних ознак. Вважається, що в природі не існує двох об’єктів, для яких співпадають абсолютно всі ознаки, і це теоретично дозволяє здійснювати ідентифікацію. Якщо ж для деяких об’єктів співпадають деякі ознаки, ці об’єкти теоретично можна об’єднувати в групи, або класи, за цими співпадаючими ознаками.
Проблема полягає у тому, що різноманітних ознак існує незліченна кількість. Незважаючи на легкість, з якою людина проводить розпізнавання, вона дуже рідко в змозі виділити ознаки, суттєві для цього. До того ж, об’єкти, як правило, змінюються з часом.
Розпізнавання об’єктів і ситуацій має виняткове значення для орієнтації людини в навколішньому світі і для прийняття вірних рішень. Розпізнавання, як правило, здійснюється людиною на інтуїтивному, підсвідомому рівні, людина навчилася цьому за мільйони років еволюції.
Інша інтелектуальна задача – моделювання мислення. Можна виділити два типи процесів мислення:
підсвідоме інтуїтивне мислення, механізми якого на сучасному етапі вивчені недостатньо і яке дуже важко формалізувати та автоматизувати;
дедуктивнілогічні побудови за формалізованими законами логіки. Дедукцією називається перехід від загального до часткового, виведення часткових наслідків з загальних правил.І тут пересічна людина рідко в змозі пояснити, за якими алгоритмами вона здійснює логічне виведення. Але методики та алгоритми, за якими можна автоматизувати виведення наслідків з фактів або логічну перевірку тих чи інших фактів, досить відомі.
Перш за все, це формальна логіка Аристотеля на основі конструкцій, які отримали назву силогізмів. Вони практично неподільно панували в логіці аж до початку XIX століття, тобто до появи булевої алгебри. Немає ніякої необхідності давати якісь формальні визначення силогізмів. Наведемо лише один класичний приклад:
Перше твердження. Усі люди смертні.
Друге твердження. Сократ - людина.
Висновок: Сократ смертний.
Якщо перше та друге твердження у силогізмі істинні та задовольняють певним загальним формальним вимогам, тоді і висновок буде істинним незалежно від змісту тверджень, що входять до силогізму. При порушенні цих формальних вимог легко припуститися логічних помилок, подібних до таких:
Всі студенти вузу А знають англійську мову
Петров знає англійську мову.
Отже, Петров - студент вузу А.
Або:
Іванов не готувався до іспиту і отримав двійку.
Сидоров не готується до іспиту.
Отже, і Сидоров отримає двійку.
Аристотелем було запропоновано декілька формальних конструкцій силогізмів, які він вважав достатньо універсальними. Лише у XIX столітті почала розвиватися сучасна математична логіка, яка розглядає силогізми Аристотеля як один із часткових випадків. Основою більшості сучасних систем, призначених для автоматизації логічних побудов, є метод резолюцій Робінсона.. Але практична реалізація логічних задач зіткнулася з серйозними проблемами. Головна з них - це феномен,який Річард Беллман назвав прокляттям розмірності. На перший погляд, описати знання про зовнішній світ можна було б, наприклад, таким чином: “об’єкт А має рисиX, Y, Z. В відрізняється від А тим, що має рису Н, і т.д”.Але зовнішній світ є винятково складним переплетінням різноманітних об’єктів та зв’язків між ними.Для того, щоб тільки ввести всю цю інформацію до пам’яті інтелектуального пристрою, може знадобитися не одна тисяча років. Ще більше років буде потрібно, щоб врахувати всі необхідні факти при логічному виведенні. Реальні програми, що здійснюють логічне виведення (вони часто називаються експертними системами) мають досить обмежене застосування. Вони мають обмежений набір фактів та правил з певної, більш-менш чітко окресленої предметної галузі і можуть використовуватися лише у цій галузі.
Що ж стосується людини, то якість її логічного мислення також часто буває далекою від бездоганної. Люди часто роблять логічні помилки, а інколи взагалі керуються принципами, невірними з точки зору нормальної логіки. Дуже часто свідоме логічне виведення на певному етапі обривається, і рішення знову-ж таки приймається на підсвідомому, інтуїтивному рівні. Зрозуміло, що таке рішення може бути помилковим. Але, якби в основі поведінки людини лежали спроби проводити дедуктивні побудови з логічного початку до логічного кінця, людина була б практично не здатною до будь-якої діяльності: фізичноїабо розумової – це вимагало б значного часу аналізу.
Спільною рисою згаданих вище проблем була їх погана формалізованість, відсутність або незастосовність чітких алгоритмів розв’язку. Вирішення подібних задач і є основним предметом розгляду в теорії штучного інтелекту.
До зовсім іншого класу відносяться задачі, пов’язані з обчисленнями. В принципі, важко відповісти на запитання, як саме людина здійснює ті чи інші обчислення. Добре відомими є і низька швидкість, і невисока надійність цього виду людської діяльності. Але були запропоновані ефективні принципи комп’ютерних обчислень, які радикально відрізняються від тих, які застосовуються людиною.і добре формалізовані, алгоритмічні методики забезпечили рівень вирішення обчислювальних задач, абсолютно недосяжний для людського інтелекту. Водночас цей високий рівень алгоритмізації значною мірою зумовив слабкість традиційних комп’ютерних систем при розв’язанні тих інтелектуальних задач, з якими людина справляється непогано.
З появою таких обчислювальних потужностей мрійники шістедесятих – сімдесятих років ХХ століття ставили задачу моделювання в повному обсязі роботу людського мозку. Теоретично, цію задачу з певними обмеженнями можна було б вирішити. Але складність потрібних обчислень виявилася такою, що змусила більшість дослідників відійти від поставленої задачі і перейти до більш простих задач; моделювання принципів роботи людського мозку при розв’язку конкретно визначених типів задач. [3]
« Штучний інтелект» як наука.
На мою думку, дати визначення, що таке «штучний інтелект» дуже важко. Визначення поняття «штучний інтелект» — питання філософське. Тому я вважаю, щоб краще підійти до розуміння цього поняття —варто розглянути його як науку.
Термін «штучний інтелект» вперше виник у зарубіжній літературі. І навколо питання про доцільність використання його не вщухають гострі дискусії методологічного й філософського характеру. [1]. Було зроблено чимало спроб дати формальне визначення поняття інтелекту, зокрема, штучного. Очевидно, найбільш відомим є визначення предмету теорії штучного інтелекту, яке було введене видатним дослідником у галузі штучного інтелекту Марвіном Мінським. Воно потрапило до багатьох словників та енциклопедій з невеликими змінами і відображає таку основну думку: “штучний інтелект є дисципліна, що вивчає можливість створення програм для вирішення задач, які при вирішенні їх людиною потребують певних інтелектуальних зусиль”. Але і це визначення має вади. Головна з них полягала в поганій формалізації поняття “певні інтелектуальні зусилля”. “Певних інтелектуальних зусиль” вимагає, наприклад, виконання простих арифметичних операцій, але чи можна вважати інтелектуальною програму, яка здатна до виконання тільки таких операцій? Відтак у ряді книг та енциклопедій до наведеного визначення додається поправка: "сюди не входять задачі, для яких відома процедура їх розв’язку". Важко вважати таке формулювання задовільним. Розвиваючи цю думку далі, можна було б продовжити: отже, якщо я не знаю, як виконувати деяку задачу, то вона є інтелектуальною, а якщо знаю - то ні. Наступний крок - це відомі слова Л.Теслера: “Штучний інтелект - це те, чого ще не зроблено”. Цей парадоксальний висновок лише підкреслює дискусійність проблеми.
Штучний інтелект – це нова область , коротка історія якої налічує всього декілька десятків років. В п’ятдесятих роках на горизонті повоєнних наук з’являється кібернетика. Ця наука починає дуже стрімко розвиватись і так само швидко починає розділятись на галузі, однією з яких стає «штучний інтелект»[5]. «Штучний інтелект» — образна назва галузі досліджень, що являє собою сукупність методів і засобів аналізу розумової діяльності людини й конструювання технічних систем, спроможних виконувати завдання, які раніше вважалися прерогативою людського мозку[1]. На цю галузь покладають великі надії і її область є дуже обширною, але ядром її є створення апарату представлення і обробки знань.[5]. Кінцевою метою досліджень з питань «штучного інтелекту» є розкриття таємниць мислення та створення моделі мозку. Принципова можливість моделювання інтелектуальних процесів випливає з основного гносеологічного результату кібернетики, який полягає у тому, що будь-яку функцію мозку, будь-яку розумову діяльність, описану мовою з суворо однозначною семантикою за допомогою скінченного числа слів, в принципі можна передати електронній цифровій обчислювальній машині. Сучасні ж наукові уявлення про природу мозку дають підстави вважати, що принаймні в суто інформаційному аспекті найістотніші закономірності мозку визначаються скінченною системою правил. [1].
Таким чином можна сказати, що основна задача ШІ —це створення формальних засобів представлення і обробки знань. Але важливо зазначити напрямок по якому рухається цей процес — від вивчення різних форм знань до розробки комплексу формальних засобів, які охоплюють в ідеалі всі сфери діяльності людини.
На основі всього вище зазначеного можна вивести поняття ШІ. Штучний інтелект—це технічна система, що має певні ознаки інтелекту, тобто здатна: розпізнавати та розуміти, знаходити спосіб досягнення результату та приймати рішення, вчитися. [1].
Еволюція «штучного інтелекту». Основні напрямки в штучному інтелекті.
ШІ почав розвиватись на основі досягнень кібернетики та ранніх комп’ютерних технологій.В 1948р. було видано книгу Н. Вінера “Кібернетика”, в якій було запропоновано концепцію кібернетики як науки про загальні закони управління в природі та суспільстві, здатної інтегрувати досягнення інших наук. Ця концепція набула значної популярності і сприяла утворенню нових наукових напрямків на перетині традиційних наук, що сприяло активному залученню набутків науки для вирішення проблем розвитку суспільства. Одним з них був напрямок інтелектуальних систем, утворений на перетині математики, логіки, електроніки, фізики, психології та нейрофізіології. Його задачами стало вивчення, моделювання та штучне відтворення інтелектуальних властивостей людського мозку.
Напрямок інтелектуальних систем включає дві наукові дисципліни - штучний інтелект та штучні нейронні мережі, що втілюють діаметрально протилежні підходи до моделювання інтелектуальних властивостей мозку. Предметом вивчення для штучного інтелекту є розумові властивості, моделювання та практичне використання притаманних людському інтелекту методів рішення задач, сприйняття та аналізу інформації. В цьому сенсі штучний інтелект наближений до психології, відрізняючись від останньої метою та методами досліджень.
Для наукового напрямку штучні нейронні мережі предметом вивчення є будова та функції нервової системи, методи її моделювання. Метою досліджень є створення штучних нейронних мереж, здатних до навчання, асоціативного пошуку, інтерпретації сенсорної (зорової, слухової, смакової, тактильної) інформації. За предметом вивчення цей напрямок близький до нейрофізіології, результати якої становлять базу для моделювання штучних нейронних мереж.
Перші спроби побудувати машини для виконання операцій, притаманних людському розуму, було здійснено ще в 19 ст. Г. фон-Лейбніцем та Ч. Беббіджем. Запроектована Ч. Беббіджем аналітична машина мала виконувати послідовності логічних операцій за програмою, заданою на перфокарті. З появою перших ЕОМ в середині 20 сторіччя ідея створення штучного розуму почала набувати реальності. Вже в 1950р. англійський математик А. Тьюрінг в роботі розглянув проблему моделювання інтелектуальної поведінки за допомогою ЕОМ і запропонував тест для перевірки рівня інтелектуальності комп’ютерних програм. Тест Тьюрінга, що базується на порівнянні відповідей, які дає людина або ЕОМ на ті самі запитання, і тепер не втратив актуальності.
Систематичні дослідження в напрямку, що згодом дістав назву „штучний інтелект” розпочались з симпозіуму під назвою „механізації процесів мислення”, що відбувся в 1958р. в Теддінгтоні (Великобританія), де М. Мінський та Д. Маккей поставили питання про необхідність пошуку нових шляхів моделювання процесів мислення. В 1963р. в програмній статті М. Мінського було подано детальний аналіз стану проблеми та запропоновано 5 основних напрямків досліджень:
Пошук рішень
Розпізнавання образів
Методи навчання
Планування дій
Індуктивне моделювання
Робота М Мінського мала значний вплив на розвиток досліджень з штучного інтелекту на наступні роки. Запропоновані ним напрямки тривалий час визначали розвиток цієї дисципліни. Згодом розпізнавання образів, що напочатку було домінуючим напрямком штучного інтелекту перетворився на самодостатню наукову дисципліну, яка базується, в основному, на застосуванні методів статистичної теорії рішень. В останні роки напрямок розпізнавання образів не включають до дисципліни штучного інтелекту, залишаючи в ній лише спеціальні задачі розпізнавання, такі, як наприклад, аналіз сцен.
Початковий період, що припав на 50-60-і роки минулого століття був відзначений роботами А.Ньювела та С. Саймона, які створили програми Логік-теоретик та GPS, здатні відтворювати деякі процеси людського мислення. В цих програмах було застосовано формальний апарат логіки висловлювань для рішення різних математичних задач. Найбільшого успіху було досягнуто при доведенні теорем логіки висловлювань. Для вирішенні більш складних задач в GPS було застосовано евристичні методи, тобто неформальні методи скорочення кількості варіантів при пошуку рішень, схожі на ті, якими звичайно користуються люди. В подальшому формальний та евристичний напрямки розділились. Евристичний напрямок дістав поширення при вирішенні широкого кола прикладних задач штучного інтелекту, для яких методи формальної логіки були непридатними. Формальний напрямок став основою логічного підходу, в межах якого досягнуто важливі теоретичні результати у автоматичному доведенні теорем, створенні програм керування механічними маніпуляторами і т. ін. Вершиною досягнень цього напрямку можна вважати розробку мови логічного програмування ПРОЛОГ, та її застосування при виконанні японського проекту ЕОМ 5-го покоління (1975- 1985рр.), метою якого було створення ЕОМ, що за рівнем інтелекту наближається до пересічної людини. Мету проекту досягнуто не було, але результати розробки мали значний вплив на подальший розвиток цієї дисципліни, зокрема прискорили її переорієнтацію на виконання прикладних розробок.
Серед прикладних розробок штучного інтелекту мабуть найважливішими є експертні системи, тобто інформаційні системи, в яких знання експертів у певних предметних областях доповнюються формальними та евристичними методами пошуку рішень. В період 1970-80рр. було створено кілька десятків потужних експертних систем, які і досі широко застосовуються у промисловості, медицині та в наукових дослідженнях. Найбільш відомою є створена в Стенфордському університеті в середині 70-х років система MYCIN, в якій знання експертів з медицини використовуються для діагностики та лікування менінгіту та заражень крові.
Поширення експертних систем сприяло появі та розвитку інженерії знань —напрямку штучного інтелекту, задачами якого є добуток знань (Data Mining), розробка методів їх представлення, створення баз знань та їх практичне використання.
Добуток та представлення знань пов’язані з проблемою розуміння природної мови. Розуміння мови є фундаментальною властивістю людського розуму, тому вирішення цієї проблеми з самого початку розглядалось як одне з ключових завдань штучного інтелекту. Відзначимо, що незважаючи на значні зусилля, задовільні рішення для цієї проблеми досягнуто лише у вузьких предметних областях при значних обмеженнях мовних засобів. Зараз ця проблема все ще залишається відкритою.
Протягом останніх двох десятиріч з’явився новий напрямок штучного інтелекту —інтелектуальних агентів. Інтелектуальний агент — це програмний робот, здатний аналізувати інформаційне оточення та спілкуватись з іншими агентами для координації спільних дій, наприклад, редагування файлів або пошуку даних на серверах комп’ютерної мережі. Поява цього напрямку зумовлена поширенням технології розподілених систем, зокрема ІНТЕРНЕТ, утворенням інформаційного середовища для таких агентів. [6]
Сучасні напрямки досліжень в штучному інтелекті.
Хоч проблема «штучного інтелекту» тісно пов'язана з потребами практики, однак тут немає єдиної загальної практичної задачі, яка б однозначно визначала розвиток теорії, проте є багато задач, які є частковими, вузькими. Тому проблема «штучного інтелекту» — це фактично цілий комплекс проблем, які характеризуються різним ступенем загальності, абстрактності, складності й розробленості і кожній з яких властиві свої принципові й практичні труднощі. Це такі проблеми, як розпізнавання образів, навчання й самонавчання, евристичне програмування, створення загальної теорії самоорганізовуваних систем, побудова фізичної моделі нейрона та ін., багато з яких мають велике самостійне значення. По всіх цих напрямах на сьогодні одержано важливі результати, як практичного так і теоретичного характеру, тим не менше продовжуються інтенсивні дослідження в цих галузях.
Системи та засоби штучного інтелекту — галузь науки, яка займається теоретичними дослідженнями, розробленнями і застосуваннями алгоритмічних та програмно-апаратних систем і комплексів з елементами штучного інтелекту та моделюванням інтелектуальної діяльності людини. [1]
Наукові дослідження у галузі штучного інтелекту поділяють на два напрямки:
програмно-прагматичний
біонічний.
Перший напрямок охоплює створення програм, за допомогою яких можна вирішити завдання, що до цього вважалися виключною прерогативою людини (логічні задачі, задачі пошуку, класифікації і т. ін.).
Другий напрямок досліджує проблеми штучного відтворення тих структур і процесів, які характерні для живого людського мозку та лежать в основі процесу рішення завдань людиною. У зв'язку зі складністю цілей та завдань біонічного напрямку на цей час у галузі штучного інтелекту домінує програмно-прагматичний напрямок. У цьому напрямку не стає питання про адекватність структур та методів, що використовуються, тим, якими користується в аналогічних випадках людина, а розглядається лише кінцевий результат рішення конкретних завдань. З точки зору практичних результатів програмно-прагматичного напрямку виділяють такі розділи: інтелектуальні програми (програми рішення інтелектуальних завдань), робота зі знаннями (теорія і програми), інтелектуальне програмування (теорія та сервісні інтелектуальні програми), інтелектуальні програмні системи. Видами інтелектуальних програмних систем є: експертні системи, інтелектуальні інформаційні системи, розрахунково-логічні (гібридні) системи, інтелектуальні системи проектування та наукових досліджень, інтелектуальні роботи, системи для навчання (див. рис. 1).
Рис. 1. Структура досліджень у галузі штучного інтелекту [7]
Більш конкретно можна виділити такі напрямки досліджень:
Розробка теоретичних засад створення та застосування систем штучного інтелекту різноманітного призначення;
теоретичні засади та прикладні проблеми створення інтелектуалізованих робототехнічних систем;
моделювання інтелектуальної діяльності людини та його застосування в системах штучного інтелекту;
створення засобів і систем інтелектуалізації комп'ютерних інтерфейсів;
розробка алгоритмів і програмно-апаратних засобів для систем комп'ютерного розпізнавання та відтворення (синтезу) мовних і зорових образів;
дослідження процесів формування образів і моделювання принципів їх відтворення на підставі формальних логік;
розробка інтелектуальних систем керування автономними роботами та роботехнічними комплексами;
розробка сенсорних інтелектуальних систем розпізнавання;
створення й застосування високоінтелектуальних мульти- та гіпермедійних технологій і засобів для систем штучного інтелекту;
створення навчальних програм і віртуальних середовищ з елементами штучного інтелекту;
створення математичних моделей на принципах нечіткої логіки для застосування в системах штучного інтелекту;
розробка принципів, методів й архітектурних розв'язань побудови баз знань і технологія їх експертування (експертні та багатоагентні системи);
комп'ютерна лінгвістика та лексикографічні системи;
аналіз, синтез і моделювання нейронних мереж, розроблення методів їх проектування, оптимізації та навчання;
розробка технологій застосування нейрокомп'ютерів, прикладні системи на основі нейронних мереж. [1]
Мова логічного програмування «Пролог».
Програмування і логіка.
Майже всі сучасні комп’тери засновані на ранніх, розроблених у 40-х роках ідеях фон Неймана та його коллег. Машина фон Неймана має більшу пам’ять і процесор, оснащений локальною пам’яттю і комірками, що називаються регістрами. Процесор може завантажувати дані з пам’яті в регістри, виконувати арифметичні та логічні операції над вмістом регістрів і надсилати значення регістрів на згадку. Програма мащини фон Неймана являє собою послідовність команд виконання перерахованих операцій разом з додатковою більшістю команд управління, які впливають на вибір наступної команди.В міру подолання технічних проблем створення комп’ютерів накопичувалися проблеми пов’язані з їх використанням. Труднощі змістилися з області виконання програм комп’ютера в область створення програм для комп’ютера. Почалися пошуки мов програмування, які були зрозумілі людині. Починаючи з мови, яка сприймається комп’ютером (машинної мови), стали з’являтися більш зручні формалізми і системи позначень. І хоч ступінь абстракції мов зріс, починаючи з нібито асемблера і далі до Фортрана, Алгола, Паскаля і Ади,всі вони несуть друк машини з архітектурою фон Неймана. Характерні особливості програмування на к...