当前位置:文档之家› AI实验四实验报告课件

AI实验四实验报告课件

AI实验四实验报告课件
AI实验四实验报告课件

实验四博弈搜索

(3 学时)

班级:计科041 班姓名:陆宇海学号:0407100232

一实验目的

熟悉和掌握博弈(对抗)搜索基本思想和实现关键技术,使用Python 语言实现通用的极大极小算法与Alpha-Beta剪枝算法,并进行实验验证。

二实验原理

博弈是人工智能取得巨大成功的领域,著名的有深蓝系统等。所有的计算机博弈程序(或系统)的基础

Alpha-Beta剪枝算法,即在极大极小算法基础再进行剪枝。熟练掌握该两种算法,能够解决博弈领域的大部分问题(当然可能需要大型数据库的支撑)。

三实验条件

1 Python解释器,及IDLE等程序开发调试环境。

2 本实验所提供的几个Python文件,请解压文件gameproject.rar.

四实验内容

1 MiniMax算法实现

2 AlphaBeta剪枝算法实现

3 应用于一字棋游戏(TicTacToe,) 进行算法测试

4 应用于抓三堆游戏(Nim),进行算法测试

五实验步骤

1 一字棋游戏的搜索问题形式化

import tictactoe

你先试着和一字棋随机Agent(它只会随机乱走,碰运气)对弈一局

import games

import gameagents

games.runGame(initialTTTState, {"X" : gameagents.HumanGameAgent(),

"O" : gameagents.RandomGameAgent()},

False, False)

#输出结果为:

-------------

2 | | | |

-------------

1 | | | |

-------------

0 | | | |

-------------

0 1 2

Your move? 0,0

Opponent's move was (1, 1)

-------------

2 | | | |

-------------

1 | | O | |

-------------

0 | X | | |

-------------

0 1 2

Your move? 0,1

Opponent's move was (2, 0)

-------------

-------------

1 | X | O | |

-------------

0 | X | | O |

-------------

0 1 2

Your move? 0,2

-------------

2 | X | | |

-------------

1 | X | O | |

-------------

0 | X | | O |

-------------

0 1 2

Game finished with utilities {'X': 1, 'O': -1}

{'X': 1, 'O': -1}

#由于智能体的行棋策略是随机的,故人可以毫不费力地战胜它

2 实现一个简单的Agent,它会抢先占据中心位置,但是之后只会按照格子的顺序下子(其实不能算是智能体),试着和它玩一局:

把步骤1的语句中的RandomGameAgen替t()换成SimpleTTTGameAgen即t()可。

输出结果为:

-------------

2 | | | |

-------------

1 | | | |

-------------

0 | | | |

-------------

0 1 2

Opponent's move was (1, 1) -------------

2 | | | |

-------------

1 | | O | |

-------------

0 | | | X |

-------------

0 1 2

Your move? 2,2

Opponent's move was (0, 0) -------------

2 | | | X |

-------------

1 | | O | |

-------------

0 | O | | X |

-------------

0 1 2

Your move? 0,2

Opponent's move was (1, 0) -------------

2 | X | | X |

-------------

1 | | O | |

-------------

0 | O | O | X |

-------------

0 1 2

Your move? 0,1

Opponent's move was (2, 1) -------------

-------------

1 | X | O | O |

-------------

0 | O | O | X |

-------------

0 1 2

Your move? 1,2

-------------

2 | X | X | X |

-------------

1 | X | O | O |

-------------

0 | O | O | X |

-------------

0 1 2

Game finished with utilities {'X': 1, 'O': -1}

#在以上的下棋步骤中,我有意让棋,才得以观察到智能体的下棋顺序:先下中间的格(1,1),若(1,1)#已被占据,则沿着从第0 行到第 2 行,每行从第0 列到第 2 列的规律探索可下棋的格子

然后再让随机Agent和SimpleAgen两t 个所谓的智能体对弈:

把步骤1的语句中的HumanGameAgen替t()换成SimpleTTTGameAgen即t()可。

#输出结果为:

#回合1:

-------------

2 | X | O | X |

-------------

1 | X | O | X |

-------------

0 | O | X | O |

-------------

0 1 2

Game finished with utilities {'X': 0, 'O': 0}

#双方平局

#回合2:

-------------

2 | X | X | X |

-------------

1 | X | O | O |

-------------

0 | O | O | X |

-------------

0 1 2

Game finished with utilities {'X': 1, 'O': -1}

#随机智能体(RandomGameAge)nt获胜

#回合3:

-------------

2 | O | X | |

-------------

1 | X | O | X |

-------------

0 | X | O | O |

-------------

0 1 2

Game finished with utilities {'X': -1, 'O': 1}

#固定方式智能体(SimpleTTTGameAge)n t获胜

#经以上三次对弈,可以看出由于这两种智能体在下棋时都不考虑效用,而在无目的地下棋,故两者对弈

3 实现极大极小算法

#极大极小算法是封装在一个名叫Minimax的类里:

class Minimax(GameTreeSearcher):

def getBestActionAndValue(self, currentState):

#通过此函数获得最优行动方案

self.player = currentState.currentPlayer()

#获取当前的玩家(“O”或“X”)

return self.maximin(currentState)

#返回最优行动和此行动的最终效用值

def maximin(self, currentState):

#轮到Max先生行棋时的最优行动计算函数

utility = currentState.utility()

#返回针对Max先生的当前棋盘的效用值

if utility: return None, utility[self.player]

#若棋局已结束,则直接返回Max先生的最终效用值

bestAction = None

#初始化最优行动

bestValue = -9999.0#负无穷

#初始化当前行棋的最终效用值

#检索所有合法的行棋

val = self.minimax(succ)[1]

#将每一种合法行棋所产生的棋局交给Min先生,并获得他的最优行棋效用值

if val > bestValue:

bestAction, bestValue = action, val

#找出Min先生针对Max先生的不同棋局所产生的最优行动和最优(最大——针对Max

#先生来说)效用值

return bestAction, bestValue

#返回Max先生的最优行动和此行动的最终效用值

def minimax(self, currentState):

utility = currentState.utility()

if utility: return None, utility[self.player]

bestAction = None

bestValue = 9999.0#正无穷

for (action, succ) in currentState.successors():

val = self.maximin(succ)[1]

if val < bestValue:

bestAction, bestValue = action, val

return bestAction, bestValue

#此函数是针对Min先生行棋时的最优行动计算函数,由于它和上面的maxmini函数是对称的,故不

让极大极小智能体和SimpleAgen对t 弈:

minimaxAgent = gameagents.UtilityDirectedGameAgent(gameagents.Minimax())

