www.3493.com
您所在的位置:主页 > www.3493.com >

求matlab程序解人狼羊菜问题www.003003.net

发布时间:2019-10-07

  一个建模题目——一个摆渡人F希望用一条小船把一只狼 W,一头羊 G 和一篮白菜 C 从一条河的左岸渡到右岸去,而船小只能容纳 F、W、G、C 中的两个,决不能在无人看守的情况下,留下狼和羊在一起,羊和白菜在一起,应怎样渡河才能将狼、羊、白菜都运过去?

  提示:将人、狼、羊、菜的位置依次用一个四维向量表示:当一物在左岸时,记相应的分量为1,否则记为0,如A(1,0,1,0)表示人和羊在左岸,称为一个状态。

  可取状态向量与一个可取运载向量相加,相加时每一分量按二进制法则进行计算。例如

  在上述规定下,问题转化为:从初始状态(1,1,1,1)经过多少次可取运算才能转化为化为(0,0,0,0)

  求matlab程序~急!提供答案再追加悬赏~万谢!展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  我们可以用四维向量来表示状态,其中第一分量表示人,第二分量表示狼,第三分量表

  根据题意,人不在场时,www.003003.net,狼要吃羊,羊要吃菜,因此,人不在场时,不能将狼与羊,羊

  与蔬菜留在河的任一岸。例如,状态(0,1,1,0)表示人和菜在对岸,而狼和羊在此岸,

  (1,1,1,1),(1,1,1,0),(1,1,0,1),(1,0,1,1),(1,0,1,0)

  (0,1,0,1),(0,1,0,0),(0,0,1,0),(0,0,0,1),(0,0,0,0)

  可行状态共有十种。每一次的渡河行为改变现有的状态。现构造赋权图G = (V, E,W) ,

  其中集合V 中的顶点表示十个可行状态,当且仅当对应的两个可行状态之间存在一个可行

  转移时两顶点之间才有线连接,并且对应的权重取为1,当两个顶点之间不存在可行转移时,

  因此问题变为在图G 中寻找一条由初始状态(1,1,1,1)出发,经最小次数转移达到

  最终状态(0,0,0,0)的转移过程,即求从状态(1,1,1,1)到状态(0,0,0,0)的

  下面首先计算邻接矩阵,由于摆渡一次就改变现有的状态,为此再引入一个四维状态转

  移向量,用它来反映摆渡情况。用1 表示过河,0 表示未过河。例如,(1,1,0,0)表示

  (1,0,0,0),(1,1,0,六开彩开奖现场直播直播长沙高新区举行庆祝新。0),(1,0,1,0),(1,0,0,1)

  通过上面的定义,如果某一个可行状态加上转移向量得到的新向量还属于可行状态,则这两

  个可行状态对应的顶点之间就存在一条边。用计算机编程时,我们可以利用普通的向量运算