Обчно работы в области ИИ граничат с нейронными сетями и эволиционирующими алгоритмами. Если теория нейронных сетей достаточно хорошо проработана (ну просто передрали у природы

), то с эфолюционирующими алгоритмами чуточку сложнее, хотя идея ещё проще чем с нейронами, только здесь копируется не поведение нейрона, а ДНК и обмен генами.
Нейронные сети нужно учить. Обчно их "умственные" способности шаблонны. Т.е. после того как сеть натренирована на шаблонах, то она в основном только их и распознаёт. Если появляется что-то новое и незнакомое, то результат непредсказуем (обычно ересь).
Эфолюционные алгориты обычно используется для нахождения экстремумов функции от n-неизвестных. Часто данный метод наиболее эффективен (и быстр, 7 дней упорных расчётов вместо недели

).
Однако оба подхода имеют одно но -- они очень ресурсоёмки...