games.runGame(initialTTTState, {"X" : minimaxAgent,

"O" : gameagents.SimpleTTTGameAgent()},

True, True)

注意,极大极小算法可能在开局考虑会耗时数分钟,请耐心等待(或者你让SimpleAgen先t走,这样会快些)

#输出结果:

-------------

2 | | | |

-------------

1 | | | |

-------------

0 | | | |

-------------

0 1 2

Got state value 0 with best action (0, 0)

Player X agent returned action (0, 0)

actions called 294778 times and successor called 549945 times in 23.2628102175 seconds

-------------

2 | | | |

-------------

1 | | | |

-------------

0 | X | | |

-------------

0 1 2

Player O agent returned action (1, 1)

-------------

1 | | O | |

-------------

0 | X | | |

-------------

0 1 2

Got state value 0 with best action (1, 0)

Player X agent returned action (1, 0)

actions called 3864 times and successor called 7331 times in 0.318435164246 seconds -------------

2 | | | |

-------------

1 | | O | |

-------------

0 | X | X | |

-------------

0 1 2

Player O agent returned action (2, 0)

actions called 0 times and successor called 0 times in 0.00385188620339 seconds

-------------

2 | | | |

-------------

1 | | O | |

-------------

0 | X | X | O |

-------------

0 1 2

Got state value 0 with best action (0, 2)

Player X agent returned action (0, 2)

-------------

1 | | O | |

-------------

0 | X | X | O |

-------------

0 1 2

Player O agent returned action (0, 1)

actions called 0 times and successor called 0 times in 0.00271906066268 seconds -------------

2 | X | | |

-------------

1 | O | O | |

-------------

0 | X | X | O |

-------------

0 1 2

Got state value 0 with best action (2, 1)

Player X agent returned action (2, 1)

actions called 8 times and successor called 13 times in 0.00692462310144 seconds -------------

2 | X | | |

-------------

1 | O | O | X |

-------------

0 | X | X | O |

-------------

0 1 2

Player O agent returned action (1, 2)

actions called 0 times and successor called 0 times in 0.00309676229813 seconds -------------

-------------

0 | X | X | O |

-------------

0 1 2

Got state value 0 with best action (2, 2)

Player X agent returned action (2, 2)

actions called 1 times and successor called 1 times in 0.00675309292114 seconds

-------------

2 | X | O | X |

-------------

1 | O | O | X |

-------------

0 | X | X | O |

-------------

0 1 2

Game finished with utilities {'X': 0, 'O': 0}

#结果有些出人意料,是平局,或许是极大极小智能体(minimaxAgen)t 正好踩在了固定方式智能体#(SimpleTTTGameAge)n t的行动路线上

你也可以和极大极小智能体对弈:

games.runGame(initialTTTState, {"X" : gameagents.HumanGameAgent(),

"O" : minimaxAgent },

True, True)

#输出结果为:

-------------

2 | | | |

-------------

1 | | | |

0 1 2

Your move? 1,1

Player X agent returned action (1, 1)

actions called 1 times and successor called 0 times in 10.2226939457 seconds

-------------

2 | | | |

-------------

1 | | X | |

-------------

0 | | | |

-------------

0 1 2

Got state value 0 with best action (0, 0)

Player O agent returned action (0, 0)

actions called 29633 times and successor called 55504 times in 2.45857560109 seconds -------------

2 | | | |

-------------

1 | | X | |

-------------

0 | O | | |

-------------

0 1 2

Opponent's move was (0, 0)

-------------

2 | | | |

-------------

1 | | X | |

-------------

0 | O | | |

-------------

Your move? 1,0

Player X agent returned action (1, 0)

actions called 1 times and successor called 0 times in 8.68631013159 seconds

-------------

2 | | | |

-------------

1 | | X | |

-------------

0 | O | X | |

-------------

0 1 2

Got state value 0 with best action (1, 2)

Player O agent returned action (1, 2)

actions called 582 times and successor called 1054 times in 0.0557467499361 seconds -------------

2 | | O | |

-------------

1 | | X | |

-------------

0 | O | X | |

-------------

0 1 2

Opponent's move was (1, 2)

-------------

2 | | O | |

-------------

1 | | X | |

-------------

0 | O | X | |

-------------

0 1 2

Your move? 0,2

Player X agent returned action (0, 2)

actions called 1 times and successor called 0 times in 17.3988976253 seconds

-------------

2 | X | O | |

-------------

1 | | X | |

-------------

0 | O | X | |

-------------

0 1 2

Got state value 0 with best action (2, 0)

Player O agent returned action (2, 0)

actions called 32 times and successor called 52 times in 0.0087340709506 seconds -------------

2 | X | O | |

-------------

1 | | X | |

-------------

0 | O | X | O |

-------------

0 1 2

Opponent's move was (2, 0)

-------------

2 | X | O | |

-------------

1 | | X | |

-------------

0 | O | X | O |

-------------

0 1 2

Player X agent returned action (0, 1)

actions called 1 times and successor called 0 times in 6.34426554213 seconds

-------------

2 | X | O | |

-------------

1 | X | X | |

-------------

0 | O | X | O |

-------------

0 1 2

Got state value 0 with best action (2, 1)

Player O agent returned action (2, 1)

actions called 3 times and successor called 4 times in 0.00612368331713 seconds -------------

2 | X | O | |

-------------

1 | X | X | O |

-------------

0 | O | X | O |

-------------

0 1 2

Opponent's move was (2, 1)

-------------

2 | X | O | |

-------------

1 | X | X | O |

-------------

0 | O | X | O |

-------------

0 1 2

Your move? 2,2

actions called 1 times and successor called 0 times in 9.0314******* seconds

-------------

2 | X | O | X |

-------------

1 | X | X | O |

-------------

0 | O | X | O |

-------------

0 1 2

Game finished with utilities {'X': 0, 'O': 0}

#极大极小智能体(minimaxAgen)t 的实力的确不容小觑,如果人不失误,那么最好的结局就是和智能体#平局

4 实现AlphaBeta剪枝算法

class AlphaBeta(GameTreeSearcher):

def getBestActionAndValue(self, currentState):

#此函数用于获得最优行旗和此行棋的效用值

self.player = currentState.currentPlayer()

#获取当前玩家

return self.maximin(currentState, -1, 1)

#返回针对当前棋局的最优行动和此行动的效用值

def maximin(self, currentState, alpha, beta):

#Max先生的行棋策略

utility = currentState.utility()

#如果棋局结束,则返回Max先生的效用值

bestAction = None

#初始化最优行棋

for (action, succ) in currentState.successors():

#穷举针对当前棋局的所有可能行棋

val = self.minimax(succ, alpha, beta)[1]

#将其中一种行棋后产生的棋局传给Min先生,并由他返回关于他行棋的最优效用值

