食人族与传教士问题 Python – 人工智能算法

我正在尝试用 Python 解决食人族与传教士问题(有一些额外的条件,但主要思想是经典的)。

因此,在Graph类中,我初始化了状态(食人族的数量,传教士的数量,船上的可用座位,食物单位(如果食人族比传教士多,传教士可以喂食人族),等等)。

然后我有genereazaSuccesori方法,这个方法没有按预期工作,因为我做错了什么,我不知道是什么。所以这个方法应该为一个节点(参数nodCurent)生成后继节点。

从我在 Pycharm 中调试时看到的情况来看,主要问题是我的程序在执行第三个for循环之前不知何故退出了(我在那里添加到listaSuccesori),所以返回的数组是空的。

有谁知道我的代码哪里出错了?特别是为什么我的代码没有执行第三个for循环?

即使是一个完整实现了这个问题的 Python 示例链接也会对我有帮助(但必须是包含食物的那个,因为这里的情况会更复杂,基本版本相当简单)。

谢谢!

solver.py

...

input.txt

...

实际输出:

...

回答:

为了找出到底是什么阻止了您描述的那个for循环的执行,我在您提供的脚本的第126行插入了一个简单的print语句:

第124到127行的内容现在是(保持原有缩进):

...

我的输出是:

...

要使range(start, stop)非空,它必须满足条件start < stop

然而,我们观察到,无论是因为输入还是其他原因,范围确实是空的。因此,您的for循环执行了正好0次(用文字说:零次)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注