我正在尝试构建一个遗传算法来解决基本的学校课程表问题。
我正在研究这个问题的最佳编码方式。我可以将其编码为类似这样的二进制字符串:
day hour/time room000 00000 000000etc...
这种编码方式是否适合我的问题?
回答:
由于现在内存不再是问题,我会选择一种从程序员的角度来看易于操作的表示方式(可读性),同时也支持你的算法。
- 从程序员的角度来看易于操作(可读性)
- 支持你的算法
使用位数组可以节省空间,但你最终会需要大量的宏或函数调用来反复分离信息。这难以阅读,难以编写,并且速度慢。(至少我猜你的算法不会对数据进行位操作)
如果这是一个数据库问题,我会说你至少需要第一范式。任何更高层次的规范化都会减少保持数据一致性的努力。