if val > alpha:

bestAction, alpha = action, val

#如果Min先生返回的行棋效用大于当前的最低效用,则更新最优行棋与最低效用if alpha >= beta: break

#如果当前的最低效用值大于最高效用值(事实上是上层节点的最高效用值)时,将不考虑

#余下未判断的所有行棋可能(即剪枝)。这样做是因为上层节点(Min先生)的最高效用界#值只降不增,此层节点(Max先生)的最低效用界限值增不降,而上层节点(Min先生)#终是选择此层节点中效用最小的节点,若此层节点(Max先生)的最低效用界限值大于上

#节点(Min先生)的最高效用界限值,则此层节点(Max先生)的所有后继均无需考虑了return bestAction, alpha

#返回Max先生的最优行棋和行棋效用

def minimax(self, currentState, alpha, beta):

bestAction = None

for (action, succ) in currentState.successors():

val = self.maximin(succ, alpha, beta)[1]

if val < beta:

bestAction, beta = action, val

if alpha >= beta: break

return bestAction, beta

#此函数是针对Min先生行棋时的最优行棋策略函数,由于它和上面的maxmini函数是对称的,故不#再做过多的说明

如上你可以和AlphaBeta剪枝智能体对弈,也可以让它和极大极小智能体对应。

注意分析两者的运行效率。

#键入如下命令,使AlphaBeta剪枝智能体与极大极小智能体对弈:

alphaBetaAgent = gameagents.UtilityDirectedGameAgent(gameagents. AlphaBeta ())

minimaxAgent = gameagents.UtilityDirectedGameAgent(gameagents.Minimax())

games.runGame(initialTTTState, {"X" :, alphaBetaAgent

"O" : minimaxAgent },

True, True)

#输出结果:

-------------

2 | | | |

-------------

1 | | | |

0 1 2

Got state value 0 with best action (0, 0)

Player X agent returned action (0, 0)

actions called 10071 times and successor called 22873 times in 0.892922424498 seconds -------------

2 | | | |

-------------

1 | | | |

-------------

0 | X | | |

-------------

0 1 2

Got state value 0 with best action (1, 1)

Player O agent returned action (1, 1)

actions called 31973 times and successor called 59704 times in 2.74003064635 seconds -------------

2 | | | |

-------------

1 | | O | |

-------------

0 | X | | |

-------------

0 1 2

Got state value 0 with best action (1, 0)

Player X agent returned action (1, 0)

actions called 441 times and successor called 1055 times in 0.0480130854612 seconds -------------

2 | | | |

生理学实验报告教案

生医2012秋生理学实验报告 指导教师: 实验员: 学号: 联系方式:

实验一骨骼肌的观察及骨骼肌的单收缩与强直收缩 【目标要求】 1.掌握蛙类动物单毁髓的实验方法。 2.掌握坐骨神经-腓肠肌标本和坐骨神经干标本的制备方法。 3.学习肌肉收缩的记录方法。 4.观察与分析肌肉单收缩的三个时相,分析骨骼肌收缩形式与刺激频率之间的关系。 【基本原理】 蛙类动物的某些基本生命活动,如神经的生物电活动、肌肉收缩等与哺乳动物相似。其离体组织所需的生活条件比较简单,易于控制和掌握,而且动物来源丰富,因此在生理学实验中常用蟾蜍的坐骨神经—腓肠肌标本永和坐骨神经标本来观察组织的兴奋性、刺激与反应的规律以及骨骼肌收缩的特点等。 肌肉受到一次阈上刺激而产生的一次收缩为单收缩,其过程可分为三个时相,即潜伏期、缩短期与舒张期。肌肉收到连续的阈上刺激时,如果刺激间隔小于单收缩的时程,相邻两单收缩的时相会出现融合,表现为强直收缩现象。如果表现为每次收缩的开始发生在上次收缩的舒张期,称不完全强直收缩,如果表现为每次收缩的开始发生在上次收缩的缩短期,称完全强直收缩。躯体运动是以骨为杠杆,以关节为枢纽,由肌肉收缩产生动力完成的。 【材料与器械】 蟾蜍或蛙,蛙类手术器械(手术剪、手术镊、眼科剪、眼科镊、金冠剪、毁髓针、玻璃针、固定针),蛙板,玻璃板,锌铜弓,小烧杯,滴管,纱布,细棉线,任氏液。 BL-420生物机能实验系统(或其他生理记录仪),张力换能器。 【实验步骤】 1.双毁髓的方法 一手握蟾蜍,食指按压头部前端,拇指压住躯干背部,令其背部向上,头向前俯;另一手持毁髓针在左右耳后腺之间,背部的凹陷处将毁髓针垂直刺入,然后将针尖向前刺入颅腔,搅动以捣毁脑组织,此时的动物为单毁髓动物。彻底捣毁脊髓时,可见蟾蜍后肢突然蹬直,然后瘫软。如动物仍表现四肢肌肉紧张或活动自如,表明未毁坏脊髓,必须重新毁髓。 2.剥制后肢标本 将双毁髓的蟾蜍背面向上放在蛙板上,一手持手术镊轻轻提起两前肢之间背部的皮肤,另一手持手术剪横向剪开皮肤,暴露脊柱。用金冠剪横向剪断脊柱。一首持手术镊提起断开的脊柱后端,另一手用金冠剪沿脊柱两侧剪开体壁,再剪断下腹壁肌肉,使头部、前肢及内脏自然下垂,将其自腹后壁剪除。然后用蘸有任氏液的左手捏住断开的脊柱后端,右手向后方撕剥皮肤,将剥干净的后肢放入盛有任氏液的培养皿中。弃其头部、内脏及剥下的皮肤,清洗手及手术器械上的污物。 3.分离两后肢 左手托起去皮的标本,右手持金冠剪直接剪开耻骨联合,随后剪开两后肢相连的肌肉组

游戏人工智能实验报告记录四

游戏人工智能实验报告记录四

————————————————————————————————作者:————————————————————————————————日期:

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 Windows7系统 Microsoft Visual Studio2015 三、实验原理及过程 1)制作菜单 设置参数:点击会弹出对话框,设置一些参数,红、黑蚂蚁的家会在地图上标记出来 运行:设置好参数后点击运行,毒药、食物、水会在地图上随机显示 下一步:2只红蚂蚁和2只黑蚂蚁会随机出现在地图上,窗口右方还会出现红、黑蚂蚁当前数量的统计 不断按下一步,有限状态机就会不断运行,使蚁群产生变化 2)添加加速键

资源视图中下方 选择ID和键值

