Форум программистов, компьютерный форум, киберфорум
Искусственный интеллект, ML
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для woodbox
25 / 12 / 0
Регистрация: 21.10.2014
Сообщений: 350
1

Цифровая система, ИИ и логическое программирование

19.02.2016, 16:56. Показов 1049. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Вопрос знатокам. Почему язык PROLOG называют языком для искусственного интеллекта?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2016, 16:56
Ответы с готовыми решениями:

Шифрование файла (Цифровая система тайнописи)
Всем доброго времени суток! Необходимо зашифровать файл цифровой системой тайнописи. Соответствие...

логическое программирование
Здравствуйте! помогите пж решить задачку на прологе, :gcray2; у нас препод на лекции не всегда...

Логическое программирование в ограничениях
Всем доброго времени суток! Прошу помощи) Люди добрые, кто понимает SWI Prolog, не могли бы вы...

Чем отличается логическое программирование от ООП?
Прошу прощения за дилетантский вопрос, я не знаком с логическим программированием, только лишь...

16
 Аватар для Hrethgir
455 / 138 / 3
Регистрация: 25.01.2012
Сообщений: 5,809
Записей в блоге: 155
20.02.2016, 00:05 2
Я читал как в журнале "Хакер" про него. Язык как язык, удобен для работы с БД, а так, я-бы не сказал, что он прям для AI. Просто в нём уже много готовых функций, но не факт что они - лучшие решения. Решения всегда улучшаются, и мне кажется что правильнее всё делать на том уровне, где ты сможешь что-то создать сам.
Например: будет-ли удобно на прологе написать волновой алгритм? Думаю что нет.

Там вообще трудно будет запилить свою систему, там так и написано:
Пролог (англ. Prolog) — язык и система
0
Модератор
Эксперт функциональных языков программирования
3079 / 2228 / 464
Регистрация: 26.03.2015
Сообщений: 8,662
22.02.2016, 04:37 3
Цитата Сообщение от woodbox Посмотреть сообщение
Почему язык PROLOG называют языком для искусственного интеллекта?
Упрощённо:
Язык основан на мат.логике. Программа состоит из списка правил и вопроса. Результатом работы программы является ответ "да" или "нет" на вопрос.
0
Заблокирован
24.02.2016, 19:15 4
Вы извините.
А на бейсике можно написать программу с ИИ?
0
 Аватар для Hrethgir
455 / 138 / 3
Регистрация: 25.01.2012
Сообщений: 5,809
Записей в блоге: 155
24.02.2016, 19:25 5
Можно хоть на чём, главное, чтобы там были реализованы необходимые функции. Просто на одном языке проще, на другом сложнее намного. Если нет нужных функций - значит не возможно.

Добавлено через 5 минут
И вообще, нужно сначала определиться с самой логикой модуля - принцип обучения, приёмы расчётов, язык-второстепенное.
1
 Аватар для woodbox
25 / 12 / 0
Регистрация: 21.10.2014
Сообщений: 350
24.02.2016, 19:48  [ТС] 6
А какие функции необходимы?
1
Заблокирован
24.02.2016, 20:37 7
Мне тоже интересны эти функции и их алгоритмы.
Я бы постарался написать их на бейсике и пользоваться ими...
0
 Аватар для woodbox
25 / 12 / 0
Регистрация: 21.10.2014
Сообщений: 350
24.02.2016, 22:29  [ТС] 8
Hretgir, а можно подробнее о логике модуля?
0
Модератор
Эксперт функциональных языков программирования
3079 / 2228 / 464
Регистрация: 26.03.2015
Сообщений: 8,662
25.02.2016, 12:38 9
Цитата Сообщение от woodbox Посмотреть сообщение
А какие функции необходимы?
Зависит от того, какую программу Вы собираетесь писать. Если программу для игры в шахматы, то нужно одно, если экспертную систему, то другое.

Цитата Сообщение от woodbox Посмотреть сообщение
а можно подробнее о логике модуля?
Это что и как Вы собираетесь делать в своей программе.
1
 Аватар для woodbox
