人工智能时间表生成器软件
AI for time table generator software
我正在为我的大学开发一个时间表生成器软件。显然,它需要大量的约束满足,即我需要满足大量的规则,以便生成一组类不冲突的时间表。在做了一些研究并阅读了这篇文章后,我觉得我需要在其中使用一些人工智能。现在,我是一个完全的人工智能新手。有人能告诉我哪种算法在我的情况下最有效吗?
解决这个问题最简单的算法是遗传算法(或任何其他进化算法)。使用遗传算法解决这个问题非常简单,但仍然有效。很多论文和代码都使用了这种方法来解决这个问题。
如果你有一些规则和约束,你可能想使用精确直接的技术,比如用CSP启发式回溯来加快速度,但如果有很多类和约束,我建议使用遗传算法。
好吧,这确实不是一项微不足道的任务。像这样的问题很难解决。
在这里,我可以向你推荐两件事:
- 使用现有的CSP/COP解算器,并用其语言描述您的约束。这些解算器非常好,速度快,经过了多年的开发
- 在离散优化领域进行自我教育(coursera.org上有一门同名课程,非常棒)。只有在你掌握了这些事情的基本原理之后,你才能尝试编写自己的求解器。但要提醒你!离散优化是痛苦的:-)
这绝不是一个适合告诉你CSP/COP如何工作的地方。这是一个非常广泛和困难的领域。
祝你好运!
相关文章:
- 制定带有输入和输出C++的时间表
- 用于在并发环境中访问 MMIO 的软件模式
- 有没有办法实现 fmu 导出到基于 c++ 的仿真软件以使用 fmi?
- 从C++调用 Python 并访问通过 Anaconda 安装的软件包
- 有关图像处理应用程序的硬件和软件安全性的建议
- 通过自制软件(macOS)安装的clang++:编译错误
- 如何在软件代码中使用ofstream创建文件
- 如何在Linux上正确发布C++软件(游戏)
- 尝试使用 RTool 在 R4.0 上安装软件包时出现编译错误
- 具有 GPU 时间表的卤化物产生黑色图像
- Visual Studio Code输出被检测为恶意软件?
- 如何使用自制软件,cMake和cLion将库添加到C++项目中
- 我正在尝试编写将 ASCII 转换为十进制、添加并转换回 ASCII 的软件
- 在 C/C++ 中,是否可以通过使用指针更改"important"内存地址的值来创建简单的恶意软件?
- 使用策略模式设计软件时出现的问题
- 为什么 Avira 认为"CoCreateInstance()"是恶意软件?
- 在陈述"Implementation-defined"时,什么样的软件是"Implementation"的一部分?究竟什么是"Implementation"?
- 如何导入使用自制软件安装的 GMP?
- 在 Linux 上分发软件时的库依赖关系?
- 人工智能时间表生成器软件