3)新建头文件def.h 在AntView.cpp中加入#include"def.h" 与本实验有关的数据大都是在这里定义的 int flag=0; #define kForage 1 #define kGoHome 2 #define kThirsty 3 #define kDead 4 #define kMaxEntities 200 class ai_Entity{ public: int type; int state; int row; int col; ai_Entity(); ~ai_Entity() {} void New (int theType,int theState,int theRow,int theCol); void Forage(); void GoHome(); void Thirsty(); void Dead();

山东大学数据库第四次实验实验报告

實驗4 視圖操作 實驗目の:掌握創建、刪除視圖のSQL語句の用法,掌握使用企業管理器創建、視圖の方法。 實驗准備: 1)了解創建視圖方法。 2)了解修改視圖のSQL 語句の語法格式。 實驗內容: 1)使用企業管理器創建視圖 a)在pubs數據庫中以authors表為基礎,建立一個名為CA_authorの視圖, 使用該視圖時,將顯示所有state為CAの作者の基本信息。 2)使用SQL語句創建視圖 a)在查詢分析器中利用author表建立一個每個作者のID,lname,fname, phone,addressの視圖S_author。 b)建立一個employee_date視圖,利用employee表中信息,顯示1991年 1月1日之後雇傭の雇員のid,name,minit,job_id。 3)刪除視圖 a)使用企業管理器S_author視圖 b)使用SQL語句刪除CA_author、employee_date視圖 實驗要求: 用不同の方法創建視圖。 實驗步驟如下: 一、使用企業管理器創建視圖 a )在pubs數據庫中以authors表為基礎,建立一個名為CA_author の視圖,使用該視圖時,將顯示所有state為CAの作者の基本信息。

①右鍵點擊pubs數據庫文件下の視圖,選擇“新建視圖”,在彈出來の“添加表”中添加表authors。 ②在“添加表”一欄中添加表authors後點擊“關閉”,並全選author表中所有項目。 ③點擊保存,從彈出來の“選擇名稱”框中輸入視圖名稱“CA_author”。

④添加名為CA_author の視圖成功。 ⑤顯示所有state為CAの作者の基本信息。

人工智能实验报告大全

人工智能实验报告大 全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034 目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5)

课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题

四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) { printf("Step %d:monkey从%c走到%c\n", ++i, x, y);//x表示猴子的位置,y为箱子的位置 } void Monkey_Move_Box(char x, char y) { printf("Step %d:monkey把箱子从%c运到%c\n", ++i, x, y);//x表示箱子的位置,y为香蕉的位置 } void Monkey_On_Box() { printf("Step %d:monkey爬上箱子\n", ++i); } void Monkey_Get_Banana() { printf("Step %d:monkey摘到香蕉\n", ++i); } void main() { unsigned char Monkey, Box, Banana; printf("********智能1501班**********\n"); printf("********06153034************\n"); printf("********刘少鹏**************\n"); printf("请用a b c来表示猴子箱子香蕉的位置\n"); printf("Monkey\tbox\tbanana\n"); scanf("%c", &Monkey); getchar(); printf("\t"); scanf("%c", &Box); getchar(); printf("\t\t"); scanf("%c", &Banana); getchar(); printf("\n操作步骤如下\n"); if (Monkey != Box) { Monkey_Go_Box(Monkey, Box); } if (Box != Banana)

生理学实验报告

生理学实验报告 实验题目: 蛙的体循环血压、心肌收缩和心电图(ECG)的同步记录与分析 课程名称:生理学实验 专业:10级生物技术及应用(基地班) 教室:A414 学生姓名:徐棒夏凡女 学号:10350083 10350081 指导老师:龙天澄张碧鱼陈笑霞 日期:2012年5月15日 一.实验目的 1.学习并掌握蛙的体循环血压、心肌收缩和心电图(ECG)的同步记录 2.记录和分析植物神经系统和重要神经递质对血压、心电(心肌的电生理特性)和心搏(心肌的收缩特性)的影响。 二.动物与器械 青蛙;蛙心插管、常用手术器械、计算机采集系统、蛙心夹、YP100压力换能器、三通管、注射器、保护电极、露丝电极、一维位移微调器、固定针、蜡盘、培养皿、污物缸、棉线、纱布、滴管、小烧杯;任氏液、石蜡油、肾上腺素溶液、乙酰胆碱溶液、肝素溶液;

三.实验原理 神经与体液因素对心血管功能的调节可通过心肌收缩力、心电图和血压的变化反映出来。尤其是血压的指标直接反映了心输出量和外周阻力的变化,可以较好的评价整体的心血管功能。 本实验用青蛙主动脉插管法,直接测量血压,并同步记录心搏和心电图。记录和分析植物神经系统和重要神经递质对血压、心电(心肌的电生理特性)和心搏(心肌的收缩特性)的影响。 四.实验步骤 1. 分离迷走交感混合神经干 按常规方法用探针刺毁蟾蜍的脑和脊髓,将动物背位放在蛙板上。把左侧下颌角与前肢间的皮肤纵向剪开,用镊子紧贴下颌角分离皮下组织。找到体轴走向的提肩胛肌,小心地将提肩胛肌横向剪断,即可见到其下方的血管神经束(皮动脉,颈静脉和迷走-交感混合干)。在迷走—交感混合干下方穿一线,用玻璃分针分离开神经,用湿生理棉球暂将神经覆盖,以避免神经干燥。 2. 暴露心脏 在胸骨柄后方的皮肤上先剪开一小的切口,再自切口处向左右两侧锁骨外侧方向剪开皮肤,切口成V形,把切开的皮肤掀向头端。在胸骨柄后方的腹肌上也剪一小切口,沿身体正中方向剪开剑突和胸骨(剪子尖向上翘以免损伤血管和心脏),剪断左右乌喙骨和锁骨及提臂肌,使胸部创口也呈V形。可见到心包和心脏。用眼科剪剪开心包膜,在心脏舒张时夹上蛙心夹。蛙心夹拴线的另一端与张力换能器相连(换能器的输出端与生理信号采集处理系统的一个输入通道相连)。 3. 主动脉插管 YP100压力换能器的直端和侧端管上加装三通管。从侧管注入液体石蜡,将系统内气泡赶净。用装有50%柠檬酸钠溶液(肝素-任氏液)的注射器连接于侧端管上,直端管上连接心脏插管。 用线结扎动脉的远心端,在左主动脉分叉处穿线备用。用手术剪在结扎处与穿线处剪一V形口,将插管经V形口插入动脉圆锥适当深度。穿线结扎并固定于插管上。

游戏人工智能实验报告四

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 Windows7系统 Microsoft Visual Studio2015 三、实验原理及过程 1)制作菜单 设置参数:点击会弹出对话框,设置一些参数,红、黑蚂蚁的家会在地图上标记出来 运行:设置好参数后点击运行,毒药、食物、水会在地图上随机显示 下一步:2只红蚂蚁和2只黑蚂蚁会随机出现在地图上,窗口右方还会出现红、黑蚂蚁当前数量的统计 不断按下一步,有限状态机就会不断运行,使蚁群产生变化 2)添加加速键 资源视图中 下方

