Главная arrow С++ (часть 2) arrow Решение задач методами искусственного интеллекта

Решение задач методами искусственного интеллекта

Эта глава исследует очень интересную область программирования — разработку систем искусственного интеллекта (AI, Artificial intelligence). Одна из задач книги — показать диапазон и многосторонность языка С++. Его применение в столь ответственной области, как решение задач методами искусственного интеллекта, демонстрирует эти качества как нельзя лучше.
Сфера искусственного интеллекта включает в себя ряд увлекательных областей знаний, но фундаментальной для многих приложений, основанных на принципах искусственного интеллекта, является проблема поиска решения. По существу есть два типа задач. Первые могут быть решены благодаря использованию некоторой, гарантирующей успех, детерминированной процедуры, такой как вычисление синуса угла или квадратного корня числа. Такие задачи легко преобразуются в алгоритмы, выполняемые компьютером. На практике, однако, не так много проблем, допускающих подобное решение. Напротив, большинство из них могут быть решены только с помощью поиска решения (searching for a solution). Именно для решения этих задач применяется искусственный интеллект, и такому поиску посвящена Данная глава.
Одной из ранних задач изучения искусственного интеллекта было создание Р&иателя задач общего характера (general problem solver). Подобный решатель — это программа, способная находить решение произвольных задач, 0 которых у нее нет конкретных запрограммированных знаний. Конечно, Разработка такой программы была бы крайне желательна. К сожалению, Решатель задач общего характера так же трудно реализуем, как и привлекателен. Одна из трудностей — объем и сложность многих практических задач. Поскольку от решателя задач общего характера требуется осуществлять по-в очень больших и запутанных множествах возможных решений, разра-°°тка способов организации поиска в подобных структурах всегда была ^Ючевой задачей. Несмотря на то, что мы не пытаемся создать что-либо ^ль грандиозное, как решатель задач общего характера, в этой главе будут усматриваться некоторые опирающиеся на искусственный интеллект тех-нИческие приемы, которые применимы к широкому кругу задач.
С++ — язык, подходящий как нельзя лучше разработчику систем искусст венного интеллекта, так как он обладает хорошо разработанными про? граммными элементами, обычно используемыми в подобных системах: ре.. курсией, списками и стеками. Как известно, рекурсия на С++ выполняется легко и эффективно. Добавьте к этому возможности контейнеров библиотеки STL, и вы получите среду программирования, облегчающую разработку систем искусственного интеллекта.