Штучний інтелект (англ. Artificial intelligence, AI) — розділ комп'ютерної лінгвістики та інформатики, що опікується формалізацією проблем та завдань, які подібні до дій, що виконує людина.
Єдиної відповіді на питання, чим опікується штучний інтелект (ШІ), не існує. Майже кожен автор, який пише книгу про штучний інтелект, відштовхується від якогось визначення, та розглядає в його світлі досягнення цієї науки.
Підходи до вивчення
Існують різні методи створення систем штучного інтелекту. У наш час можна виділити 4 досить різних методи:
Логічний підхід. Основою для вивчення логічного підходу слугує алгебра логіки. Кожен програміст знайомий з нею з того часу, коли він вивчав оператор IF. Свого подальшого розвитку алгебра логіки отримала у вигляді числення предикатів — в якому вона розширена за рахунок введення предметних символів, відношень між ними. Крім цього, кожна така машина має блок генерації цілі, і система виводу намагається довести дану ціль як теорему. Якщо ціль досягнута, то послідовність використаних правил дозволить отримати ланцюжок дій, необхідних для реалізації поставленої цілі (таку систему ще називають експертною системою). Потужність такої системи визначається можливостями генератора цілей і машинного доведення теорем. Для досягнення кращої виразності логічний підхід використовує новий напрям, його назва — нечітка логіка. Головною відмінністю цього напряму є те, що істинність вислову може приймати окрім значень «так»/«ні» (1/0) ще й проміжні значення — «не знаю» (0,5), «пацієнт швидше живий, ніж мертвий» (0,75), «пацієнт швидше мертвий, ніж живий» (0,25). Такий підхід подібніший до мислення людини, оскільки вона рідко відповідає «так» або «ні».
Під структурним підходом ми розуміємо спроби побудови ШІ шляхом моделювання структури людського мозку. Однією з перших таких спроб був перцептрон Френка Розенблатта. Головною моделюючою структурною одиницею в перцептронах (як і в більшості інших варіантах моделювання мозку) є нейрон. Пізніше виникли й інші моделі, відоміші під назвою нейронні мережі (НМ) і їхні реалізації — нейрокомп'ютери. Ці моделі відрізняються за будовою окремих нейронів, за топологією зв'язків між ними і алгоритмами навчання. Серед найвідоміших на початку 2000-х років варіантів НМ можна назвати НМ зі зворотнім поширенням помилки, сітки Кохонена, сітки Гопфілда, стохастичні нейрони сітки. У ширшому розумінні цей підхід відомий як конекціонізм. Відмінності між логічним та структурним підходом не стільки принципові, як це здається на перший погляд. Алгоритми спрощення і вербалізації нейронних мереж перетворюють моделі структурного підходу на явні логічні моделі.[2] З іншого боку, ще 1943 року Воррен Маккалох і Волтер Піттс[en] показали, що нейронна сітка може реалізувати будь-яку функцію алгебри логіки[3].
Еволюційний підхід. Під час побудови системи ШІ за даним методом основну увагу зосереджують на побудові початкової моделі і правилах, за якими вона може змінюватися (еволюціонувати). Причому модель може бути створено за найрізноманітнішими методами, це може бути і НМ, і набір логічних правил, і будь-яка інша модель. Після цього ми вмикаємо комп'ютер і він на основі перевірки моделей відбирає найкращі з них, і за цими моделями за найрізноманітнішими правилами генеруються нові моделі. Серед еволюційних алгоритмів класичним вважається генетичний алгоритм.
Імітаційний підхід. Цей підхід є класичним для кібернетики з одним із її базових понять чорний ящик. Об'єкт, поведінка якого імітується, якраз і являє собою «чорний ящик». Для нас не важливо, які моделі у нього всередині і як він діє, головне, щоби наша модель в аналогічних ситуаціях поводила себе без змін. Таким чином тут моделюється інша властивість людини — здатність копіювати те, що роблять інші, без поділу на елементарні операції і формального опису дій. Часто ця властивість економить багато часу об'єктові, особливо на початку його життя.
Без проверки полагаем, что по заданным координатам точек можно построить треугольники.
//PascalABC.Net 3.0, сборка 1111 type Point=record x,y:double end;
function TriangleSquare(A,B,C:Point):double; begin Result:=0.5*abs(A.x*(B.y-C.y)+B.x*(C.y-A.y)+C.x*(A.y-B.y)) end;
procedure GetPoint(c:char; var A:Point); begin Write('Введите координаты точки ',c,': '); Readln(A.x,A.y) end;
var A:array['A'..'F'] of Point; i:'A'..'F'; s1,s2:double; begin for i:='A' to 'F' do GetPoint(i,A[i]); s1:=TriangleSquare(A['A'],A['B'],A['C']); s2:=TriangleSquare(A['D'],A['E'],A['F']); if s1>s2 then Writeln('Площадь первого треугольника больше') else if s2>s1 then Writeln('Площадь второго треугольника больше') else Writeln('Площади треугольников равны') end.
Тестовое решение: Введите координаты точки A: -4 3.7 Введите координаты точки B: -6.3 0 Введите координаты точки C: 10.2 5.93 Введите координаты точки D: 7.143 8.1 Введите координаты точки E: -6 -3 Введите координаты точки F: 7.4 -5.7 Площадь второго треугольника больше
Відповідь:
Штучний інтелект (англ. Artificial intelligence, AI) — розділ комп'ютерної лінгвістики та інформатики, що опікується формалізацією проблем та завдань, які подібні до дій, що виконує людина.
Єдиної відповіді на питання, чим опікується штучний інтелект (ШІ), не існує. Майже кожен автор, який пише книгу про штучний інтелект, відштовхується від якогось визначення, та розглядає в його світлі досягнення цієї науки.
Підходи до вивчення
Існують різні методи створення систем штучного інтелекту. У наш час можна виділити 4 досить різних методи:
Логічний підхід. Основою для вивчення логічного підходу слугує алгебра логіки. Кожен програміст знайомий з нею з того часу, коли він вивчав оператор IF. Свого подальшого розвитку алгебра логіки отримала у вигляді числення предикатів — в якому вона розширена за рахунок введення предметних символів, відношень між ними. Крім цього, кожна така машина має блок генерації цілі, і система виводу намагається довести дану ціль як теорему. Якщо ціль досягнута, то послідовність використаних правил дозволить отримати ланцюжок дій, необхідних для реалізації поставленої цілі (таку систему ще називають експертною системою). Потужність такої системи визначається можливостями генератора цілей і машинного доведення теорем. Для досягнення кращої виразності логічний підхід використовує новий напрям, його назва — нечітка логіка. Головною відмінністю цього напряму є те, що істинність вислову може приймати окрім значень «так»/«ні» (1/0) ще й проміжні значення — «не знаю» (0,5), «пацієнт швидше живий, ніж мертвий» (0,75), «пацієнт швидше мертвий, ніж живий» (0,25). Такий підхід подібніший до мислення людини, оскільки вона рідко відповідає «так» або «ні».
Під структурним підходом ми розуміємо спроби побудови ШІ шляхом моделювання структури людського мозку. Однією з перших таких спроб був перцептрон Френка Розенблатта. Головною моделюючою структурною одиницею в перцептронах (як і в більшості інших варіантах моделювання мозку) є нейрон. Пізніше виникли й інші моделі, відоміші під назвою нейронні мережі (НМ) і їхні реалізації — нейрокомп'ютери. Ці моделі відрізняються за будовою окремих нейронів, за топологією зв'язків між ними і алгоритмами навчання. Серед найвідоміших на початку 2000-х років варіантів НМ можна назвати НМ зі зворотнім поширенням помилки, сітки Кохонена, сітки Гопфілда, стохастичні нейрони сітки. У ширшому розумінні цей підхід відомий як конекціонізм. Відмінності між логічним та структурним підходом не стільки принципові, як це здається на перший погляд. Алгоритми спрощення і вербалізації нейронних мереж перетворюють моделі структурного підходу на явні логічні моделі.[2] З іншого боку, ще 1943 року Воррен Маккалох і Волтер Піттс[en] показали, що нейронна сітка може реалізувати будь-яку функцію алгебри логіки[3].
Еволюційний підхід. Під час побудови системи ШІ за даним методом основну увагу зосереджують на побудові початкової моделі і правилах, за якими вона може змінюватися (еволюціонувати). Причому модель може бути створено за найрізноманітнішими методами, це може бути і НМ, і набір логічних правил, і будь-яка інша модель. Після цього ми вмикаємо комп'ютер і він на основі перевірки моделей відбирає найкращі з них, і за цими моделями за найрізноманітнішими правилами генеруються нові моделі. Серед еволюційних алгоритмів класичним вважається генетичний алгоритм.
Імітаційний підхід. Цей підхід є класичним для кібернетики з одним із її базових понять чорний ящик. Об'єкт, поведінка якого імітується, якраз і являє собою «чорний ящик». Для нас не важливо, які моделі у нього всередині і як він діє, головне, щоби наша модель в аналогічних ситуаціях поводила себе без змін. Таким чином тут моделюється інша властивість людини — здатність копіювати те, що роблять інші, без поділу на елементарні операції і формального опису дій. Часто ця властивість економить багато часу об'єктові, особливо на початку його життя.
//PascalABC.Net 3.0, сборка 1111
type
Point=record
x,y:double
end;
function TriangleSquare(A,B,C:Point):double;
begin
Result:=0.5*abs(A.x*(B.y-C.y)+B.x*(C.y-A.y)+C.x*(A.y-B.y))
end;
procedure GetPoint(c:char; var A:Point);
begin
Write('Введите координаты точки ',c,': ');
Readln(A.x,A.y)
end;
var
A:array['A'..'F'] of Point;
i:'A'..'F';
s1,s2:double;
begin
for i:='A' to 'F' do GetPoint(i,A[i]);
s1:=TriangleSquare(A['A'],A['B'],A['C']);
s2:=TriangleSquare(A['D'],A['E'],A['F']);
if s1>s2 then Writeln('Площадь первого треугольника больше')
else
if s2>s1 then Writeln('Площадь второго треугольника больше')
else Writeln('Площади треугольников равны')
end.
Тестовое решение:
Введите координаты точки A: -4 3.7
Введите координаты точки B: -6.3 0
Введите координаты точки C: 10.2 5.93
Введите координаты точки D: 7.143 8.1
Введите координаты точки E: -6 -3
Введите координаты точки F: 7.4 -5.7
Площадь второго треугольника больше