选择ID和键值 3)新建头文件def.h 在AntView.cpp中加入#include"def.h" 与本实验有关的数据大都是在这里定义的 int flag=0; #define kForage 1 #define kGoHome 2 #define kThirsty 3 #define kDead 4 #define kMaxEntities 200 class ai_Entity{ public: int type; int state; int row; int col; ai_Entity(); ~ai_Entity() {} void New (int theType,int theState,int theRow,int theCol); void Forage(); void GoHome(); void Thirsty(); void Dead(); }; ai_Entity entityList[kMaxEntities]; #define kRedAnt 1 #define kBlackAnt 2

生理学实验报告一

生理学实验报告 一、实验题目: 1.实验员:马冰(0941054) 2.时间:2011年10月10日 3.组号:第二组 4.班级:09生科 二、实验目的 1.熟悉并掌握生物信号采集处理系统 2.掌握蛙类坐骨神经腓肠肌标本和坐骨神经干标本的制备技术 3.观察不同刺激强度、刺激频率对骨骼肌收缩形式的影响 4.观察电刺激对神经兴奋性、兴奋传导的影响 5.熟悉阈强度、最适刺激强度及单收缩、完全强直收缩之间的关系 三、实验原理 兴奋性:可兴奋组织对外界刺激发生反应的能力(或细胞受刺激时产生动作电位的能力)。 兴奋:也就是动作电位,指可兴奋细胞受阈刺激或阈上刺激时,细胞在静息电位的基础上发生一次迅速的、短暂的并可扩布的电位变化。 阈强度:在刺激持续时间和刺激强度-时间变化率固定时,引起可兴奋细胞产生动作电位的最小刺激强度,也叫阈值或阈刺激。 阈刺激或阈上刺激产生动作电位,其特点:①“全或无”现象;②进行长距离无衰减传递(神经纤维、骨骼肌细胞等)。 阈下刺激引起局部电兴奋,其特点:①幅度在阈下刺激的范围内,随刺激强度的增大而升高;②在细胞膜上可进行电紧张性扩布,即衰减性传播;③可以相互融合(时间总和、空间总和)。 最适刺激强度:引起肌肉产生最大收缩时的最小刺激强度。 单收缩:肌肉受到一次短促的刺激时,会产生一次机械性收缩和舒张的过程。 兴奋性作为三大基本生命现象(新陈代谢、兴奋性、生殖)具有重要的生理意义。那么,什么叫兴奋性呢?它是指可兴奋组织对外界刺激发生反应的能力。所有可兴奋组织产生兴奋

(也就是动作电位)都必须有一个条件:刺激。 刺激包括三方面的内容:刺激强度、刺激时间、刺激强度-时间变化率。其中,刺激强度就是电刺激的脉冲电压,刺激时间就是某个单刺激所持续的时间。 刺激强度对骨骼肌收缩形式的影响(固定刺激的时间和刺激强度-时间变化率):单根神经纤维或肌纤维对刺激的反应是“全或无”式的。但在神经纤维肌肉标本中,则表现为当刺激强度很小时(阈下刺激),不能引起神经纤维动作电位的产生和肌肉的收缩;当刺激强度在一定范围内变动时,肌肉收缩的幅度与之成正比。因为坐骨神经干中含有数千万条粗细不等的神经纤维,其兴奋性各不相同。弱刺激只能使其中少量兴奋性高的神经纤维先兴奋,并引起它所支配的少量肌纤维收缩。随着刺激强度逐渐增大,发生兴奋的神经纤维数目逐渐增多,其所引起收缩的肌纤维数目亦增多,结果肌肉收缩幅度随刺激强度的增加而增强。当刺激达到某一强度时,神经干中全部神经纤维兴奋,它们所支配的全部肌纤维也都发生兴奋和收缩,从而引起肌肉的最大收缩。此后,若再增加刺激强度,肌肉收缩幅度将不再增加。我们把引起肌肉产生最大收缩时的最小刺激强度叫最适刺激强度。 刺激频率对骨骼肌收缩形式的影响(把刺激强度固定在最适刺激强度,把单刺激改为连续单刺激):刺激频率就是单位时间内连续刺激的次数。随着刺激频率的增高,肌肉的反应依次表现为单收缩、不完全强直收缩和完全强直收缩: ⑴如果刺激频率很小时,每相邻两个刺激的间隔时间很大,当其大于肌肉收缩的收缩期和舒张期之和时,肌肉表现为一个个的单收缩。单收缩包括收缩期及舒张期。前者占时较后者为短。 ⑵当逐渐增加刺激频率,使新的刺激引起的肌肉收缩落在前一个刺激引起肌肉收缩的舒张期,这样,肌肉在连续未完全舒张的基础上就开始新的收缩,形成锯齿样的不完全强直收缩张力曲线。 ⑶当刺激频率继续增大时,新的刺激引起肌肉收缩落在前一次刺激引起肌肉收缩的收缩期,这样,肌肉在连续收缩不全的基础上出现新的收缩,形成一个类似方波的完全强直收缩张力曲线。 四、实验方法和步骤 (见生理学实验指导P36,P40,P44) 五、实验对象 蟾蜍

人工智能实验报告大全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034

