使用遗传算法进行的自动排课设计,需要指出算法具体对应的代码中 10C

需要指出遗传算法对应步骤是用哪些代码实现的,大家帮帮忙,谢谢谢谢!

0

2个回答

界面设计代码如下:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@page import="com.autosortcourse.beans.CInfoImpl"%>
<%@page import="com.autosortcourse.beans.SelectCmd"%>


自动排课管理


<%
String optClass=SelectCmd.getClassOptions(false);
String optTerm=SelectCmd.getTermOptions(false);

%>

function goStart(pfg){ var form2 = document.getElementById("form2") ; var classid = document.getElementById("classid") ; var termid = document.getElementById("termid") ; var fg = document.getElementById("fg") ; //form1.submit(); if(pfg=="auto") { fg.value=pfg; if(termid.value=="") { alert("请选择学期!"); } else { form2.submit(); } } else{ fg.value=pfg; if(termid.value=="" || classid.value=="") { alert("请选择学期!"); }else { form2.submit(); } } } function autoPaike(){ var termid = document.getElementById("termid") ; if(termid.value=="") { alert("请选择学期!"); } else { var divMsg = document.getElementById("divMsg") ; createxmlhttprequest(); pUrl="../../OptCInfo"; pArgs="termid="+termid.value+"&fg=paike"; xmlhttp.open("post", pUrl, false); xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //表单中enctype="multipart/form-data"的意思,是设置表单的多用途互联网邮件扩展类型。 //是设定某种扩展名的文件用一种应用程序来打开的方式类型.默认情况, //这个编码格式是application/x-www-form-urlencoded,不能用于文件上传 xmlhttp.send(pArgs); var mesg = xmlhttp.responseText; xmlhttp = null; var cIds = mesg.split(","); //alert(mesg); if(cIds[0]=="0") { divMsg.innerHTML=cIds[1]; } else { var strc=cIds.length - 1; //var strct=strc / 2 divMsg.innerHTML="<h2>自动排课开始,共有"+strc.toString()+"个班级,请耐心等待...</h2>"; var i=1; while (i <= strc) { autoPaikeClass(termid.value,cIds[i]); i = i + 1; } divMsg.innerHTML=divMsg.innerHTML+"<b>排课结束。</b>"; } //divMsg.innerHTML=divMsg.innerHTML+mesg; } } function autoPaikeClass(pTermid ,pClassid){ //alert(pTermid+pClassid); var divMsg = document.getElementById("divMsg") ; createxmlhttprequest(); pUrl="../../OptCInfo"; pArgs="termid="+pTermid+"&classid="+pClassid+"&fg=auto"; xmlhttp.open("post", pUrl, false); xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlhttp.send(pArgs); var mesg = xmlhttp.responseText; divMsg.innerHTML=divMsg.innerHTML+mesg; xmlhttp = null; }

 学期:    
 班级:
  </td>
  </tr>



var termid=document.getElementById("termid"); var d = new Date(); termid.value=String(d.getYear())+"0";


1

java代码如下:

package com.autosortcourse.beans;

import com.autosortcourse.database.PersistenceManager;

//import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
//import java.sql.Statement;
import java.util.ArrayList;
//import java.util.List;
//import java.lang.*;
import java.util.Random;
import com.autosortcourse.beans.CInfoImpl;
//import com.autosortcourse.beans.SelectCmd;
import com.autosortcourse.bean.CInfoBean;

/**
*

  • @author Administrator
    */
    public class AutoPlan
    {
    private PersistenceManager per = null;

    public final int CType_PuTong=1;
    public final int CType_JaoNan=2;
    public final int CType_TiYu=3;

    public final int RType_YinYue=2;
    public final int RType_TiYu=3;
    public final int RType_JSJ=4;
    public final int RType_WuLi=5;
    public final int RType_HuaXue=6;
    public int[] Jc15=new int[2];
    public int[] Jc36=new int[2];
    public int[] Jc47=new int[2];
    public int[] XqOld=new int[4];
    int tryCount;
    int byXq,byJc,byRm;
    int j,jCount;
    int CourseType;

    public AutoPlan()
    {
    per = new PersistenceManager();

    LoadRoomData();
    

    }

    public String msgErr;

    public String startPlan(String pTermIdStr,String pClassId)
    {
    int ClassIdold, ClassIdnew;
    int RoomTypeIdold, RoomTypeIdnew;

    int classSizenew,classSizeold,teacherId,courseId,roomCount;
    msgErr = "";
    String cName="";
    ClassIdold=0;
    RoomTypeIdold=0;
    classSizeold=0;
    CInfoImpl objDb = new CInfoImpl(per);
    CInfoBean curobj=null;
    roomCount=0;

    //初始化Jc15,Jc47,其中Jc15为(必修)较难课程准备,Jc47为体育课程准备
    Jc15[0]=1;
    Jc15[1]=5;
    Jc36[0]=3;
    Jc36[1]=6;  
    Jc47[0]=4;
    Jc47[1]=7;
    PersistenceManager pdb = new PersistenceManager();//定义一个数据库连接方法名字为pdb
    String sqlstr="select * from vwClCo where  CcStatus='未排' and TermId=" + pTermIdStr+" and ClassId=" + pClassId ;
    sqlstr +=  " order by CourseType desc ,RoomTypeId desc";//CourseType 
    ResultSet rst = pdb.executeQuery(sqlstr);//rst染色体
    
    //int iCount=0;
    int XqId,JcId,RmId;//星期,节次,教室Id
    java.util.Random rd =new java.util.Random();//
    XqId = rd.nextInt(5) + 1;//初始化学期数据,确定编码
    JcId = rd.nextInt(7) + 1;//初始化课程类型,jc为必修课程作准备数据,确定编码
    RmId=0;//初始化教室数据
    boolean isHulue=false;
    try 
    {
        while (rst.next())//rst执行查询获取数据库里面的信息装入变量rst内
        {
            ClassIdnew = rst.getInt("ClassId");
            RoomTypeIdnew = rst.getInt("RoomTypeId");
            classSizenew = rst.getInt("ClassSize");
            teacherId = rst.getInt("TeacherId");
            courseId = rst.getInt("courseId");
            CourseType = rst.getInt("CourseType");
            isHulue=false;
             if(ClassIdold !=ClassIdnew)
            {
                SetClassList(ClassIdnew, pTermIdStr);//创建班级信息列表,
                cName=rst.getString("ClassName");//获取班级名称
                msgErr +="<p style=\"padding-left:30px;\"><h3>"+cName +"班级排课开始</h3>";
            }    
    
             if (teacherId == 0 )
             {
                 msgErr +=  "任课教师未设置,跳过【" ;
                 msgErr += rst.getString("ClassName") + "】【" + rst.getString("CourseName") + "】【" + rst.getString("TermName") + "】<br>";
                 isHulue=true;
                 continue ; //任课教师未设置,跳过当前未排课记录;         
             }
    
             if(RoomTypeIdnew >1 && 
                    (RoomTypeIdold != RoomTypeIdnew ||  classSizenew > classSizeold)){
                    SetRoomData(RoomTypeIdnew,classSizenew);
                    roomCount=RoomList.size();          
             }
    
             if (RoomTypeIdnew >1 && roomCount < 0 )
             {
                 msgErr += "教室不够,跳过【" ;
                 msgErr += rst.getString("ClassName") + "】【" + rst.getString("CourseName") + "】【" + rst.getString("TermName") + "】<br>";
                 isHulue=true;
                 continue ; //教室不够,跳过当前未排课记录;         
             }
    
            ClassIdold = ClassIdnew;
            classSizeold = classSizenew;
            RoomTypeIdold = RoomTypeIdnew;//变异生成前编码=变异生成后的编码
    
            jCount = rst.getInt("WeekCount");//课程种群项大小,获取周课时数
            j = 0;//循环变量j=0
            tryCount = 0;//初始化尝试次数
    
            XqOld[0] = 0;
            XqOld[1] = 0;
            XqOld[2] = 0;
            XqOld[3] = 0;
            if (jCount < 1 )
            {
                msgErr += "周课时数设置不当<1,跳过【" ;
                msgErr += rst.getString("ClassName") + "】【" + rst.getString("CourseName") + "】【" + rst.getString("TermName") + "】<br>";
                isHulue=true;
                continue ; //教室不够,跳过当前未排课记录;         
            }
    
            while(j<jCount){
                //tryCount=0;
    
                BianYiXqJc(ClassIdnew,rd);
                XqId=byXq;
                JcId=byJc;
    
                isHulue=false;
    
                if(RoomTypeIdnew <=1){
                    RmId=0;
                }else if(j==0 || tryCount >100){
                    BianYiRm(roomCount,rd);
                    RmId=byRm;
                }
    
                if(tryCount>=200){
                    if(j>0){
                        objDb.delObjs(pTermIdStr,ClassIdnew,courseId);
                    }
                    msgErr += "尝试次数太多,跳过【" ;
                    msgErr += rst.getString("ClassName") + "】【" + rst.getString("CourseName") + "】【" + rst.getString("TermName") + "】<br>";
                    isHulue=true;
                    break ; //尝试次数太多,跳过当前未排课记录
                }
    
                //检查教师和教室的适应性
                if(ThRmNoBusy(XqId,JcId,RmId,Integer.parseInt(pTermIdStr),teacherId)){
                    //找到位置
                    if(j<4){
                        XqOld[j]=XqId;
                    }
                    j=j+1;
                    tryCount=0;
                    ClassList[(JcId-1)*5 + XqId -1]=ClassIdnew;
                    curobj= objDb.GetBean("", pTermIdStr, String.valueOf(ClassIdnew)
                            , String.valueOf(courseId), String.valueOf(teacherId), String.valueOf(RmId), XqId, JcId, "自动");
                     objDb.addObj(curobj);
    
                }       
            }//j结束,待排课记录完成
    
            if(!isHulue){
                String strsql1 = "update ClCo set CcStatus='已排' where ClassId=" + ClassIdnew
                 + " and courseId =" + courseId+ " and TermId=" + pTermIdStr;
    
                 per.executeProcedure(strsql1) ;
                 }
    
             }//i结束,所有课程完成
    
             msgErr +=cName+"自动排课完成!<br></p>";
         }
         catch (Exception e)
         {
         e.printStackTrace();
         msgErr +=cName+"自动排课出错!"+e.getMessage()+"<br></p>";
         }
         finally
         {
              per.close();
              pdb.close();
         }
    
         //msgErr=SelectCmd.getOptReturnStr(msgErr);
    
         return msgErr;
    

    }

    public boolean ThRmNoBusy(int xq,int jc,int rmid,int termId,int thid){
    //负责检测班级老师 教室在给定时间片是否冲突
    boolean nobusy=true;
    String sql ="select LessonOrders,Weeks,ClassId,TeacherId,ClassRoomId ";
    sql +="from CourseInfoTb ";
    sql +=" where TermId=" + termId ;

    sql +=" and Weeks=" + xq ;
    sql +=" and LessonOrders=" + jc ;
    sql +=" and (TeacherId=" + thid ;
    if(rmid !=0){
    sql += " or ClassRoomId=" + rmid ;
    }
    sql +=")" ;

    try {
    
        ResultSet rs = per.executeQuery(sql);       
        if (rs !=null&&rs.next()) {
            nobusy = false;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } 
    
    return nobusy;
    

    }

    public boolean ClassThRmNoBusy(int xq,int jc,int rmid,int termId,int thid,int pclassid){
    boolean nobusy=true;
    String sql ="select LessonOrders,Weeks,ClassId,TeacherId,ClassRoomId ";
    sql +="from CourseInfoTb ";
    sql +=" where TermId=" + termId ;

    sql +=" and Weeks=" + xq ;
    sql +=" and LessonOrders=" + jc ;
    sql +=" and (TeacherId=" + thid + " or ClassRoomId=" + rmid + " or ClassId=" + pclassid + ")" ;

    try {
    
        ResultSet rs = per.executeQuery(sql);       
        if (rs !=null&&rs.next()) {
            nobusy = false;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } 
    
    return nobusy;
    

    }

    private void BianYiXqJc(int pclassid,Random rd){//变异运算
    tryCount = tryCount + 1;//初始化尝试次数
    if (tryCount < 100 ){
    if( j > 0 && jCount < 6 ){//循环变量j,课程种群项大小jCount
    BianYiXq(rd);

    }else{
    byXq = rd.nextInt(5) + 1;

    }
    if(CourseType==CType_JaoNan){
    if(tryCount<40)
    {
    byJc=Jc15[rd.nextInt(2)];
    }
    else if(tryCount<70)
    {
    byJc=2;
    }
    else
    {
    byJc=Jc36[rd.nextInt(2)];
    }
    }else if(CourseType==CType_TiYu){
    byJc=Jc47[rd.nextInt(2)];

    }else{
    byJc = rd.nextInt(7) + 1;
    }

    }else{
    byXq = rd.nextInt(5) + 1;
    byJc = rd.nextInt(7) + 1;

    }

      if(ClassList[(byJc-1)*5 + byXq -1]==pclassid && tryCount <200){
          BianYiXqJc(pclassid, rd);
      }
    

    }

    private void BianYiXq(Random rd){ //变异运算、学期
    byXq = rd.nextInt(5) + 1;
    for(int i=0;i<3;i++){
    if(XqOld[i]==byXq){
    BianYiXq(rd);
    break;
    }
    }
    }

    private void BianYiRm(int roomCount, Random rd){ //变异运算、教室
    int rdid = rd.nextInt(roomCount) ;
    byRm=RoomList.get(rdid)[0];
    }

    private void SetClassList(int pClassId,String pTermIdStr)
    {
    String sql="select LessonOrders,Weeks from CourseInfoTb ";

    sql+=" where TermId=" + pTermIdStr + " and ClassId=" + pClassId;
    
    ResultSet rs=null;
    
    try {
        rs = per.executeQuery(sql);
        while (rs.next()) {
            int jc=rs.getInt(1);
            int wk=rs.getInt(2);
    
            ClassList[(jc - 1) * 5 + wk - 1] = pClassId;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } 
    

    }

    private void SetRoomData(int pRoomTypeId,int pClassSize)
    {
    RoomList=new ArrayList();
    ArrayList roomList=RoomList;
    switch(pRoomTypeId){
    case RType_YinYue:
    roomList=roomList2;
    break;
    case RType_TiYu:
    roomList=roomList3;
    break;
    case RType_JSJ:
    roomList=roomList4;
    break;
    case RType_WuLi:
    roomList=roomList5;
    break;
    case RType_HuaXue:
    roomList=roomList6;
    break;
    default:
    break;
    }
    int iCount=roomList.size();
    for(int i=0;i int[] cr= roomList.get(i);
    if(cr[2]>pClassSize){
    RoomList.add(cr);
    }

    }
    

    }

    private ArrayList roomList2=new ArrayList();
    private ArrayList roomList3;
    private ArrayList roomList4;
    private ArrayList roomList5;
    private ArrayList roomList6;
    public ArrayList RoomList;

    public int[] ClassList=new int[35];

    private void LoadRoomData()
    {
    roomList2=new ArrayList();
    roomList3=new ArrayList();

    roomList4=new ArrayList();
    roomList5=new ArrayList();
    roomList6=new ArrayList();

    String sql="select CRoomId,RoomTypeId,CRoomSeatingCapacity ";
    sql+="from ClassRoomTb order by RoomTypeId";
    
    ResultSet rs=null;
    
    try {
        rs = per.executeQuery(sql);
        while (rs.next()) {
            int t1=rs.getInt(1);
            int t2=rs.getInt(2);
            int t3=rs.getInt(3);
            int[] data = {t1,t2,t3};
    
            switch(t2){
                case RType_YinYue:
                    roomList2.add(data);
                    break;
                case RType_TiYu:
                    roomList3.add(data);
                    break;
                case RType_JSJ:
                    roomList4.add(data);
                    break;
                case RType_WuLi:
                    roomList5.add(data);
                    break;
                case RType_HuaXue:
                    roomList6.add(data);
                    break;
                default:
                    break;
            }
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } //finally {
    //      per.close();
    //}
    

    }

    }

0
weixin_45048213
weixin_45048213 老哥 会了吗 求助啊!
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
基于遗传算法的自动排课系统设计
该文提出并实现了一种高校自动排课算法,利用遗传算法建立数据模型,定义了时间片、授课单元、切片算子、不完全两点交叉和适应度函数。通过使用遗传算法,对课程进行编排和对课表进行优化;并用V C + + 进行编程,Matlab 进行仿真,用文件输出结果;实验结果表明,遗传算法对课表的编排和优化有着比较显著的作用
遗传算法在排课中的应用
遗传算法在排课中的应用
遗传算法在排课系统中的应用,排课系统的设计与分析
一些遗传算法的论文从cnki上下载的,需要cnki阅读工具的可以自己去cnki上下,也可以问我要,434538528@163.com
排课遗传算法
遗传算法 时间表 大学课表
自动排课系统算法的分析与设计
自动排课算法的基本思想 算法思想分析 教学排课可以说是教学管理的一个中心。它直接关系到教学汁划和 教学质量。而排课的过程也是一个复杂的推理思考过程,我们通过对排 课逻辑原理的分析和排课系统操作流程的总结。研究出一套排课算法. 通过该排课系统的实现,可以大大减少教务管理员的工作嚣,并给教务 信息管理带来方便。迄今为止,对课程表的研究工作已有40多年,取得 了丰硕的成果。但仍存在许多不足之处,例如规模大、约束(条件)复杂以 及规律不断变化等,因此排课问题至今仍未完全解决。 虽然目前很多系统中都包禽了排课子系统,但是由于各个学校的教 学情况不同,这些排课系统不一定适合各院
自动排课算法总结
自动排课算法总结 http://blog.csdn.net/Sinde1992/article/details/50321225 零.与遗传算法的比较 遗传的优点: 全局寻优能力强, 适用于求解复杂问题, 不依赖初始解 缺点: 局部搜索能力较差, 收敛速度较慢, 控制条件太多, 即影响最优解的因素较多 下2种的优点: 局部搜索能力强,收敛速度快 缺点: 不容易找...
求自动排课算法
时间+老师+课程+班级+教室=唯一rn班级的人数不能大于教室容量人数rn尽量2节课连着上 中间有间隔
求“自动排课”算法!
中学课程排课系统的算法
遗传算法在排课系统中的应用
本文档整理了有关现在高校排课系统的缺陷,并且对遗传算法进行改进。
遗传算法在高校排课中的应用
运用遗传算法在高校排课中的应用,肯定对你有所帮助
一种基于遗传算法的自动排课系统设计
一种基于遗传算法的自动排课系统设计一种基于遗传算法的自动排课系统设计
遗传算法的适应性问题(自动排课系统)
求助:遗传算法的适应性问题(自动排课系统)rn我正在做一个自动排课系统。要用遗传算法来做。但适应度函数我不知道要怎么做。大哥们可以给小弟一点提议吗?rn大家随便给我提一提就非常谢谢了~~rn会给分大家的~rn在此万分感谢~!!!!
于遗传算法的自动排课系统毕业设计
随着科学技术和社会信息技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它在人类社会的各个领域发挥着越来越重要的作用,给人们的生活带来了极大的便利,成为推动社会发展的首要技术动力。排课是学校教学管理中十分重要、又相当复杂的工作之一。解决好教学工作中的排课问题对整个教学计划的进行,有着十分重要的意义。首先对排课的已有算法作了相关的调查研究,决定采用遗传算法。通过设计实现基于遗传算法的自动排课系统,研究了遗传算法在排课系统中的应用。 关键词:遗传算法、自动排课、Java。
基于遗传算法的自动排课系统flex+java
本系统是遗传算法的事例性实现,采用了flex+java的结构。使用框架有spring,hibernate,blazeds,cairngorm
基于遗传算法的排课系统的设计与实现
基于遗传算法的排课系统的设计与实现,新的思维来设计。
基于遗传算法的高校排课系统的设计
基于遗传算法的高校排课系统的设计
急,自动排课算法!高分!!!
有谁作过自动排课软件吗?能否给出一些相关算法的详细资料,如果能有详细说明则最好,不胜感激!!!
高校自动排课系统算法~~~~~~~~
谁做过asp.net的自动排课啊,本人初学,做毕业设计用,想找一个源码参考下,请各位帮忙啊~~~~~~~~~~~~~
关于自动排课算法!高分!!!
有谁作过自动排课软件吗?能否给出一些相关算法的详细资料,如果能有详细说明则最好,不胜感激!!!rn
如何实现自动排课的算法~~!
各位大虾你们好rn我在做一个教务管理系统。其中自动排课的算法很烦人,希望得到你的指教。rn感激不尽~~!rn我的伊妹skyhorse0373@sina.comrnoicq号码19857765rn希望早日得到你的答复rn
基于遗传算法的排课系统
详细讲述了遗传算法的原理,排课系统应用遗传算法的实现,
排课问题的遗传算法MATLAB程序
遗传算法是解决排课问题的最好方法,本程序采用文本格式,程序中附带的说明也是我见过的最详尽的。此外,这是一个三维排课问题的程序,把这个搞懂之后,任何排课问题也就是小菜一碟了。
基于遗传算法的排课论文
遗传算法 排课 排课问题的多重性和复杂性,使得很难设计出一种适用于所有高校的通用排课算法
基于遗传算法的排课系统研究
针对遗传算法排课中存在的初始解生成不合理及一周多学时课程不好安排的问题,本文提 出了时间模式的概念。将其应用于遗传算法初始解的产生过程中,使初始解本身就处于一种较为合理的 状态.同时避免同一门课程在一周内的不合理上课情况,加速了算法的收敛。通过实验证明,可以获得较 为优化的课表。
各位前辈,排课系统中自动排课的代码如何写啊?
我在用VB做排课系统,但是自动排课的代码不会写啊,我想了好多天了!头发都要白了啊!rn指点指点我吧!小妹真的是感激不尽啊!!
基于遗传算法的排课优化
我表示找了半天才知道matlab的帖子该发在哪里……rnrn大家好,我在做一个简单的排课问题的优化,想用遗传算法。rn我的思路是:将 时间—教室 看做一个基因,把课程号与时间—教室不冲突地对应起来,就是一种排课方案(染色体)。首先生成可行的初始种群,然后根据不同课程的要求写出适应度函数,进行遗传计算。rnrn我现在的问题:rn打算用gaot工具箱里的initializega函数进行初始化、ga函数进行遗传计算。但是却不知道该怎么做。rngaot工具箱里的函数究竟能不能进行多维变量的遗传计算?rn如果不能,自己编程的话应该怎么来做?rnrnrn大虾们帮忙看一下吧!rn不胜感激i!
自动排课
请大家给我点思路,或者给我个算法都行,谢谢了
遗传算法在大学排课系统中的应用
遗传算法在大学排课系统中的应用 实验室排课算法
遗传算法在排课系统中的应用 遗传与变异
遗传算法在排课系统中的应用 遗传与变异 遗传算法是模拟自然选择和遗传的一种随机搜索算法。由于排课问题是一个有约束的、多目标的、难解的组合优化问 题,采用具有智能型和并行性的遗传算法,来对排课问题进行求解,是所有求解该问题方法中比较明智的选择。采用了遗传 算法作为搜索近似最优解的算法。目的是研究自然系统的自适应行为,并用于设计具有自适应功能的软件系统。 关键词:遗传算法,排课,组合优化
蚁群遗传算法在高校排课系统中的应用
毕业设计要做一个排课系统,找到一些好的参考文档,与大家分享哈
改进后的遗传算法在排课系统中的研究
关于算法的研究,~~~要写这方面论文的可以作为参考~~~
排课算法
由于原来使用的排课软件不能满足中小学排课的需求(虽然排课率很高,但自动排出的课很多不符合实际需要,仍然要经过大量的手工调整),所以,自个儿设计了个自动排课软件,基于课程优先度的随机排课算法,并模拟了部分手工调整的思路,一般排课率在98%左右,所排课基本满足要求,现需进一步完善算法,希望听听各位老大的建议。rn1、如何进一步提高排课率,100%当然最好.rn2、如何进行班级课表优化,主要是课程分布的均匀度(如科学课两个排在周一、周二就不太好,而如果两课间隔1、2天就ok了)rn3、如何进行教师课表优化,也是分布均匀度的问题,如一周14课,以5天计算,平均每天3课左右是最好了。rn请不吝赐教,谢谢!rn我的程序可在www.pkzs2008.com.cn中下载,希望能和大家深入交流。qq:39318145
排课算法?
在排课系统当中,排课算法的大致过程?
排课管理系统排课软件算法
基于排课软件算法和管理系统,排课管理系统排课软件算法
遗传算法排课,染色体生成问题
毕设是做排课系统,据说遗传算法可以实现,但不知道怎么生成染色体的,适用函数怎么用,请大家指点
基于遗传算法的高校排课系统研究
排课 问 题 是一个有约束的、多目标的组合优化问题,并且己经被证明为一个NP 完全问题。尤其随着目前高校扩招人数数量的剧增,而现有教学资源有限,从而两者间的矛盾越来越剧烈,人们纷纷在探索排课算法,随着计算机技术的迅速发展,计算机自动排课系统也油然而生。目前计算机自动排课系统也在追求最优化的排课算法。
遗传算法在排课问题中的应用
遗传算法在排课问题中的应用。
分布式数据库具体设计代码
分布式数据库具体代码 求解
自动排课算法,排课软件,C#排课软件源码,ASP排课软件源码
自动排课算法,排课软件,C#排课软件源码,ASP排课软件源码,自己收集的,有算法分析,有C#的源码,有成型的自动排课软件,有ASP网站模式的,总之还算比较全
C语言-遗传算法的排课源码
C语言-遗传算法的排课源码,遗传算法、使用c语言开发,源码
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo

相似问题

1
高中遗传算法排课(共同探讨)
0
遗传算法在matlab里怎么使用呀,不知道怎么来模拟B题的过程
1
求推荐一种高效的算法
0
细胞自动机可以和哪些机器学习算法结合使用?
0
如何用DSP实现遗传算法?
1
一个有关排课算法的问题, 具体的程序的要求看里面,求各位的帮忙
1
哪位有遗传算法求参数的代码啊?
0
下载的自适应遗传算法运行不出结果
1
如何用遗传算法,通过直线和圆弧拟合曲线?
0
请问如何使用nodejs实现hash算法和签名算法,然后使用golang语言验证hash值和签名
0
DNA遗传算法的一个难题的解决的思路,怎么运用C语言解决这个题的办法
0
用遗传算法同时辨识四个参数,其中一个参数比另外三个大几个数量级,导致系统辨识精度不够
0
使用增量学习算法,对一堆数据进行聚类处理,然后再次输入新的样本,如何判断该样本的可靠性如何?
1
算法【动态规划类型的问题】
0
关于使用编码的算法对字符串进行加密的问题,怎么使用C程序的设计的思路怎么做
0
如何对变分模态分解的参数利用遗传算法进行优化
0
请问百度AI平台 easyDL物体检测的算法具体是什么? 我知道有迁移学习,能不能更深入的解读一下?
1
基于粒子群算法的机器人路径规划,MATLAB编写
1
关于PI控制的双闭环系统永磁同步电动机控制器软件设计,利用SVPWM算法。
1
抗分析的软件注册机制的设计与实现