论文部分内容阅读
目前高等院校排课作业基本停留在人工排课为主,排课软件调整为辅的状况。其根本原因在于排课作业是公认的NP-完全问题,其计算复杂度与问题的规模呈指数关系。因此,产生了大量以智能搜索和演化计算为基础的近似算法,包括遗传算法、模拟退火算法、蚂蚁算法,以及分支限界搜索等算法。模拟退火算法具有较强的全局搜索能力,在排课问题中有诸多应用。但该算法不具备很好的并行性,如果采用并行计算,那么不同的计算单元单独搜索,互不干涉,不能很好地共享演化结果,使得增加计算单元并不能保证提高解的质量。本文提出了基于计算单元间竞争和协作的并行模拟退火算法,使各计算单元定期交互,分享阶段性演化计算结果,一个计算单元的突破会促使其它计算单元的发展。该算法具有优良的可扩展性,通过简单的网络交互,就可以充分利用已有的计算资源,包括CPU、内存,以及CPU中的多核等。计算过程具有开放性,一个计算单元可以在任何时间介入和退出计算过程,贡献自己的计算力量。虽然随着退火温度的降低,模拟退火算法的局部搜索能力有所提高,但由于受到算法本身性质的限制,其局部搜索结果往往不尽如人意。本文依照排课问题本身的性质,改进了爬山法,在模拟退火算法搜索结果的基础上,加强了局部搜索能力,提高了解的质量。以Asp.Net技术为载体,完成了B/S架构基础之上的系统算法。为了使软件更加友好可用,建立了图形界面输入约束和输出排课结果。系统能够输出多种优化方案,供用户选择。