过河问题(图论方法)

农夫过河问题

问题描述

一个农夫带着一头狼、一头羊、一颗白菜过河。他面前只有一条船,只能容纳他和一件物品,只有农夫会划船。如果农夫不在场,狼会吃羊、羊会吃白菜,农夫在场则不会。求将所有物品运到对岸的方案。

解题思路

根据物品的位置定义状态,若在左岸记为1,右岸记为0,于是最终方案就是(1,1,1,1)-->(0,0,0,0)所经过的路径。

1、定义状态

2、列举所有状态(人、狼、羊、菜)

3、删除不合理的状态(狼和羊、羊和菜)

4、连边(模拟一次渡河)

5、寻找路径

寻找(1111)-->(0000)的边,可以用寻路算法如bfs、dfs,如果要求最短路可以用最短路算法如bfs、Dijsktra等,当然这里图很简单,可直接观察出来。

(1111)-->(0101)-->(1101)-->(0001)-->(1011)-->(0010)-->(1010)-->(0000)(两条最短路之一)
       左岸                                 右岸
1、人  狼  羊 花                           空
2、狼  花                                 人 羊
3、人  狼 花                               羊
4、花                                     人 狼  羊
5、人  羊  花                              狼
6、羊                                     人 花  狼
7、人 羊                                  狼 花
8、空                                     狼 花 人 羊   

传教士与吃人恶魔的问题

问题描述

有三个传教士和三个吃人恶魔要渡过一条河,河中有一条船,只能装下两个人。在任何地方(无论是岸边还是船上),如果吃人恶魔数量多于传教士数量,吃人恶魔就会吃掉传教士。问:怎么才能让这些都安全过河?

解题思路

1、定义状态

2、列举所有状态

3、删除不合理状态

4、连边(模拟依次渡河变化)

5、寻找路径

寻找(33 L 00)-->(00 R 33)的路径

其中一条路径
(33 L 00)-->(31 R 01)-->(32 L 01)-->(30 R 03)-->(31 L 02)-->(11 R 22)-->(22 L 01)-->(02 R 31)-->(03 L 30)-->(01 R 32)-->(02 L 31)-->(00 R 33)
1、两个吃人恶魔过河
2、一个吃人恶魔回来
3、两个吃人恶魔过河
4、一个吃人恶魔回来
5、两个传教士过河
6、一个传教士和一个吃人恶魔回来
7、两个传教士回来
8、一个吃人恶魔回去
9、两个吃人恶魔过河
10、一个吃人恶魔回去
11、两个吃人恶魔过河

四人过桥问题

问题描述

在一个漆黑的夜里,四位旅游者来到一座狭窄而没有护栏的桥边,如果不借助手电筒的话,大家是无论也不敢过去。不幸的是四个人中只有一只手电筒,而桥窄得只够两个人同时通过。如果各自单独过桥得话,四个人所需要的时间分别是1、2、5、8分钟,如果两个人同时过桥,所需要的时间是较慢的那个人单独行动时的时间。问:如何设计一个方案,让四个人尽快过桥。

解题思路

与前面两个相比,这次不仅要求方案,同时要求时间最短。

原文地址:https://www.cnblogs.com/lfri/p/9866992.html

时间: 2024-10-13 13:10:38

过河问题(图论方法)的相关文章

通用高校排课算法研究----前言

1   绪 论 1.1课题背景与研究意义 1.2课题的应用领域 1.3 课题的现状 1.4解决NP问题的几种算法及其比较 2   目前流行的几种排课算法的介绍 2.1. 自动排课算法 2.2 基于优先级的排课算法 3   基于时间片优先级排课算法描述与分析 3.1排课中的基本原则 3.2排课的基本要求 3.3基于时间片优先级排课算法描述 3.4算法分析 参 考 资 料 1   绪 论 1课题背景与研究意义 排课问题早在70年代就证明是一个NP完全问题,即算法的计算时间是呈指数增长的,这一论断确立

