我已经编写了几年但我仍然没有得到伪编码或实际上在代码中思考的问题.由于这个问题,我无法确定在创建学习决策树时应该做些什么.
以下是我看过的几个网站,相信我还有更多
除了Ian Millington的AI for Games之类的几本书,其中包括决策树中使用的不同学习算法和游戏编程的行为数学,这基本上都与决策树和理论有关.我理解决策树的概念以及Entropy,ID3以及如何交织遗传算法以及决策树决定GA的节点.他们提供了很好的洞察力,但不是我真正想要的.
我确实有一些为决策树创建节点的基本代码,我相信我知道如何实现实际逻辑,但如果我没有程序的目的或涉及熵或学习算法,那就没用了.
我要问的是,有人可以帮我弄清楚我需要做些什么来创建这个学习决策树.我将自己的节点放在一个自己的类中,通过函数来创建树,但是如何将熵放入其中,如果它有一个类,一个结构我不知道如何把它放在一起.伪代码和我对所有这些理论和数字的看法.如果只知道我需要编码的话,我可以将代码放在一起.任何指导将不胜感激.
基本上我将如何解决这个问题?
添加学习算法,如ID3和Entropy.该如何设置?
一旦我知道如何解决所有这些,我计划将其实现为一个状态机,它以游戏/模拟格式经历不同的状态.所有这些都已经设置好了,我只是认为这可能是独立的,一旦我弄清楚,我可以将它移动到另一个项目.
这是我现在的源代码.
提前致谢!
Main.cpp:
int main()
{
//create the new decision tree object
DecisionTree* NewTree = new DecisionTree();
//add root node the very first 'Question' or decision to be made
//is monster health greater than player health?
NewTree->CreateRootNode(1);
//add nodes depending on decisions
//2nd decision to be made
//is monster strength greater than player strength?
NewTree->AddNode1(1, 2);
//3rd decision
//is the monster closer than home base? …Run Code Online (Sandbox Code Playgroud)