Создаем искусственный интеллект. Урок 6. Начинаем программировать объекты ИИ. |
Автор megabax | |||
23.06.2010 г. | |||
Создаем искусственный интеллект. Урок 6. Начинаем программировать объекты ИИ. На прошлых пяти уроках была только теория. Сегодня мы приступим к практике. И так, для начала мы реализуем на Delphi механизм пространства состояний. Для этого нам потребуется класс TIIProblemSpace (Пространство состояний) и TIIStateItem (Элемент пространства состояний). Начнем с того, что спроектируем структуру данных, запрограммируем ее, а потом будем постепенно расширять функционал, пока не создадим полноценный класс пространства состояний. Давайте объявим нужные нам классы:
Теперь описание структуры данных. Вернемся еще раз уроку 2 и посмотрим на схему путей в лабиринте. Мы видим граф. Каждая его вершина может быть соединенная с одной или несколькими другими вершинами. Таким образом, для реализации вершин у нас имеется класс TIIStateItem, а для реализации связей свойство Exits, (выходы). Это свойство является коллекцией объектов TIIStateItem - список вершин, куда можно выйти из заданной вершины. TIIProblemSpace - это у нас, собственно говоря и есть пространство состояний. Оно содержит внутри себя список вершин графа, текущую вершину - CurrentItem и вершину, с которой мы вошли сюда - Enter. Теперь займемся реализацией методов:
Думаю, реализация всех методов достаточно проста и не требует каких либо комментариев. Разве что могу сказать про процедуру Clear - она очищает память, занятую списком вершин, дело в том что деструктор класса TList сам этого делать не умеет, он удаляет только из списка ссылки на объекты, но не сами объекты. Так же стоит заметить что в конструкторе TIIProblemSpace мы инициализируем свойства CurrentItem и Enter, присваивая им начальное значение nil. И так, мы реализовали заготовку классов для написания механизма работы с пространством состояний. На следующем уроке мы будем расширять их функционал, что бы в конце концов, создать нашу первую программу искуственного интеллекта.
|
|||
Последнее обновление ( 29.10.2010 г. ) |
« След. | Пред. » |
---|