全局认识运筹学

什么是运筹学? 运筹学是一门研究如何高效组织和管理人机系统去完成一件事情的科学.它侧重利用数学和计算机等工具来帮助决策者找到复杂问题的最佳解决方案. 历史简介 最初在军事上,由英国首先成立运筹小组来研究作战系统.后来美国等国家相继成立了运筹小组.和平年代后,运筹小组转向民用项目,为民用企业和科技做出了贡献. 内容分类 自考运筹学中主要介绍了企业运行过程中的部分过程,其中包括运输管理.库存管理和盈亏分析.在研究这些内容的过程中,研究人员总结出了许多解决一些共同类型问题的方法,我这里把这些方法作为运

学计算机的值得一看的文章,跟帖也很有水平啊

转自http://blog.csdn.net/Xviewee/article/details/1606247 回复CSDN和KAOYAN诸位网友的几点看法,(为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢): 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可. 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择.因为计算机学院才能让你在理论上更上一层楼.软件学院从教学计划上就没有

数学建模比赛日程

7月5日 数模培训图论方法建模,讨论数模分工 7月6日 数模培训线性贵,(笨牛书店)买书 7月7日 数模培训

攻读研究生的想法(很不错)

谈谈我对攻读计算机研究生的看法(转载的)                                                                                                                                                       作者:eqingsheng 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可.  如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高

空间数据挖掘常用方法

问题1:空间数据挖掘有哪些常用方法,举例说明一种方法的原理及应用. 答:空间数据挖掘的常用方法有:统计法,聚类方法,关联规则发掘方法,Rough集方法,神经网络方法,云理论,证据理论,模糊集理论,遗传算法等算法(出自丁信宙,仇环,苏晓庆. 基于云理论的缺损数据推理和预测 山东理工大学学报 2006年11月).除此以外还有老师课件上提到的聚类检测,决策树方法等. 以下对于一些常见模型做一简述: 1.空间分析方法 (Spatial Analysis Approach) 利用GIS的各种空间分析模型和

【分享】近4000份数学学习资源免费分享给大家

一直以来喜欢收集数学类的教程资源,于是费了好大劲从万千合集站上扒拉了下来,总结归类了一下,一共有将近4000本电子书.经测试,均可免费下载,可能会弹出小广告,可不必理会之.[仅供学术学习和交流,请无用于商业用途.]另外,如有可能,还请尽量支持正版纸质书.   数学史(54)     数学史.rar 55.6 MB   数学的起源与发展.rar 4.3 MB   费马大定理—一个困惑了世间智者358年的谜.pdf 9.5 MB   通俗数学名著译丛14-无穷之旅:关于无穷大的文化史.pdf 14.

BFS、DFS与选课问题

1选课问题 Leetcode上有这样一道题:有代号0,1,2……n-1的n门课程.其中选择某些课程需要另一些课程作为前提条件.用一组pair来表示这些条件:[1,0],[1,2],表示如果要选修课程1,必须先选修课程0和课程2.问是否可能把这n门课程都选修一遍. 这个问题看起来相当复杂.难点在于,一门课程可能需要多门课程作为前提条件,这样就很难找到一条可以不重复地遍历所有课程的方法. 比较笨的方法就是先找出那些不需要前提条件的课程,然后由他们出发将那些只需要他们作为前提条件的课程修完.再循环往复

运筹学(Operations Research)

1955年我国从"运筹帷幄之中,决策千里之外"(见<史记>)这句话摘取"运筹"二字,将O.R.正式译作运筹学. 运筹学师哥的解释就是"利用数学工具进行的预测",运筹学是一门综合性比较强的学科. 以前接触过的章节 线性代数(第五章 线性规划) 离散数学(第七章 网络计划技术.第八章图论方法) 这三章还都是重点,这不就好说了吗,回顾一下,在寻找一下当初学习这些知识的感觉.然后这三章就不用再给大块的时间去学习了. 概念性的章节 第一章 导论