目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5) 课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题 四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) {

人工智能实验报告

实验报告 1.对CLIPS和其运行及推理机制进行介绍 CLIPS是一个基于前向推理语言,用标准C语言编写。它具有高移植性、高扩展性、 强大的知识表达能力和编程方式以及低成本等特点。 CLIPS由两部分组成:知识库、推理机。它的基本语法是: (defmodule< module-n ame >[< comme nt >]) CLIPS的基本结构: (1).知识库由事实库(初始事实+初始对象实例)和规则库组成。 事实库: 表示已知的数据或信息,用deftemplat,deffact定义初始事实表FACTLIS,由关系名、后跟 零个或多个槽以及它们的相关值组成,其格式如下: 模板: (deftemplate [] *) :: = | 事实: (deffacts [] *) 当CLIPS系统启动推理时,会把所有用deffact定义的事实自动添加到工作存储器中。常用命令如下:asser:把事实添加到事实库(工作存储器)中retract:删除指定事实 modify :修改自定义模板事实的槽值duplicate :复制事实 clear:删除所有事实 规则库 表示系统推理的有关知识,用defrule命令来定义,由规则头、后跟零个或多个条件元素以 及行为列表组成,其格式如下: (defrule [] * ; =>

病理生理实验报告

实验一组织晶体渗透压改变在水肿发生中 的作用(水肿) 实验目的:通过实验了解组织晶体渗透压的改变在水肿发生中的意义,加深对水肿发生机理的理解。 实验动物:蟾蜍2只,要求体重、大小相仿。 器材与药品: 200克电子天平1台,盛水玻璃缸2个,2m1注射器连4号针头2支,脱脂棉球、纱布块适量。%氯化钠液和20%氯化钠液各10ml。 实验方法: 1. 取蟾蜍2只分别称重,注意观察背部外形。 2. 向一只蟾蜍背部淋巴囊内注入0.65%氯化钠液(即蛙生理盐水)2 m1,向另一只蟾蜍背部淋巴囊内注入20%氯化钠液2ml(蟾蜍皮下淋巴囊分布见图2-1),然后分别放入装有水的玻璃缸内。 3.1小时后由水中取出蟾蜍,擦掉体表浮水后分别称重,同时仔细观察背部外形改变。 4. 解剖蟾蜍:由椎骨孔破坏神经系统。重点观察背部淋巴囊的变化。解剖观察其它脏器和解剖结构。 实验结果:将观测到的各种实验结果记入下表内 注前体重注前背部外 形注后体重注后背部外 形 注%氯化钠正常平坦正常平坦注20%氯化正常平坦变肥

钠 结果分析:实验中这两只蟾蜍分别注射了不同浓度的氯化钠溶液,组织晶体渗透压升高,两只都有一定的吸水能力,注射低浓度氯化钠溶液的青蛙吸水较少,体重只有轻微的增长,体型无明显变化;注射高浓度氯化钠溶液的青蛙吸水较多,体重有大幅度的增长,体型出现明显变化。结果表明晶体在体内的浓度越高,吸水性越强。 心得:

实验二缺氧 实验目的:通过复制外呼吸性缺氧、血液性缺氧及组织中毒性缺氧的动物模型。 实验动物:成年小白鼠4只. 器材与药品: 1.外呼吸性缺氧:带有橡皮塞的250毫升广口瓶1只(见图3—1),搪瓷盘1只、镊子、剪子各2把,100g电子天平1台。钠石灰10g,凡士林1瓶。 2.血液性缺氧:带有管道瓶塞的250m1广口瓶和三角烧瓶各2只,酒精灯1盏,三角架3个,充满一氧化碳的皮球胆1只,弹簧夹4个,lml注射器1支。甲酸、浓硫酸各300ml,2%亚硝酸钠溶液10ml 3.组织中毒性缺氧:1 m1注射器1支。%氰化钾溶液。 实验方法: 一、外呼吸性缺氧 1.取小白鼠重只称重后放入广口瓶内,瓶内预先加入钠石灰5g。观察动物一般状况,如呼吸频率、呼吸状态,皮肤、粘膜色彩、精神状态等。 2.旋紧瓶塞,用弹簧夹夹闭通气胶管,防止漏气。记录时间,观察上述各项指标的变化,直至动物死亡。待本次实验内容全部完成之后,一起剖检动物,对比观察血液颜色的改变和其它变化(以下皆同)。 二、血液性缺氧 (一)一氧化碳中毒

人工智能遗传算法实验报告

人工智能实验报告 学号: 姓名: 实验名称:遗传算法 实验日期:2016.1.5

【实验名称】遗传算法 【实验目的】 掌握遗传算法的基本原理,熟悉遗传算法的运行机制,学会用遗传算法来求解问题。 【实验原理】 遗传算法( Genetic Algorithm )是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来 越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学 的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 遗传算法程度流程图为:

【实验名称】遗传算法 【实验目的】 掌握遗传算法的基本原理,熟悉遗传算法的运行机制,学会用遗传算法来求解问题。 【实验原理】 遗传算法( Genetic Algorithm )是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来 越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学 的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 遗传算法程度流程图为:

数据库实验报告4

数据库-实验报告4 学号:11122604 姓名:陆亮 第4周(第四章:数据更新、视图、嵌入式SQL部分自学) 一、实验课: 1.建立计算机学院总评不及格成绩学生的视图,包括学生学号、姓名、性别、手机、所选 课程和成绩。 2.在E表中插入记录,把每个学生没学过的课程都插入到E表中,使得每个学生都选修每 门课。 3.求年龄大于所有女同学年龄的男学生姓名和年龄。 4.在E表中修改08305001课程的平时成绩,若成绩小于等于75分时提高5%,若成绩大于 75分时提高4%。 5.删除没有开课的学院。//删除记录而不是表。删除表要用其他。 6.查询优、良、中、及格、不及格学生人数 二,代码: create view student_fail(xh,xm,xb,sjhm,kh,zpcj)as(select distinct S.xh,S.xm,S.xb,S.sjhm,E.kh,E.zpcj from S,E where S.xh=E.xh and E.zpcj<'60'); insert into E select distinct S.xh,O.xq,O.kh,O.gh ,null,null,null from S,O where not exists(select*from E where E.xh =S.xh and E.kh =O.kh ); select S.xm,S.csrq from S where S.csrq<(select min(csrq)from S group by S.xb having xb ='女') update E set pscj = pscj*1.04 where pscj>75; update E set pscj = pscj*1.05 where pscj<75; delete from D where yxh not in(select yxh from T ,O where T.gh = O.gh)

生理学呼吸运动调节实验报告范文

生理学-呼吸运动调节实验报告范文 实验且的: 学习呼吸运动的记录方法,观察缺氧、二氧化碳和血中酸性物质增多对呼吸运动的影响。 实验原理: 肺的通气是由呼吸肌的节律性收缩来完成的,而呼吸运动是由于呼吸中枢不断地发放节律性冲动所致。呼吸中枢的紧张性活动,随着机体代谢需要,受许多因素影响。 本实验是向家兔气管插管,使呼出气的一部分经换能器连于记录仪记录呼吸运动,切断迷走神经和施给各种因素,观察呼吸曲线的变化。 实验对象:兔 实验器材和药品:哺乳类动物手术器械一套、兔手术台、气管插管、5 ml注射器一只、50 cm长的橡皮管一条、球胆二只、机械—电换能器及生理记录仪、刺激器。20%氨基甲酸乙酯溶液、3%乳酸溶液、CO2气体、钠石灰、生理盐水、纱布及线等。 实验步骤和观察项目 一、由兔耳缘静脉缓慢注入20%氨基甲酯乙酯(1g/kg),待动物麻醉后,仰卧固定于手术台上。沿颈部正中切开皮肤,分离气管并插入气管插管。分离出颈部两侧迷走神经,穿线备用。 二、记录呼吸运动插入的气管插管的主管接机械—电换能器,输入到生理记录仪,侧管暴露于大气。通过改变侧管的口径,

使主管的输入信号适宜。 三、观察项目 (一)正常呼吸曲线 (二)增加吸入气中的CO2浓度:将装有CO2的球胆通过一细塑料或玻璃管插入气管插管的侧管,松开球胆的夹子,使部分CO2随吸气进入气管。气体流速不宜过急,以免明显影响呼吸运动。此时观察高浓度CO2对呼吸运动的影响。去掉球胆,观察呼吸恢复正常的过程。 (三)缺氧:将一空球胆吸进少量空气,中间经一钠石灰瓶连至气管插管的侧管,让动物呼吸球胆内的少量空气。观察此时呼吸运动有何变化?去掉上述条件,观察呼吸恢复正常的过程。 (四)增大无效腔:将50 cm长的橡皮管连接于气管插管的侧管上,观察此时呼吸运动的变化。变化明显后,去掉橡皮管,观察呼吸恢复过程。 (五)血液中酸性物质增多时的效应:用5ml注射器,由耳缘静脉较快地注入3%乳酸2 ml,观察此时呼吸运动的变化及恢复过程。 (六)迷走神经在呼吸运动中的作用:先切断一侧迷走神经,观察呼吸运动有何变化。再切断另一侧迷走神经,观察呼吸运动又有何变化。在此基础上,观察对一侧迷走神经向中端低频,较弱的电刺激所至的呼吸运动的变化。 注意事项 一、手术过程中,应避免伤及主要血管(如:颈总动脉、颈

数据库实验三实验报告

数据库___课程实验报告实验名称:交互式SQL(二) 姓名班级学号 实验台 编号 同组学生 实验课表现出勤、表现得分25% 实验报告 得分50% 实验总分操作结果得分25% 实验目的: 1.学会熟练使用INSERT语句对数据表进行数据插入操作。 2.学会使用UPDATE语句对数据表中的数据进行修改操作。 3.学会使用DELETE语句对数据表中的数据进行删除操作。 4.了解使用视图的目的与好处,掌握视图与基本表的关系,掌握如何使用SQL语句创建、修改、删除和查询视图。 实验内容: 一、数据的插入、删除和修改 创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子句向表XS1中插入多行数据(专业为“电子”的学生数据)。 create view xs1() as select学号,姓名,性别,出生日期from xs where专业='电子'; 修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。 alter table xs1 add平均成绩int; update xs1 set平均成绩=( select avg(成绩)from xs_kc where xs_kc.学号=xs1.学号group by学号); 将XS表中计算机专业的学生的总学分增加10分。 update xs set总学分=总学分+10 where专业='计算机'; 将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。 update xs set总学分=总学分+4,备注='提前修完一门课程' where学号='4102101'; 将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。 update xs_kc set成绩=成绩+10 where学号='4102101'and课程号= (select课程号from kc where kc.课程名='计算机基础'); 修改XS1表的结构,增加1个“总学分”字段,并使其值为该学生所学各门功课的学分之和。 alter table xs1 add总学分tinyint; update xs1 set总学分= (select sum(学分)from kc,xs_kc where xs_kc.学号=xs1.学号and xs_kc.课程号= kc.课程号

生理学实验报告

生理学实验报告 坐骨神经-腓肠肌标本的制备 一、实验目的及要求 学习蛙类动物双毁髓的方法 掌握制备坐骨神经-腓肠肌标本的操作技术,为此后有关的神经肌肉实验打下基础。 二、实验原理 蛙或两栖类动物的一些基本生命活动及生理功能与温血动物近似,而且其离体组织需要的生活条件非常简单,易于控制和掌握。因

此在生理学实验中,坐骨神经-腓肠肌标本是研究神经肌肉生理最常用的对象,经常用来研究神经肌肉的兴奋性、刺激与反应的规律、肌肉收缩的特点、兴奋性的周期性变化等。 三、实验对象 蟾蜍或蛙。 四、实验器材及药品 蛙类手术器械一套(金属探针1根,粗剪刀、眼科剪刀各1把,圆头镊子、眼科镊子各1把,玻璃分针2根),蛙板和玻璃板各1块,培养皿,滴管,废物缸、锌铜弓,丝线,棉花;任氏液。 五、实验方法及步骤 1、双毁髓:左手握蟾蜍,背部向上。用食指按压其头部前端,拇指压住躯干的背部,使头向前俯;右手持毁髓针,由两眼之间中线向后方划触,触及两耳后腺之间的凹陷处即是枕骨大孔的位置。将毁髓针由凹陷处垂直刺入枕骨大孔,然后针尖向前刺入颅腔,在颅腔内搅动,以毁脑组织。再将毁髓针退至枕骨大孔,针尖转向后方,与脊柱平行刺入椎管,以捣毁脊髓。脊髓彻底捣毁时,可看到蟾蜍后肢突然蹬直,然后瘫软,此时的动物为双毁髓动物。 2、剥制后肢标本:左手持手术镊提起两前肢之间背部的皮肤,右手持手术剪横向剪断皮肤,然后往后肢方向撕剥皮肤。剪开腹壁肌肉,用手术镊提起内脏,翻向头部,在看清支配后肢的脊神经发出部位后,于其前方剪断脊柱。 3、分离两后肢:将去皮的后肢腹面向上置于解剖盘上,右手持

金冠剪纵向剪开脊柱,再剪开耻骨联合,使两后肢完全分离。 4、分离坐骨神经:将一侧后肢的脊柱端腹面向上,用玻璃分针沿脊神经向后分离坐骨神经,股部沿腓肠肌正前方的股二头肌和半膜肌之间的裂缝,找出坐骨神经,剪断盖在上方的梨状肌,完全暴露坐骨神经,剪去支配腓肠肌之外的分支,再剪去脊柱及肌肉,只保留坐骨神经发出部位的一小块脊柱骨。 5、分离股骨头:沿膝关节剪去股骨周围的肌肉,保留股骨的后2/3,剪断股骨。 6、游离腓肠肌:在腓肠肌跟腱下穿线并结扎,提起结扎线,剪断肌腱与胫腓骨的联系,游离腓肠肌,剪去膝关节下部的后肢,保留腓肠肌与股骨的联系,制备出完整的坐骨神经-腓肠肌标本。标本应包括:坐骨神经、腓肠肌、股骨头和一段脊柱骨四部分。 7、检验标本:用任氏液沾湿的锌铜弓的两极接触神经,如腓肠肌发生收缩,则标本机能正常,把标本固定在肌槽上。 8、连接好装置,调节适宜的灵敏度及刺激强度,开动记录仪,走纸速度为10mm/s,用手控触发开关,以单脉冲刺激神经,记录肌肉的单收缩曲线。 9、分别用1 Hz、2 Hz、3 Hz、4 Hz、6 Hz、12 Hz、24 Hz、30Hz 等频率去刺激坐骨神经,记录肌肉的收缩曲线。 六、分析及讨论 七、思考题 ?1.剥去皮肤的后肢,能用自来水冲洗吗?为什么?

人工智能实验报告

人工智能课程项目报告 姓名: 班级:二班

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体0~9 三、实验原理 用K-最近邻算法对数据进行分类。逻辑回归算法(仅分类0和1)四、实验内容 使用knn算法: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3.使用knnClassify()进行测试 4.依据k的值,得出结果 使用逻辑回归: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3. 使用上式求参数。步长0.07,迭代10次 4.使用参数以及逻辑回归函数对测试数据处理,根据结果判断测试数 据类型。 五、实验结果与分析 5.1 实验环境与工具 Window7旗舰版+ python2.7.10 + numpy(库)+ notepad++(编辑)

Python这一语言的发展是非常迅速的,既然他支持在window下运行就不必去搞虚拟机。 5.2 实验数据集与参数设置 Knn算法: 训练数据1934个,测试数据有946个。

数据包括数字0-9的手写体。每个数字大约有200个样本。 每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下图所 示 建立一个kNN.py脚本文件,文件里面包含三个函数,一个用来生成将每个样本的txt文件转换为对应的一个向量:img2vector(filename):,一个用 来加载整个数据库loadDataSet():,最后就是实现测试。

数据库原理实验报告-实验四-视图与索引

《数据库原理》实验报告 题目:实验四视图与索引学号班级日期 2016.10.20 一、实验内容、步骤以及结果 1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。 --第一种方法 CREATEVIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ WHERE jno=( SELECT jno FROM J WHERE jname ='' ); GO --删除建好的视图 DROPVIEW V_SPJ;

GO --第二种方法 CREATEVIEW V_SPJ AS SELECT sno,pno,qty FROM SPJ,J WHERE J.jno=SPJ.jno AND J.jname=''; 3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。 11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码 (PNO)、供应数量(QTY)。 针对该视图VSP完成下列查询: (1)找出三建工程项目使用的各种零件代码及其数量。 (2)找出供应商S1的供应情况。

4.用SQL语句完成视图的数据更新。(15分,每题5分) (1)给视图V_SPJ中增加一条数据。 提示: -SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。 -SPJ表中JNO不能为空时,可以使用instead of触发器实现。 (2)修改视图V_SPJ中的任意一条数据的供应数量。

生理学实验报告

生理学实验报告

实验一坐骨神经-腓肠肌标本制备 [1] 实验目的 1.学习机能学实验基本的组织分离技术; 2.学习和掌握制备蛙类坐骨神经-腓肠肌标本的方法; 3.了解刺激的种类。 [2] 实验原理 蛙类的一些基本生命活动和生理功能与恒温动物相似,若将蛙的神经-肌肉标本放在任氏液中,其兴奋性在几个小时内可保持不变。若给神经或肌肉一次适宜刺激,可在神经和肌肉上产生一个动作电位,肉眼可看到肌肉收缩和舒张一次,表明神经和肌肉产生了一次兴奋。在机能学实验中常利用蛙的坐骨神经-腓肠肌标本研究神经、肌肉的兴奋、兴奋性,刺激与反应的规律和肌肉收缩的特征等,制备坐骨神经腓肠肌标本是机能学实验的一项基本操作技术。 [3] 实验对象 蛙 [4] 实验药品 任氏液 [5] 仪器与器械 普通剪刀、手术剪、眼科镊(或尖头无齿镊)、金属探针(解剖针)、玻璃分针、蛙板(或玻璃板)、蛙钉、细线、培养皿、滴管、电子刺激器。 [6] 实验方法与步骤 ①破坏脑、脊髓 取蛙一只,用自来水冲洗干净(勿用手搓)。左手握住蛙,使其背部向上,用大拇指或食指使头前俯(以头颅后缘稍稍拱起为宜)。右手持探针由头颅后缘的枕骨大孔处垂直刺入椎管(图3-1-1)。然后将探针改向前刺入颅腔内,左右搅动探针2~3次,捣毁脑组织。如果探针在颅腔内,应有碰及颅底骨的感觉。 再将探针退回至枕骨大孔,使针尖转向尾端,捻动探针使其刺入椎管,捣毁脊髓。此时应注意将脊柱保持平直。针进入椎管的感觉是,进针时有一定的阻力,而且随着进针蛙出现下肢僵直或尿失禁现象。若脑和脊髓破坏完全,蛙下颌呼吸运动消失,四肢完全松软,失去一切反射活动。此时可将探针反向捻动,退出椎管。如蛙仍有反射活动,表示脑和脊髓破坏

人工智能实验报告材料

标准文档 《人工智能》课外实践报告 项目名称:剪枝法五子棋 所在班级: 2013级软件工程一班 小组成员:李晓宁、白明辉、刘小晶、袁成飞、程小兰、李喜林 指导教师:薛笑荣 起止时间: 2016-5-10——2016-6-18

项目基本信息项目名称五子棋 项目简介 智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能和计算机进行对弈。这个项目我们实现了当人点击“开始”按钮时,开始下棋,当人的棋子落时,计算机会根据算法进行最佳路径计算,然后落子下棋。任何一方赢了都会弹出哪方赢了。然后单击重新开始。 任务分工李晓宁 130904021 白明辉 130904001:负责界面实现和估值函数设计文档整理 刘小晶 130904032 袁成飞 130904051:负责极小极大值算法的设计与实现 李喜林 130904019 程小兰 130904004:负责αβ剪枝法的设计与实现 一、系统分析 1.1背景

1.1.1 设计背景 智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能和计算机进行对弈。能使人们在与电脑进行对弈的过程中学习五子棋,陶冶情操。并且推进人们对AI的关注和兴趣。 1.1.2可行性分析 通过研究,本游戏的可行性有以下三方面作保障 (1)技术可行性 本游戏采用Windows xp等等系统作为操作平台,使用人工智能进行算法设计,利用剪枝法进行编写,大大减少了内存容量,而且不用使用数据库,便可操作,方便可行,因此在技术上是可行的。 (2)经济可行性 开发软件:SublimText (3)操作可行性 该游戏运行所需配置低、用户操作界面友好,具有较强的操作可行性。 1.2数据需求 五子棋需要设计如下的数据字段和数据表: 1.2.1 估值函数:

相关主题
文本预览
相关文档 最新文档