25 / 12 / 0
Регистрация: 21.10.2014
Сообщений: 350
25.02.2016, 18:03  [ТС] 10
Shamil1, предполагаю, что экспертную систему.
В этом случае, какие функции нужно искать в среде разработки? Почему PROLOG позиционируется как наиболее подходящий для этого язык?
1
Заблокирован
25.02.2016, 18:15 11
Shamil1
Что такое функция в Прологе?
Скрытая процедура? Или нечто большее?
Было бы неплохо маленький пример...
0
 Аватар для Hrethgir
455 / 138 / 3
Регистрация: 25.01.2012
Сообщений: 5,809
Записей в блоге: 155
25.02.2016, 18:49 12
Я имел ввиду те функции в прологе, которые в нём реализованы для работы с БД.
Предпологать тут мало. Если программа не тупо говорилка, то думать прийдётся очень много, нужно создать всё - начиная от своей теории и заканчивая алгоритмами и кодом.
1
 Аватар для woodbox
25 / 12 / 0
Регистрация: 21.10.2014
Сообщений: 350
25.02.2016, 19:13  [ТС] 13
То есть, в данном контексте, экспертная система - это и есть некий условный интеллект.
Чтобы создать его (запрограммировать) нужен язык. То есть инструмент программирования.
А если уходить из специализированной области, то "программирование" сводится к построению логических связей между событиями. Так? Если нет, поправьте.
0
Модератор
Эксперт функциональных языков программирования
3079 / 2228 / 464
Регистрация: 26.03.2015
Сообщений: 8,662
25.02.2016, 21:35 14
Цитата Сообщение от ichs Посмотреть сообщение
Было бы неплохо маленький пример...
Сначала пишем наше определение для gcd2. Оно состоит из двух правил.
Дальше просим Машину найти такой X, что выполняется gcd2(18, 6, X), и вывести X на экран.
Prolog
1
2
3
4
5
gcd2(A, 0, A).
gcd2(A, B, X) :- A>0, B>0, R is A mod B, gcd2(B, R, X).
 
:- initialization(main).
main :- gcd2(18, 6, X), write(X), nl.
http://ideone.com/xGvawt
1
 Аватар для woodbox
25 / 12 / 0
Регистрация: 21.10.2014
Сообщений: 350
26.02.2016, 01:10  [ТС] 15
Shamil1, gcd2 это какая-то функция? Не совсем понятно, что она делает
0
Модератор
Эксперт функциональных языков программирования
3079 / 2228 / 464
Регистрация: 26.03.2015
Сообщений: 8,662
26.02.2016, 09:36 16
gcd2 - это набор правил для определения НОД.

Правило 1:
НОД A и 0 равен A.
(правила без "если" называют фактами)

Правило 2:
НОД A и B равен X, если
A > 0
и B > 0
и R - это остаток от деления A на B
и НОД B и R равен X.
(условия в правиле перечислены через запятую)

Другой пример правил:
grandmother(X,Z) :- mother(X,Y), mother(Y,Z).
X является бабушкой Z, если X является мамой Y и Y является мамой Z.

Пример правил без "если" (то есть, фактов):
mother('Маша', 'Саша').
mother('Даша', 'Маша').
Маша является мамой Саши. Даша является мамой Маши.

Следующая программа, исходя из имеющихся правил/фактов, определяет
- кто является бабушкой Саши?
- чей бабушкой является Даша?
Prolog
1
2
3
4
5
6
7
grandmother(X,Z) :- mother(X,Y), mother(Y,Z).
mother('Маша', 'Саша').
mother('Даша', 'Маша').
 
:- initialization(main).
main :- grandmother(X, 'Саша'), write(X), write('\n'), 
        grandmother('Даша', Y), write(Y), nl.
1
Заблокирован
26.02.2016, 16:18 17
Shamil1
Спасибо! Как я понял здесь используется рекурсия.
0
26.02.2016, 16:18
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2016, 16:18
Помогаю со студенческими работами здесь

Какая система лучше всего подойдёт под программирование?
Скоро куплю ноутбук и не знаю какая система лучше для программирования. Игры туда устанавливать не...

Выполнить операцию "логическое И" и операцию "логическое ИЛИ" над числами массива
Помогите пожалуйста, нужно очень срочно написать программу. Теорию знаю, а вот с практикой не...

Цифровая подпись
Всем привет. Ребята у меня к вам просьба не могли бы вы перевести этот код...

Цифровая сортировка
#include "iostream" #include "windows.h" #include <stdio.h> #include <stdlib.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru