以下是小编为大家准备的论文:分析所得税费用算法新解(共含10篇),希望对大家有帮助。同时,但愿您也能像本文投稿人“小酸奶”一样,积极向本站投稿分享好文章。
论文:分析所得税费用算法新解
一、资产负债表债务法下所得税费用的计算方法
在资产负债表债务法下,所得税费用的计算公式表述为:所得税费用=当期所得税+递延所得税费用
(一)当期所得税
当期所得税是指企业按照税法规定计算确定的针对当期发生的交易和事项,应交纳给税务部门的所得税金额,即应交所得税,应以适用的税收法规为基础计算确定。
企业在确定当期所得税时,对于当期发生的交易或事项,会计处理与税收处理不同的,应在会计利润的基础上,按照适用税收法规的要求进行调整,计算出当期应纳税所得额,按照应纳税所得额与适用所得税税率计算确定当期应交所得税。
应交所得税=应纳税所得额×所得税税率
应纳税所得额=税前会计利润+纳税调整增加额一纳税调整减少额
(二)递延所得税费用
递延所得税费用,是指企业在某-会计期间确认的递延所得税资产及递延所得税负债的综合结果。即按照企业会计准则规定应予确认的递延所得税资产和递延所得税负债在期末应有的金额相对于原已确认金额之间的差额,即递延所得税资产及递延所得税负债的当期发生额,但不包括计入所有者权益的交易或事项的及企业合并所得税影响。用公式表示即为:递延所得税费用=(递延所得税负债的期末余额一递延所得税负债的期初余额)一(递延所得税资产的期末余额-递延所得税资产的期初余额)
(三)所得税费用
根据当期所得税和递延所得税即可计算出所得税费用,其计算公式为:所得税费用=应交所得税+递延所得税费用。
二、所得税费用的巧算法
从上述准则中规定的所得税费用的计算公式可以看出,所得税费用计算过程中既涉及对当期税前会计利润按纳税调整增加额及减少额的调整,还包括对应交所得税按递延所得税费用的调整,计算过程比较复杂,不易理解。下面介绍一种计算所得税费用的巧算法,有利于对所得税费用计算的掌握。
(一)将会计利润调整为应纳税所得额
在计算应交所得税时,如果不存在永久性差异,只需要计算出递延所得税资产和递延所得税负债的'本期发生额就可以了,通过递延所得税资产和负债的本期发生额可以直接将会计利润调整为应纳税所得额。永久性差异指会计规定计人利润税法规定不需要纳税的事项或者是会计规定从当期利润中扣除但税法规定需要纳税的事项,永久性差异不形成暂时性差异。如果存在永久性差异,则需要在会计利润的基础上先将永久性差异进行调整,然后通过递延所得税资产和负债的本期发生额将会计利润调整为应纳税所得额。具体计算公式如下:
应交所得税=(会计利润±永久性差异+可抵扣暂时性差异发生额一应纳税差异发生额)×税率=(会计利润±永久性差异)×税率+递延所得税资产发生额-递羞延所得税负债发生额
(二)计算所得税费用
计算出应交所得税后,可以利用所得税费用的账务处理模式倒挤出所得税费用的数额。递延所得税资产的发生额如果为正数,则借记“递延所得税资产”,递延所得税资产的发生额如果为负数,则贷记“递延所得税资产”,递延所得税负债的发生额如果为正数,则贷记“递延所得税负债”,递延所得税负债的发生额如果为负数,则借记“递延所得税负债”,应交所得税当然要记贷方,其通常情况下的账务处理模式为:借记“所得税费用”和“递延所得税资产”,贷记“应交税费--应交所得税”和“递延所得税负债”在上述处理模式中,知道递延所得税资产、递延所得税负债的发生额及应交所得税金额即可倒挤出所得税费用的金额。
三、所得税费用巧算方法与传统计算方法比较
(1)201*年4月1日购入3年期国库券,实际支付价款为1056.04万元,债券面值1000万元,每年3月31日付息,到期还本,票面年利率6%,实际年利率4%。甲公司划分为持有至到期投资。实际利息收入41.71万元,税法规定,国库券利息收入免征所得税。
(2)因发生违法经营被罚款10万元。
(3)年末计提产品保修费用40万元,计入销售费用,本年实际发生保修费用60万元,预计负债余额为80万元。税法规定,产品保修费在实际发生时可以在税前抵扣。
(4)至201*年末止尚有60万元亏损没有弥补,其递延所得税资产余额为15万元。
(5)假设除上述事项外,没有发生其他纳税调整事项。
递延所得税的会计核算分析论文
摘要:资产负债表债务法的关键一是确定资产、负债的账面价值和计税基础,根据账面价值与计税基础的差确定暂时性差异;二是计算所得税费用。但是在理解和运用中有诸多难点,本文结合实际工作中对递延所得税理解提出自己的见解。
关键词:递延所得税;资产;负债
在会计工作和学习中,发现大部分会计人员对递延所得税的处理有诸多疑惑,本文针对递延所得税理解中的难点,以及所得税费用的计算过程中遇到的难点谈一点想法,期望能对学习及会计工作有所帮助。
一、递延所得税的涵义
《企业会计准则第18号-所得税》规定采用资产负债表法核算所得税。递延所得税分为递延所得税资产和递延所得税负债。通过比较资产、负债按照会计准则规定确定的账面价值与按照税法规定确定的计税基础,对于两者之间的产生时间性差异,分为可抵扣暂时性差异与应纳税暂时性差异,确认相关的递延所得税资产与递延所得税负债。应纳税暂时性差异在未来期间转回时,会增加转回期间的应纳税所得额,可抵扣暂时性差异会减少未来期间的应纳税所得额。
二、递延所得税的确认及账务处理
下面主要从资产和负债两个方面来分析递延所得税。
(一)资产资产的.账面价值大于计税基础,形成应纳税暂时性差异,确认递延所得税负债;资产的账面价值小于计税基础,形成可抵扣暂时性差异,确认递延所得税资产;例如,某项交易性金融资产成本40000元,期末公允价值上升10000元,在进行帐务处理时:借:交易性金融资产10000贷:公允价值变动损益10000该项资产帐面价值50000元。企业持有各项资产期间资产增值或者减值,除国务院,财政、税务主管部门规定可以确认损益外,不得调整该资产的计税基础。因此,不承认公允价值的升值10000元,在以后实际处置时再确认,税务机关确认该项固定资产价值是40000元,也就是计税基础。即资产账面价值50000>计税基础40000,理解差额是(50000-40000)*25%=2500元,应调减应纳税2500元(假设所得税税率为25%),可理解为税务机关少收了2500元,在以后期间可以收回。对于企业可理解未来要多交税,意味着会在未来给企业带来经济利益的流出,符合负债的定义,所以确认负债,即应纳税暂时性差异,也就是“递延所得税负债”。账务处理:借:所得税费用2500贷:递延所得税负债2500
(二)负债负债的账面价值大于计税基础,形成应纳税暂时性差异,确认递延所得税资产;负债的账面价值小于计税基础,形成可抵扣暂时性差异,确认递延所得税负债;例如,某企业预计销售产品质量保证损失提取费用10000元,计提时账务处理:借:销售费用10000贷:预计负债10000该项负债帐面价值10000元。税务机关认定该项预计负债时,取决于销售产品损失是否已经发生。因此不应确认,在以后实际发生时再确认,税务机关确认该项负债是0元,也就是计税基础。即负债账面价值10000>计税基础0,理解差额是(10000-0)*25%=2500元,应调增应纳税2500元(假设所得税税率为25%),可理解为税务机关多收了2500元,在以后期间可以转回。对于企业可理解未来要少交税,意味着会在未来给企业带来经济利益的流入,符合资产的定义,所以确认资产,即可抵扣暂时性差异,也就是“递延所得税资产”。账务处理:借:递延所得税资产2500贷:所得税费用2500
三、所得税费用的确认
根据所得税费用=应交所得税+递延所得税费用,应交所得税已计算出来,根据递延所得税费用=(递延所得税负债期末余额-递延所得税负债期初余额)-(递延所得税资产额期末余额-递延所得税资产期初余额),就可计算出所得税费用。这个公式在日常记忆中较困难,可以根据会计分录借贷平衡式,其他三个都是已知,倒挤出所得税费用。例如,某企业应交所得税是4元,递延所得税负债期末、期初余额分别是20000、30000元,递延所得税资产额期末、期初余额分别是25000、12000元。递延所得税负债期末余额相比期初要减少10000元(借方),递延所得税资产期末余额相比期初要增加13000元(借方)。所得税费用即是19000元:借:所得税费用19000递延所得税资产13000递延所得税负债10000贷:应交税费-应交所得税42000假设递延所得税负债期末、期初余额分别是30000、20000元,其他条件不变,递延所得税负债期末余额相比期初要增加10000元(贷方)。所得税费用即是39000元:借:所得税费用39000递延所得税资产13000贷:应交税费-应交所得税42000延所得税负债10000通过会计分录倒挤所得税费用,便于会计人员理解和掌握,相对于通过所得税公式计算得出结果更简单易懂。
参考文献:
[1]财政部会计司编写组.企业会计准则讲解[M].人民出版社,,12.
[2]胡庆红.对递延所得税资产与递延所得税负债核算问题的探讨[J].商业会计,2010,3(06).
[3]胡研.浅析递延所得税资产的确认以及会计处理[J].内蒙古科技与经济,(10).
算法设计与分析课程论文
“卓越工程师教育培养计划”(简称卓越计划)旨在培养一批创新能力强、适应经济社会发展需要的高质量工程技术人才。在南通大学计算机科学与技术学院制定的软件工程专业卓越工程师的培养计划中,算法设计与分析被设置为一门核心必修课程。通过该门课程的系统授课,重点培养学生的计算机问题求解能力,该能力是软件工程专业学生成长为卓越工程师必备的一项核心竞争力。一个典型的计算机问题的求解一般需要经历5个阶段:①问题的分析和建模;②算法设计方法和相应数据结构的选择;③算法的实现;④算法的正确性证明和复杂度分析;⑤算法实现的优化等。
经过多轮的教学实践发现,学生之间水平参差不齐是教学过程中面临的最大问题。随着高校招生规模的不断增大,不同学生之间在基础知识、智力水平、兴趣爱好、学习动机和学习方法上存在较大的差异性。相同的教学内容,对于一些基础较好的学生来说理解难度不大,但对于一些基础较弱的学生来说,则难以理解。因此,如何尊重学生个性差异、发展学生个性特长,在考虑学生整体发展的同时兼顾学生的个性特长发展,从而最终提高各个层次学生的综合素质是算法设计与分析课程的教学改革实践中需要重点关注的问题。
通过多次与学生的深入交流发现,学生在这门课程的学习过程中面临如下问题:
1)课程教学内容难度高。课程需要学生掌握常见的算法设计策略,如分治法、动态规划法和贪婪法等,对设计出的算法能进行正确性证明和复杂度分析。很多知识点抽象层次高,需要学生具备一定的数学分析能力,同时,通常算法内部逻辑比较复杂,因此需要学生具备较强的编程功底。笔者在讲授这些知识点时,均假设学生具备一定的数学分析能力和编程基础,但实际情况却不容乐观,很多学生在大一和大二的时候并未重视相关课程的学习,很多知识点都已经还给授课老师,在课堂上需要花费一定时间帮助学生回忆这些知识点。同时,部分学生因编程经验较为匾乏,难以顺利地将伪代码转化成可运行的程序代码。
2)学生问题求解能力弱。为辅助学生对知识点的理解,授课老师一般在实例选择时均采用一些经典实例,例如归并排序、最小生成树等。这些问题在一些预修课程(例如高级程序设计语言或数据结构)中均进行过讲解,因此理解起来难度不大。但是,学生在上机实践时,面对老师布置的新问题,却很难将学到的知识进行灵活运用,难以选择合理的算法设计策略,并借助熟悉的高级编程语言去解决。
3)学生自主学习意识薄弱。该门课程本身课时较少(仅有犯学时),其中8学时为上机实践,在剩余的24学时内,仅能讲授基本的算法设计与分析策略。学生即使了解常见的算法设计与分析方法,但现实生活中问题千变万化,更需要学生灵活使用学到的知识。因此,要提高学习效果和实践能力,需要学生在课外花费更多时间,阅读相关资料和进行大量编码。但是,授课过程中发现,真正能够完成自主学习的学生并不多。一方面,很多学生长期受应试教育的影响,习惯于填鸭式的教学模式,同时,学习时具有较强的功利性,很多学生普遍有应付考试和及格万岁的思想,有的`学生甚至为了应付老师的作业检查,大量抄袭作业,仅做一些表面上的修改来敷衍了事。另一方面,即使有少量同学对新知识比较好奇,愿意自己去积极探索,但在选择相关经典资料时经验不足、效率较低,因此,需要有经验的老师进行有效引导。
目前高校很多教室都配有多媒体设备,造成大部分专业课程均采用多媒体课件方式进行授课。多媒体课件虽然具有丰富的表现力、良好的交互性和较高的共享性,但与其他核心专业课程相比,算法设计与分析课程的理论程度更高,数学推导较多,因此笔者认为,采用板书为主的教学方式可能会效果更好。为验证该推测,对Leiserson教授和Demaine教授开设的麻省理工学院公开课的在线视频进行分析,发现他们在授课时,绝大部分教学内容均采用板书方式进行讲解,通过在黑板上一步一步地推导,在一些关键节点上与学生充分交互,使得学生可以更好地掌握算法设计与分析过程中的一些重要技巧。笔者在实际教学中通过精心设计板书,取得了较好的课堂效果。
综上所述,在学生水平参差不齐的情况下,针对算法课程教学中存在的问题,提出了一系列教学改革措施以提高不同层次学生的计算机问题求解能力。其中将教学问题与教学改革措施的对应关系,以及教学改革措施与不同层次学生的对应关系进行总结。而且具备良好的交叉学科基础和文化底蕴,能培养出满足市场需要的复合型人才。
如何使相关专业的教育教学满足将来ICT产业的发展是个相当复杂的问题,希望笔者提出的一些改进措施能对信息科学相关专业的工程教育具有参考意义,并对其他领域也有借鉴之处。
自动排课算法的分析论文
摘 要:随着我国教育事1业的不断发展,课程编排问题在很大的程度上影响着学校教学质量的提高。近些年来,政府对教育事业的投入也是逐年加大,可见对教育事业的重视。为了保证教学的质量,学校应该制定出严密合理和规范的课程安排,课程的编制过程是十分复杂和繁重的。下面我们就分析一下排课研究的意义,如今排课问题的现状,以及现有的几种排课算法,详细地分析一下排课算法,
关键词:自动排课;排课算法;自动排课算法
1.排课算法研究的意义
不管是小初高还是大学,靠老师教课来学习还是占主要的部分,这是培养学生的主要途径。在学期开始的时候,学校都会给每人发一张课程表,学生还有老师都是按照课程表来进行计划。一张课程表打印出来十分简单,但是想把课程安排的紧凑合格,管理人员是需要下很大苦工的。新学期开始前学校的管理人员都要整理教学计划,根据教学计划下教学任务书,然后结合教学计划和任务开始编排课程。这个编排过程是繁重而关键的,因为在这些教学调度过程中,不仅有大量繁琐的数据整理工作,还有严谨思维的脑力劳动,需要填写并打印大量的表格。
21世纪以来,信息技术突飞猛进,计算机排课慢慢取代了手工排课,这一技术的发明大大减轻了管理人员的工作量,而且采用计算机排课有利于学校对老师教学贡献的评估,有利于优化学生的学习过程,也有利于学校领导决策更合理化,最为重要的是有利于学校教学质量的提高。
2.排课的现状分析
在国外很早就有人研究课程编排问题,在 1962年,Gotlieb提出了一个课表问题的数学模型,他利用匈牙利算法解决了三维线性运输问题。然后,人们对课表问题的算法、解的存在性等方面做了许多深入探讨。近40年来,在计算机新技术的基础上,人们又进行了不断地尝试,并取得一些成效。如1965年,Mihoc和Balas将课表公式化为了一个优化问题;Krawczk提出了一种线性编程的方法;Junginger将课表问题简化为一个三维运输问题。最近几年,我们在课程编排方面已经取得了一些成绩,但是对于多数学校而言,这种课表编排还不具备实用价值,只能在极为简单的情况下才能实现。
然而,人们并没有放弃研究课表问题,在九十年代,国外在课表问题研究方面的主要代表人物有加拿大Montreal大学的Jean Aubin和Jacques Ferland、印度的Vastapur大学管理学院的ArabindaTripathy等。我国对课表问题的研究是开始于80年代初期,具有代表性的是南京工学院的UTSS(A University Timetable Scheduling System)系统,清华大学的TISER(Timetable SchedulER)系统,大连理工大学的智能教学组织管理与课程调度等。
不管是国外研究还是国内的研究,从实际使用情况来看,国内外研制开发的软件系统都不是很实用,比如,我国研制的系统,这些系统大多是模拟手工排课过程的。这种系统课表编排经实践证明是不适合进行大量推广的,因为它过于依赖各个学校的教学体制,限制性较大。另外,排课系统本来就是很复杂的,排课很难做到面面俱到,而且,每个学校都有其特殊性,如果是想要改动某个地方,有可能使全部的课程发生大调整,这就是说全校的课程都会发生变动,在实际应用中我们会发现这是很难实现的。
经过长时间的研究,目前解决课表方法的问题有:模拟手工排课法,图论方法,拉格朗日法,二次分配型法等多种方法。在排课算法上,目前,人们已经研制出了几种,比较流行的是自动排课算法和基于时间片优先级的排课算法。下面我们主要介绍详细一下自动排课算法。
3.自动排课算法
3.1问题的简化描述
设要安排的课程为{ C1 , C2 , ., Cn} ,课程的总数设为为n , 各门课程每周安排的次数(每次为连续的2 学时) 则设为{ N1 , N2 , ., Nn} ;每星期教学五天,也就是从星期一到星期五;每天最多只能安排4 次教学课程,就是1 ~ 2 节、3 ~ 4 节、5 ~ 6 节和7 ~ 8 节,在以下我们将4次教学课程分别称第1 、2 、3 、4 时间段 .这样,在这种假设下,每周的教学总时间的段数就是5 ×4 = 20 ,如以下这种表达方式:
n ≤20 , (1)
N = 6n, i =1, Ni ≤20. (2)
我们要思考的就是如何设计出恰当的数据结构和算法, 从而确定{ C1 , C2 , ., Cn } 中每个课程的教学应该占据的时间段,还得保证美个时间段只能由一门课程占据.
3.2主要数据结构
对于每一门课程,分配2 个字节的“时间段分配字” :{ T1 , T2 , ., Tn} . 每个时间段分配字(假设为Ti )的格式为:
Ti 的'数据类型C 语言格式定义为:unsigned int . 以Ti的最高位来表示该课程是否有效,如果是0的话表示有效,1的话则表示无效。其他的被称为课程分配位,每个分配位占连续的3 个位,这里的位就是bit,用来表示星期一到星期五所安排课程的时间段的值,0是表示当日没有排课,1~4是表示课程所安排的相应的时间段,如果值大于4的话就表示无效。
这样的话,小于32 768 (十六进制8000)就是有效的时间段分配字的值,大于等于32 768 的时间段分配字则是对应无效的课程。
3.3排课算法
在上述假设下,我们可以看出,自动排课算法的目标就是确定{ C1 , C2 , ., Cn} 所对应的{ T1 , T2 , ., Tn} .
假设成立的话,我们发现一共可有20 !/ (20 - N) !种排法 . 假设一共有4 门课,每门课一个星期上2 次,则N = 8 ,就是说这8 次课安排的方法就可能会有20 !/ (20 - 8) ! = 5 079 110 400 ,即50 多亿种.在这种多可能性的情况下,排课必须有一个确定的排课标准,这样才能节省时间,提高效率。一般情况下我们会采用轮转分配法来进行:首先从星期一开始就按{ C1 , C2 , ., Cn} 中的相应顺序来安排课程,每门课程安排1 次,之后再按这样的顺序继续排后面的课程,直到所有课程的开课次数都与{ N1 , N2 , ., Nn} 中给定的值相符合. 在算法描述中用{ C[1 ] , C[2 ] , ., C[ n ]} 表示{ C1 , C2 , ., Cn} ,{ N1 , N2 , ., Nn}以及{ T1 , T2 , ., Tn}。
3.4算法的优缺点分析
优点:这个算法是以课程为中心的,然后进行搜索匹配,取得最先匹配的值;它具有占有空间少,运算速度快这两个特点。
缺点:该算法无法对数据进行择优选取,所以不无法合理分配学校的教学资源,并不能满足一些特殊要求,比如说有些老师喜欢上午上课,有些老师偏向于组织集体上课;有些课程安排到上午会更合适些,有些课程不能安排到上午等。
参考文献:
[1]蔡启明,吴新民;基于中小学校园网的自动排课系统的分析和设计[J];电化教育研究;03期
[2]祝勇仁;邓劲莲;胡献华;张炜;;排课问题的一种遗传算法适应度求解方法[A];第四届中国软件工程大会论文集[C];
浅析中学新课程算法教学的案例分析论文
论文关键词:算法 案例分析 循环结构
论文摘要:在高中数学课程中,算法内容的设计分为两部分:一部分主要介绍算法的基础知识,主要是通过一些具体的案例介绍算法的基本思想,使学生了解:为了解决一个问题,设计出解决问题的系列步骤,任何人实施这些步骤就可以解决问题,这就是解决问题的一个算法。
一、算法概述
1.算法的定义及其现代意义
算法(algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。在数学中,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确的和有效的,而且能够在有限步之内完成。也就是说,解决一个问题所采取的方法(明确、有效、有限)顺序,是算法的核心。
2.算法在构造性数学中有重要作用
证明一个方程有解,通常有两种做法,一种是构造的方法,直接构造出该方程的解;另一种是用反证法,先假定该方程的解不存在,然后推出矛盾。但后一种方法无法知道这个解是什么。算法给出的是第一种方法的解。由于算法能够构造出方程的解,所以算法在构造性数学中十分重要。
3.算法的基本思想
算法的基本思想是指按照确定的步骤,一步一步去解决某个问题的程序化思想。在数学中,完成每一件工作。例如,计算一个函数值,求解一个方程,证明一个结果,等等,我们都需要有一个清晰的思路,一系列的步骤,一步一步地去完成,这就是算法的思想,即程序化的思想。
二、算法的作用
数学学习的主要作用是形成“算法思维”。算法有着悠久的发展历史,中国古代数学曾经以算法为特色,取得了举世瞩目的辉煌成就。算法已经成为很多学科的基础。高中数学课程中的算法有以下几个方面的作用:
1.算法学习能够帮助学生清晰思考问题、提高逻辑思维能力
不论是代数问题,还是几何问题,算法框图可以准确、清晰、直观地展示解决问题的过程;算法程序可以借助计算机帮助我们具体地解决问题,得到需要的结果。一个算法常常可以解决一类问题。因此,算法,一方面,具有具体化、程序化、机械化的特点,同时又有高度的抽象性、概括性和精确性。将解决具体问题的`思路整理成算法的过程是一个条理化,精确化和逻辑化的过程,有助于培养学生的逻辑思维能力。
案例1:写一个算法让计算机来解方程:ax+b=0,其中参数由键盘任意输入,让计算机输出结果
分析:我们能说凡是这样的方程就让计算机输出:“x=-b/a”就可以了吗?显然,这是有问题的,因为当a=0的情形下,这种输出是错误的,也就是说,我们需要分情况讨论:
(1)输入a,b;
(2)若a≠0,则输出x=-b/a;
如果a=0呢?实际上方程变成了b=0,这样的方程的解又是什么呢?看来还要看看参数b,若b=0,则方程为0=0,若b=5,则方程为5=0,这两种情形显然是不一样的,前者的解是任意实数,而后者则是无实数解,因此继续我们的算法:
(3)若a=0(还要对b进行讨论):
()若b=0,方程的解是全体实数;
()若b≠0,方程没有实数解。
为什么对于这样一个看似简单的方程还有这么多门道呢?因为,作为一个算法必须是精确的,任何人按照(包括计算机)这个步骤执行都能得到这个问题的求解。
从以上案例可以看出,书写一个算法的过程是一个思维的整理过程,是一个精确化、条理化的过程。给出一个算法,实际上是给出了一种实现的方法,就是一种构造性的证明或论证。因此,算法的学习有助于培养学生的逻辑思维能力。
2.算法学习有助于学生全面的理解运算
每一个算法都是一个证明――构造型的证明,著名数学家吴文俊提出的“机器证明”就是通过算法实现的,在信息时代,这种证明将会受到越来越大的重视。“运算”是实施这种证明的手段,只有这样,计算机才能帮助我们。
3.算法学习有助于提高学生的信息素养
信息技术正在改变着人们的生活方式、学习方式和工作方式。掌握和使用信息技术已是现代人必备的素养。在高中数学课程中也开设了信息技术课程。信息技术以计算机技术为核心,而计算机技术的核心则是算法。因此,算法的学习有助于学生理解信息技术的本质,提高学生的信息素养。
三、算法的基本结构
1.顺序结构
顺序结构的算法的操作顺序是按照书写顺序执行的。
案例2:设计一个算法,以确定给定线段AB的4等分点。解决这个问题的算法如下:
(1)从已知线段的左端点A出发,作一条射线;
(2)在射线上任取一点C,并作线段CE=EG=GD=AC,那么线段AD=4AC;
(3)连接DB;
(4)过C作DB的平行线,交线段AB于M,这样点M就是线段AB的4等分点.
像这样的算法就是一个顺序结构的算法,只要按照书写顺序完成以上4个步骤,就能得到线段AB的4等分点。
2.分叉(选择)结构
选择结构的算法是根据指定的条件进行判断,由判断的结果决定选取执行两条分枝路径中的一条。
案例3:求三个数的最大数的算法就是选择结构。
解决这个问题的算法如下:
(1)输入变量:x,y,z;
(2)max:= x;
(3)比较max和y:如果max (4)比较max与z:如果max (5)输出max.
在这个算法中,我们根据与变量max比较的不同的结果决定后面的操作。
3.循环结构
循环结构的算法要根据条件是否满足来决定是否继续执行循环体中的操作。比如,上面求三个数中的最大数,我们进行了两次比较,假如我们要找出100个数中的最大数,按照上述算法就需要比较99次,算法步骤就是101步。既不便于书写,也不便于阅读.解决这个问题就需要利用循环结构了,对于求100个数中的最大数的问题,相应的算法可以用流程图来表示,像这样的算法控制结构,我们称为循环结构。在循环结构中,函数思想发挥着十分重要的作用。
参考文献:
[1][美]Mark Allen Weiss.数据结构与算法分析―――C语言描述.人民邮电出版社,。
[2]严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,。
[3][美]Jan Harrington著.陈博译.面向对象C++数据结构.科学出版社,2005。
[4]蹇强,罗宇.数据结构.北京邮电大学出版社,。
基于SVM的重复网页检测算法分析论文
引言
随着互联网的发展,网络上的文本信息越来越容易复制,由此产生了大量的重复网页和镜像文档,这一方面增加了网络爬虫的负担,另一方面降低了用户体验。因此,越来越多的学者关注重复网页检测这一领域。
对于重复网页可以定义为内容完全重复和近似重复,对于完全重复的网页可以计算其MD5值,通过比较网页问MD5值是否相等即可作出判断。因此,本文只讨论近似重复网页的检测。大量重复网页的产生基本上是通过用户,如一些新闻文章、热门事件及经典文章等,也就是说一般重复网页改动比较小,如加入引文信息、插入广告导航等。
本文把相似网页的比较转换成二元分类问题,即两张网页相似标记为+1(相似),否则标记为-1(小相似)。SVM(Support Vector Machine)算法在文本分类中取得了较好的效果。因此,本文采用SVM算法对每对网页分类,通过训练数据的学习得到分类判别函数,由判别函数对新的数据进行计算。
1相关研究
目前,对重复网页检测问题已经提出了很多解决方案:有基于字符串比较的方法,即按小同粒度提取指纹,有基于词频统计的方法,还有基于聚类的方法等。
Border提出将文本中连续的n个term序列作为文本的一个特征,称之为二shingleo M-Theobald等人提出的SpotSig算法,以停用词作为先行词,提取其后的k个词形成一个个特征,使用Jaccard计算相似度。
哈工大张刚等人把句号作为一个提取位置,分别在句号两边L/2长的词串构成网页的一个特征。清华大学吴平博等人提取每个句子中首尾字符作为特征串。彭渊等人提出将两篇文档的最长公共子序列(LCS)作为特征码。
2算法实现过程
2. 1特征码提取
网页通常由以下几部分组成:标题、正文内容、链接和广告等。正文是原始网页中真正描述主题的部分。本文采用通用网页正文抽取算法州提取网页的正文内容,网页中其余部分当作噪音过滤掉。
从长段落中提取特征码,可以减少一些次要特征,使计算更简洁。长段落定义:段落的长度要大于设定的阈值或以句号、问号、感叹号分割得到的句子数大于设定的阈值。
提取出长段落后,以逗号、句号、感叹号和问号分割得到每个句子,提取每个句子首尾各L/2个字作为特征码;把各个特征码按序组成特征串,该特征串代表了该篇文档。
2. 2相似度计算
在比较特征串差异性的基础上得到网页的相似度。目前,比较文本之问差异算法主要有两大类:一类是基于最短编辑距离算法;一类是基于最长公共子串算法。最短编辑距离算法是以字符串八变成另一个字符串B的过程中,通过插入字符、删除字符、替换字符等操作的次数表示两个字符串的差异,数值越小字符串的差异越小算法表示字符串八和字符串B的.最长公共子串长度,数值越大字符串的差异越小。
通用的做法是根据以上计算出的相似度数值,作一些规范化处理后与阈值比较。但是在现实中阈值的设定往往是依靠经验来设置的,因此很难设定准确,这样就有误差。本文采用了监督学习算法,通过学习得到的判别函数来判断文档是否相似,避免了人为设定阈值带来的风险。
2. 3支持向量机(SVM )
2. 3. 1 SVM简介
支持向量机是一种二元分类模型,它的基本模型是定义在特征空间上的问隔最大的线性分类器。在重复网页检测应用中,我们把每对网页中计算出的特征定义如过程中,通过插入字符、删除字符、替换字符等操作的次数表示两个字符串的差异,数值越小字符串的差异越小算法表示字符串八和字符串B的最长公共子串长度,数值越大字符串的差异越小。
通用的做法是根据以上计算出的相似度数值,作一些规范化处理后与阈值比较。但是在现实中阈值的设定往往是依靠经验来设置的,因此很难设定准确,这样就有误差。本文采用了监督学习算法,通过学习得到的判别函数来判断文档是否相似,避免了人为设定阈值带来的风险。
2. 3. 2操作流程
SVM在重复网页检测应用中的大致流程,主要分为训练阶段和测试阶段。训练阶段主要从预先给定的数据集中学习并建立分类器,得到判别函数。因此,训练数据的好坏对于分类器的性能至关重要。测试阶段用来分类未知结果的数据集,可以判断出文档集中与输入文档重复的文档,即把文档集中每个文档与输入的文档使用判别函数计算
2. 4算法描述
本文算法大致分为3大步:提取特征串、衡量指标和构造分类器。
3结语
本文提出一种使用机器学习的方法检测网页是否重复,通过训练数据构造SVM分类器。提取网页特征串,计算两个特征串的相似度,使用SVM判别函数计算。实验表明:加入两个网页间的长度差异值能提高算法的准确率和查全率。
非计算机专业算法分析与设计教学改革论文
【摘要】算法分析与设计不仅是计算机专业的核心课程,同时也是与计算机有关的非计算机专业的专业课。本人针对非计算机专业学生在学习过程中存在的若干问题,就教学内容、教学手段和考核方式等方面提出了改革措施。
【关键词】算法分析与设计;教学改革;非计算机专业;学习兴趣;实践能力
一、引言
算法分析与设计不仅是计算机专业的一门核心基础课程,同时也是一门与非计算机专业相关的专业课程。随着计算机技术在各个行业、领域的广泛应用,越来越多的非计算机专业学生也开始选修这门课程。通过本课程的教学,旨在培养学生对算法的计算复杂性进行正确分析的能力,为独立地设计算法和对给定算法进行复杂性分析奠定坚实的理论基础。由于非计算机专业的学生在学科背景、前期课程的设置、前期课程的掌握程度等方面与计算机专业的学生存在很大的不同,因此如何给非计算机专业学生上好算法分析与设计这门课,给广大的教师带来了挑战和考验。本文从非计算机专业的角度出发,首先分析了非计算机专业学生在学习这门课程时存在的问题,然后从教学内容、教学手段和考核方式三个方面提出了教学改革措施。
二、非计算机专业学生学习算法分析与设计存在的问题
1.学习基础薄弱
数据结构与高级程序设计语言(如C/C++语言)是学习这门课程的基础。非计算机专业课程的学生在接触这门课之前,可能仅学过C语言的一些简单知识,缺乏系统、全面的编程训练,无论是对C语言的运用还是程序设计的`抽象思维能力,亦或是实际动手能力,与计算机类专业学生相比都有一定的差距。另外,数据结构通常只是非计算机专业学生的主要选修课而非专业基础课,因此无论是理论授课还是实验课时,都相对不足。学习基础薄弱导致学生学习这门课程较为吃力,久而久之,学生越来越畏惧这门课程,形成恶性循环,学习兴趣越来越低下,严重影响了实际的教学效果。
2.内容多,课时少
本门课程教学内容非常丰富,包括算法复杂性分析、分治法、贪心法、动态规划法、回溯法、分枝限界法等经典的算法设计策略,每种策略都有不同的实际问题,还有一些针对复杂问题更加高级的算法策略,所涉及到的知识非常繁多。对于非计算机专业学生来说,所安排的课程是相当有限的,将这些算法策略全部讲透非常困难。
3.理论多,实践少
本门课程注重对算法的理解,而这些理论对于非计算机专业学生来讲非常艰深,想要全部理解非常困难。对于非计算机专业学生来说,他们主要希望学习基本概念和基本的应用能力,并不希望在算法实现等领域学习较深的理论,因而实践较少。
三、非计算机专业学生学习算法分析与设计教学改革措施
根据非计算机专业学生在学习中遇到的困难,提出以下几点改革措施:
1.合理选择教学内容,调动学生的学习兴趣
根据学生学习要求合理选择教学内容,合理确定学习的重点和难点。每个专业具有不同的特点,不同的专业对计算机的应用要求不同,所以应通过分析与调研,确定教学难点和重点,而不是一味试图将所有的知识点都讲得面面俱到。同时,在让学生掌握相关理论知识的前提下,多注重培养学生的实践应用能力,让学生在实践中不断地探索发现,进而增强他们学习的兴趣。在具体的教学过程中,如果是抽象的问题,学生学起来就会感觉枯燥无味,因此可将生活中一些具体的问题结合算法讲解给大家,如在讲解分治法时,可举邮局选址问题为例,讲解贪心法时,可举汽车加油问题为例,讲解动态规划法时,可举最少费用购物问题为例。
2.综合运用多种教学手段,提高教学效率
将传统的教学方法与现代化教学方法相结合,综合运用黑板板书与多媒体技术教学。对于一些基础知识、推理等内容,可采用板书的形式传授给学生,对于一些比较抽象难以理解的内容可采用多媒体形式直观形象地进行展示。另外,可采用网络教学方式,建立在线论坛、QQ讨论组等为师生之间的信息交流提供更为方便的途径,可利用网络聊天工具,如QQ、微信等实现个别教学,让学生从过强的共性制约中解放出来,有利于发展学生的个人志趣。
3.改进考核方式,提高学生综合素质
考核方式作为检验学生学习效果的一项重要内容,对于促进学生的学习效果起着重要的作用。传统的考核方式主要由平时成绩和期末理论考试成绩两部分构成,平时成绩一般占30%,期末理论考试成绩70%。这对于非计算机专业学生来说,期末理论考试成绩比例过重,无法考查学生的实践能力,因此我们提出将考核分为平时成绩、实践成绩与期末理论成绩三部分,其中平时成绩占15%,实践成绩占35%,期末理论成绩占50%,这样更注重学生在平时学习过程中的表现和实际动手能力,有利于促进学生的学习兴趣,提高学生的综合素质。
【参考文献】
[1]李涵.“算法分析与设计”课程教学改革和实践[J].中国电力教育,(16):74-75.
[2]黄琴,唐素勤.非计算机专业数据结构教学的实践及创新[J].计算机教育,(3):38-42.
[3]张俊玲,刘鸿波.非计算机专业计算机基础课程教学改革探索[J].实验室研究与探索,.(11):126-128.
[4]廖彬,胡金龙,胡洁.面向非计算机专业的算法教学方法研究[J].中国教育技术装备,(7):21-23.
摘要:介绍了物联网数据处理的若干关键技术,如大数据采集、大数据存储、大数据的分析与挖掘等。以Hadoop为平台对物联网数据进行挖掘与分析,为了提高处理庞大数据的实效性,基于MapReduce架构采用了朴素贝叶斯分类算法、K-modes聚类算法以及ECLAT算法。分析认为,应用这三类算法,提高了数据分类效率,优化了类内对象之间的相似性以及类间对象之间的关联性,为更高效的数据挖掘提供了很好的思路。
关键词:物联网;Hadoop;朴素贝叶斯;K-modes;ECLAT
0引言
当前计算机技术发展迅速,物联网是在计算机、互联网之后信息产业发展的第三次浪潮,它必将成为社会发展的重要推力,它能够实现人与人、人与物和物与物之间的沟通与交流。物联网的兴起也必将再次引发数据的快速增长,对许多行业来说既是更严峻的挑战,也是更宝贵的机遇。物联网正在深刻改变着人们的生活习惯、工作方式。本文主要采用Hadoop分布式系统架构处理物联网环境下的大数据,Hadoop是一个分布式计算平台,具有高可靠性、高扩展性、高效性以及高容错性等优点。其主要由三大部分构成,HDFS(HadoopDistributedFileSystem)分布式文件系统、HadoopMapReduce分布式计算模型和HBase分布式数据库。因此,如何更好地应用Hadoop计算平台处理好物联网大数据,将是一个待攻克的难题。本文主要分析如何运用Hadoop平台处理大数据的理论依据,以及物联网的应用前景。
1物联网概述
物联网[1]底层网络通过RFID(RadioFrequencyIdentification)、WSNs(WirelessSensorNetworks)、无线局域网等网络技术采集物物交换信息并传输到智能汇聚网关,通过智能汇聚网关接入到网络融合体系,最后利用包括广播电视网、互联网、电信网等网络途径使信息到达终端用户应用系统。作为底层的数据感知层次[2],在这个阶段主要感知各种各样的信息内容,例如二维标签、识别器、摄像头信息、传感网络等。然后,整理收集到的数据通过传输层进行传递,例如网络管理中心、通信网络和智能处理等。最后,系统处理传输层的数据,通过人机交互解决信息处理和人机界面的问题。
2Hadoop工作原理
2.1Hadoop基本架构
Hadoop主要是处理大数据的开源式平台,其具有海量存储、成本低廉、效率高以及牢靠性高等特点,因此可以应用到物联网平台的大数据处理[3]。Hadoop的两大主要元件是HDFS和MapReduce。前者的工作主要是存储海量的数据,其存储方式是分布式的;后者主要是计算处理这些大数据,其计算方式也是分布式处理[4]。为了更好的理解这两个元件的体系结构及其工作流程.
2.2HDFS分布式文件系统
HDFS是一个分布式文件系统,其具有高容错性和低廉的成本。HDFS实现的主要目标有以下几点。①以最快的速度检查出硬件异常情况并且及时解决异常。②进行批量化处理文件,提高效率节省时间,重点强调数据的吞吐量。③支持大数据集,不仅可以处理聚集式的高宽带数据,而且可以支持成百个节点的单个集群。④其访问模式是“一次输入,多次读取”,保证了数据访问吞吐量的高效性。⑤HDFS设计可实现不同平台间的互相转移,因而促进了大数据程序平台的广泛应用。HDFS以主从(Master/Slave)结构为主,HDFS集群由一个NameNode和许多个DataNode组成。NameNode为主服务器,主要负责管理存储文件以及访问客户端操作文件。DataNode主要负责管理存储数据,也就是存储小的数据块。
2.3MapReduce分布式计算框架
MapReduce的两大阶段主要是Map阶段和Reduce阶段。Map阶段构成:①输入数据格式解析(InputFormat);②输入数据处理(Mapper);③数据分组(Partitioner)。而Reduce阶段构成:①数据远程拷贝;②数据按照KEY排序;③数据处理(Reduce);④数据输出格式(OutputFormat)。其工作流程如下。⑴数据预处理:从HDFS数据库中读取数据,分析输入数据格式。⑵MAP映射任务:读取自己所属的文件分片,将每一条数据转换成键值对,运用MAP函数得到新的键值对并将其存储到中间节点上。⑶定位缓存文件:将上一步得到的键值对的存储位置信息发送给Reducer。⑷Reduce阶段:通过位置信息读取文件,将所有数据进行重新排序并且合并同一KEY值,再通过Reduce函数化简,最后输出最终结果值。
MapReduce架构具有简易性、效率高、靠谱性以及并行的运算方式等特点,同时MapReduce架构的运用广度也有局限性,不能实现全部算法的应用。因此,最关键的是此算法需满足可伸缩性的特点,这里采用三类算法:分类算法、聚类算法和关联规则算法,研究改造并且能够应用到MapReduce架构中。
3.1朴素贝叶斯分类算法
朴素贝叶斯分类算法[5](NaiveBayesianclassifi-cation,NBC),即将所有数据进行分类,先以一个特定的点定义好类别,建造一个分类器,其作用是将待定的数据先通过映射,划分到确定的类别。简言之,首先需构建一个分类器,获得某个已知样本的先验概率的前提,再运用贝叶斯公式:()()()PABPBPBAPA=⑴得出一个后验概率,最后确定后验概率最大的类是对象所属的类。朴素贝叶斯分类算法采用的是扫描式方式,其算法操作如下:⑴Main函数:读取数据集;⑵Map函数:计算离散属性取值的总和、其连续属性的平均值μ以及标准差δ;⑶Reduce函数:整合输出统计值;⑷Main函数:由步骤3的结果生成分类器。
3.2K-modes聚类算法
K-modes聚类算法[6],即先将对象进行聚集划分成不同的类别和子集,通过静态分类的方法将相似的成员对象分为一类,以区别于其他簇中的对象。由于这种方式不需要进行人工标注处理,因而具有一定的自适应性即无需看管监督的算法。K-modes算法不仅其算法思想容易实现,而且本身简单易用,因此成为最常用的聚类算法之一。K-modes算法是K-means算法基础上的延伸,不仅可以处理数值型数值,也可以处理分类属性型的数据,这是一个大的改进。K-modes算法可以很好的处理数量少的数据集,同时也可以高效处理庞大的数据集,其算法时间复杂度为O(tnkm),共同决定于迭代数t,数据集中对象数n,划分子类数k,以及属性数量m。K-modes算法中modes可直接描述每一个类的属性和特性,便于解析聚类结果。K-modes算法是收敛的。以上是传统的K-modes算法的优点,其也有缺点。K-modes算法虽然是收敛的,但是Huang证明其只能在局限收敛中实现最小值,在全局收敛中实现不了。聚类算法的好坏取决于相异度度量方法,K-modes算法在展示两者的差异性不占优势。聚类算法中modes决定了结果的精确度,而此算法的modes不是独一无二的。因此,采用改进的K-modes算法。K-modes聚类算法[7]采用迭代式的方式,其算法操作如下。⑴main函数:读取数据集中的初始中心点。⑵map函数:主要计算差异值、众数和目标函数值。⑶main函数:最后读取和判断目标函数值,若连续两轮的结果无变化,则结束这次过程,得出中心点,反之需要进行下一轮的迭代进程。因此,聚类算法的应用能够将类内对象的相似性达到最大,类间对象的相似性尽量的小,从而可以更好的区分对象间的差别。
3.3ECLAT频繁项集挖掘算法
关联规则挖掘算法的主要作用是找出不同项集之间的关联性,并且应用到大数据中。例如,顾客去便利超市买东西,观察分析顾客的购物车,会发现商品间的联系。因而调整商品的摆放位置,可以更好的促销商品。ECLAT算法[8]其本质是一种频繁项集挖掘算法,其异于传统的数据结构,是基于垂直数据结构格式。其工作流程如下:首先全面扫描所有数据,然后将数据的`格式展示为垂直的,最后得到一个项集的长度值,即项集支持度的计数。依据算法Apriori的特性,从K=1开始,对频繁K项集的交进行计算,构建备选的K+1项集并且选出第K+1项时,反复操作,将K的值加一,当不能挖掘出频繁项集便结束这个工作。ECLAT频繁项集挖掘算法也是采用迭代式,其算法操作如下。⑴Main函数:读取上一轮的挖掘数据。⑵Map函数:存储垂直K项集。⑶Reduce函数:对垂直K项集挖掘出频繁K项集。⑷Main函数:读取最终的Reduce函数中的结果,如果不是空值,继续进行下一轮挖掘,反之就结束此程序。因此,ECLAT算法的最大优势是更快地找出数据间的关联性,为数据挖掘提供了很好的解决方法。
4应用前景
随着物联网技术的发展,其能够广泛应用到各行各业[9]。例如,农业物联网即物联网技术应用于农业领域,从农业的生产、经营、管理到服务都可以提供支持,通过农业信息感知设备,提高农业生产的品质与效率。智能交通中,将物联网技术应用到交通运输领域,实现交通运输的智能化,提高国家的整体实力和科技水平。城市安全管理是将物联网技术应用到公共安全领域。例如城轨站点安全监测,人员密集的公共场所安全监测,桥梁建筑物安全监测,以及特定危险品的生产场所的安全监测等。同时,物联网可以应用到石油行业中,从油气勘探、钻井、油田生产到管理运输和炼油化工等方面,物联网技术大大提高了生产和管理效率,从而增强我国石油行业的可持续发展能力和国际影响力。
5结束语
本文通过Hadoop平台挖掘分析物联网数据,并且将朴素贝叶斯分类算法、K-modes聚类算法以及ECLAT频繁项集挖掘算法应用于MapReduce架构。结果表明,这三类算法的运用可以更高效的处理大数据,从而获取更有价值的信息。优化物联网数据挖掘分析方法,进而促进物联网产业的发展。物联网作为新一代信息技术的典型代表,不仅渗透到农业生产、智能交通、公共安全、石油产业等领域,而且对将来的经济发展和社会生活都将产生深远影响。物联网的挖掘分析方法在实际运用中还需要进一步探索与研究。
课程表的空间模型及排课算法分析的教育论文
摘 要本文在课程表问题分析的基础上,建立了课程表的空间数学模型,并据此模型推出排课算法,建立了排课系统的E-R图,描述了采用软件实现排课的计算过程。
关键字排课算法 数学模型 E-R图
1 引言
随着计算机的普及,如何利用软件系统来进行课程编排,是各个高校面临的问题。目前已经有一些比较成熟的排课软件,其大部分作为教务管理系统的一个子系统存在,其排课算法和数据采集效率及排课效率都各不相同,各有特点。高校课程表排课设计因素多和结构复杂被归结为NPC(Nondeterministic Poly-nominal Complexity)问题。本文在文献[2]提出的课程表的矢量空间的概念基础上,进一步完善设计及算法,并实现一个更具体可行的排课过程。
2 排课问题描述
课程表的问题,是解决教师、课程、班级、教室、时间的组合问题,这个问题的数学描述是给定一组学生S(S1,S2,……Si),一组课程C (C1,C2,……Cj),一组教师T (T1,T2,……Tk),一组教室R (R1,R2,……Rm),一个时间序列N(N1,N2,……Nn),问题的求解目的.是找出这些序列的每个元素之间的一一对应关系,其中这些元素的组合要满足一定的对应关系。诸如:①S-C 之间的对应关系;②T-C 之间的对应关系;③R-C 之间的对应关系;④T-N 之间的对应关系;⑤S-N 之间的对应关系;这些对应关系是主要考虑的限制条件,还有一些次要的限制条件。这是一个复杂的NPC问题,它的求解是一个完整类的求解问题。 在文献[2]中使用代数的矢量空间的概念,将S,C,T,N,R 中每个组中的每一个元素的组合用5 维空间的点来表示,合并S和C为一个维度,合并N和R为一个纬度,可得3维空间点阵。本文引入教学任务概念,如图1所示,本文进一步将空间点阵细化,明确具体开课点在空间上的交点来源及含义。在T,C,S对应的平面上的点定义为教学任务1(C1,S1,W1,T1),C,S坐标上对应的点是班级排课序列,空间点P1,P2即为求的开课的时间和地点。
3 排课问题求解方法
根据图1描述空间点情况,排课问题的解就是空间中对应的交点P1,P2等。求解过程如下:
(1)确定CS轴上的点:此过程就是给班级排课,某班(S)上某门课程(C),在什么类型的教室上课(O),每周几课时(V),开课时间(开课周数,如单周开课、双周开课、5~10周开课等)(Y)。
(2)确定NR轴上的点:此过程为列出所有可用教室。此轴上应该列出每节(N)所有可用的教室资源(R),此外,每个教室对应有教室类型(O)。
(3)确定T轴上的点:此轴上列出所有的教师资源(T)。
(4)确定TCS平面上的点:此过程就是安排教学任务,也就是教师任课选择。
(5)寻找TCSNR空间上的点:此过程就是排课,根据教学任务列出的教室类型,查找符合条件的NR上的点,从而完成排课。
在排课求解过程中,潜在几个约束必须要满足:
(1) 一个班级在某一节课时只能在一个地点上课;如得到P1前,必须检查S1在N1时刻是否已经存在一个交点。
(2) 一个教师在某一节课时只能在一个地点上课;如得到P1前,必须检查T1在N1时刻是否已经存在一个交点。
(3) 一个地点在某一节课时只能有一个教学任务;如得到P1前,必须检查N1R1是否已经存在交点,合班教学除外。
(4) 一个地点的座位数是否大于上课学生总数;如得到P1前,必须检查R1座位数是否大于S1。
4 数据库建模
根据对排课问题的求解方法,定义数据库E-R图,如图2所示。在此E-R模型中,教学任务的定义十分重要,在此将教学任务的主要属性都列出,教学任务主要属性有班级、课程、教师、开课周、周课时、上课所需教室类型等。在设计中,开课周用20个字符来表示是否安排教学计划(前提为学期教学周定义为20周,若学期教学周为18周,则用18个字符),若某周安排上课,则对应字符为1,否则为0,如:某课程在一学期每周都安排上课,则字符串为“11111 11111 11111 11111”,某课程在一学期只有单周安排上课,则字符串为“10101010101010101010”,某课程在一学期只有双周安排上课,则字符串为“01010101010101010101”,某课程在一学期第5到10周安排上课,则字符串为“00001111110000000000”,依此类推。此外,教学任务对于合班上课的处理可以虚拟为一条教学任务,这样可在排课过程中保持教学任务与教室、时间的一一对应关系。
5 排课过程
排课遵循排课问题求解方法所描述过程,首先是教学任务数据的采集,采用Web模式,各教学部门首先对于班级排课,然后对于教师排课,然后选择上课场地类型,并且选择对应的周学时,从而生成教学任务。采用此方式,降低教务部门的压力,各系的教学任务由个系自己提交完成,然后教务处审核,通过后即可进行排课任务。 排课程序采用VC程序实现,排课过程采用自动排课和手动调课结合的方式,自动排课具体方法就是将教学任务安排到时间与地点构成的点上,并同时检查是否同时满足约束4个约束条件,如果满足,则教学任务安排上课完毕,并对于教学任务做已安排标记;否则,继续下一个时间与地点构成的点并检查约束。手动排课对于自动排课不完或者不合理的地方进行手动调整,使课程表更加合理。排课过程需要按照一定的顺序进行,即对于教学任务中要求的资源相对短缺的先进行计算排课,对于一般要求或者资源相对充裕的后排课,这就要求排课前必须先对于全部资源和教学任务进行计算,由程序来统计出上课需求资源和实际资源,从而进行优先级别排序,依顺序进行排课。 排课过程中需要考虑的特殊问题的处理:
(1) 上大课(合班上课)的处理,合班上课会违反第(3)个约束,因此对于合班上课首先将其教学任务合并。
(2) 公共选修课的处理:全校范围内选修某门课程,根据学生选修情况分班,该分班结果为虚拟班级,然后对虚拟班级排课,此外,控制选修课程在固定的时间范围开设,以免违反第(2)个约束。
(3) 双肩挑教师上课时间的处理:对于双肩挑教师,设定某一时间段统一不排课。
(4) 双职工教师上课时间的处理:处于人性化考虑,属于此类教师,3、4节不能同时排课。
6 结束语
本文描述了课程表的空间点阵模型及排课算法,另外给出了课程表的E-R图,可以据此顺利实现一个排课系统,具有较高的实用价值。本文所描述的算法已经对于1500条实际教学任务的学校进行了2个学期的排课,结果比较理想,因此具有一定的实用性,此外对于课程表排好后,采用Web方式发布,随时随地可以查询和打印,方便快捷。
参考文献
[1]潘以锋.高校智能排课系统的算法[J].上海师范大学学报(自然科学版),2006,(10)
[2]花鹏飞.课程表问题的数学分析[J].中国科技论文在线
[3]李增智等.课程表问题的一种混合型模拟退火算法[J].西安交通大学学报,Vo.l37,No 4(2003)
[4]郭方铭等.采用增强学习算法的排课模型[J].计算机工程与设计,Vol.24,No11(2003)
[5]陶滔等.多维冲突在排课算法中的应用[J].华东地质学院学报,Vol.24,No 3 (2001)
★ 初二新解作文
★ 企业系统新解
★ 报仇雪恨新解散文
★ 财务报表分析论文