Составление дедуктивной программы - PullRequest
2 голосов
/ 09 февраля 2011

Я думаю о написании программы, которая просит пользователя думать об объекте (физическом), а затем задает вопросы об объекте и пытается выяснить, о чем думал пользователь.(По аналогии с http://20q.net)

Я пытался сделать это на Python, но решил, что мой подход был наивным и очень неэффективным.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2011

Эффективное выполнение этого требует более продвинутого метода вероятности, называемого Расхождение Кульбака-Либлера . Применительно к деревьям решений (это то, что вы хотите сделать), его часто называют Информационный прирост .

Но не позволяйте этому останавливать вас! Сделайте некоторые поиски примеров реализации деревьев решений и начните с них. Я бы написал гораздо более простую программу, прежде чем вы решите 20 вопросов.

Также взгляните на http://www.20q.net/. Нажмите «Думай по-английски», затем «Классик 20Q». Иногда это страшно хорошо.

1 голос
/ 09 февраля 2011

Звучит так, будто вы хотите создать компьютеризированную игру на 21 вопрос.Я бы сделал это с деревом вопросов и ответов.

Вот хорошая статья о стеке потока о реализации деревьев в Python Как я могу реализовать дерево в Python?Существуют ли какие-либо встроенные структуры данных в Python, как в Java?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...