《生物信息学算法》实验指导.docx
《《生物信息学算法》实验指导.docx》由会员分享,可在线阅读,更多相关《《生物信息学算法》实验指导.docx(8页珍藏版)》请在冰豆网上搜索。
![《生物信息学算法》实验指导.docx](https://file1.bdocx.com/fileroot1/2022-12/29/8bb180e0-054b-48d4-85d0-8561c123c3d9/8bb180e0-054b-48d4-85d0-8561c123c3d91.gif)
《生物信息学算法》实验指导
生物信息学算法实验指导书
(第一版)
生物信息学院
生物技术与信息教研部版权所有
2011.10
实验一、石头游戏程序设计2
【实验内容】2
【实验记录】3
算法设计思想与代码3
程序执行记录:
3
结论:
3
心得与思考(出现什么问题及如何解决):
3
实验二、找零钱应用程序设计3
【实验记录】4
实验三、0/1背包问题程序设计4
【实验记录】5
实验四、反序排序的贪婪法程序设计6
【实验记录】6
实验五、两序列全局比对算法实现与改进7
【实验记录】7
实验六、两序列局部比对算法实现与改进7
【实验记录】8
实验七、系统聚类UPGMA算法实现与改进8
【实验记录】9
算法设计思想与代码9
程序执行记录:
9
结论:
9
心得与思考(出现什么问题及如何解决):
9
实验八、吉布斯抽样算法实现与改进11
【实验记录】11
实验一、石头游戏程序设计
【实验目的】
1、巩固算法设计基本知识;
2、理解动态规划法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个能与人对弈的石头游戏程序
游戏规则:
每个人每一轮从一堆事都中拿走一块或是从两堆中各拿走一块,不放回,谁拿走最后一块石头谁就赢了比赛。
要求:
随机选择先后手;电脑有一定概率走错;
备注:
程序算法选用参考书上所列的动态规划算法
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考:
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
【思考题】
结合本实验,谈谈用为什么动态规划算法里一般都会有至少一个数组,这个数组主要用来存储什么信息?
实验二、找零钱应用程序设计
【实验目的】
1、巩固算法设计基本知识;
2、理解动态规划法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个适合中国国情的找零钱程序
要求程序能根据“库存”钱币数和找零额度选择最优找零方案
可选用简单方法或者动态规划法。
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
【思考题】
结合本实验,谈谈用为什么动态规划算法里一般都会有至少一个数组,这个数组主要用来存储什么信息?
实验三、0/1背包问题程序设计
【实验目的】
1、巩固算法设计基本知识;
2、理解贪婪算法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个0/1背包问题的贪婪法计算/动态规划程序。
问题为一辆物流车在仓库装车,该车有体积的限制;不同货物的体积不同,价值不同,请设计程序帮助该车设计最佳装车方案。
要求:
程序能根据库存和来车的载货体积给出装车货物编号;
备注:
不考虑箱形货物的摆放问题(全假设为柔性货物)
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
【思考题】
结合本实验,谈谈如果仓库货物均比较重,而货车有体积和重量的双重限制,可以设计怎样的贪婪法解决方案?
实验四、反序排序的贪婪法程序设计
【实验目的】
1、巩固算法设计基本知识;
2、理解贪婪法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个反序排序思想演示程序
要求程序能形象地将反序排序过程输出。
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
【思考题】
实验五、两序列全局比对算法实现与改进
【实验目的】
1、巩固算法设计基本知识;
2、理解两序列全局比对算法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个两条序列进行全局比对的程序。
要求:
能根据外部输入进行序列全局比对并正确打印出比对结果;能方便修改打分函数。
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
实验六、两序列局部比对算法实现与改进
【实验目的】
1、巩固算法设计基本知识;
2、理解两序列局部比对算法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个两条序列进行全局比对的程序。
要求:
能根据外部输入进行序列局部比对并正确打印出比对结果;能方便修改打分函数。
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
实验七、系统聚类UPGMA算法实现与改进
【实验目的】
1、巩固算法设计基本知识;
2、理解系统聚类UPGMA算法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个采用系统聚类UPGMA算法进行聚类的程序。
要求:
根据距离矩阵进行系统聚类、打印出树状图。
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
非加权组平均法(UPGMA):
unweightedpair-groupmethodwitharithmeticmeans非加权组平均法是一种较常用的聚类分析方法,最早是用来解决分类问题的。
当用来重建系统发生树时,其假定的前提条件是:
在进化过程中,每一世系发生趋异的次数相同,即核苷酸或氨基酸的替换速率是均等且恒定的。
通过UPGMA法所产生的系统发生树可以说是物种树的简单体现,在每一次趋异发生后,从共祖节点到2个OTU间的支的长度一样。
因此,这种方法较多地用于物种树的重建。
UPGMA法在算法上较简单。
聚类时,首先将距离最小的2个OTU聚在一起,并形成一个新的OTU,其分支点位于2个OTU间距离的1/2处;然后计算新的OTU与其它OTU间的平均距离,再找出其中的最小2个OTU进行聚类;如此反复,直到所有的OTU都聚到一起,最终得到一个完整的系统发生树。
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)
实验八、吉布斯抽样算法实现与改进
【实验目的】
1、巩固算法设计基本知识;
2、理解吉布斯抽样算法基本思想。
【实验器材】
计算机、VC++6.0或自选集成编程环境。
【实验内容】
编写一个采用吉布斯抽样算法进行模式序列发现的程序。
要求:
根据多条输入序列和规定长度,找出合适的模式序列。
【所需设备】
个人计算机:
1台;
【实验记录】
算法设计思想与代码
程序执行记录:
结论:
心得与思考(出现什么问题及如何解决):
【实验报告】
按实验报告格式要求撰写实验报告(见实验报告模板)