3.5 有一农夫带一条狼,一只羊和一框青菜与从河的左岸乘船倒右岸,但受到下列条件的限制:
(1) 船太小,农夫每次只能带一样东西过河;
(2) 如果没有农夫看管,则狼要吃羊,羊要吃菜。 请设计一个过河方案,使得农夫、浪、羊都能不受损失的过河,画出相应的状态空间图。
提示:
(1) 用四元组(农夫,狼,羊,菜)表示状态,其中每个元素都为0或1,用0表示在左岸,用1表示在右岸。
(2) 把每次过河的一种安排作为一种操作,每次过河都必须有农夫,因为只有他可以划船。
解:
状态:状态描述了农夫、狼、羊、菜可能在河的左岸或右岸。
初始状态:农夫、狼、羊、菜都位于河的左岸。
后继函数:
1.农夫先把羊从河的左岸到右岸
2.农夫一个人从河的左岸到右岸
3.农夫把狼带过河的左岸到右岸
4.农夫把菜带过河的左岸到右岸
5.农夫把羊带过河的右岸到左岸
6.农夫一个人从河的右岸到左岸
7.农夫把狼带过河的右岸到左岸
8.农夫把菜带过河的右岸到左岸
目标测试:设计一个过河方案,使得农夫、狼、羊、菜都没有损失的从河的左岸乘船倒右岸。
路径消耗:每一步的消耗值为1,因此整个路径的耗散值为完成任务的时路径中的步数。
3.8 图3.28是五个城市的交通图,城市之间的连线旁边的数字是城市之间路程的费用。要求从A城出发,经过其它各城市一次且仅一次,最后回到A城,请找出一条最优线路。
解:
状态:从A城出发,经过其它各城市一次且仅一次,最后回到A城。
初始状态:从A出发,其他城市未曾经过。
后继函数:
1.由A到B、由A到C、由A到D、由A到E
2.由B到A、由B到C、由B到D、由B到E
3.由C到A、由C到B、由C到D、由C到E
4.由D到A、由D到B、由D到C、由D到E
5.由E到A、由E到B、由E到C、由E到D
目标测试:从A城出发,经过其它各城市一次且仅一次,最后回到A城,请找出一条最优线路。
路径消耗:最优线路就等于从A城出发,经过其它各城市一次且仅一次,最后回到A城的城市之间路程的费用。