当前位置:文档之家› 一类约束满足问题的LINGO算法

一类约束满足问题的LINGO算法

13
一类约束满足问题的LINGO算法
a Class of Constraint Satisafaction Problems and LINGO Algorithms
李朝阳
Li Zhaoyang
(北京工商大学数理系, 北京100037)
(Department of Mathematics and Physics,Beijing Technology and Business University, Beijing100037)

摘要: LINGO主要用来求解大型数学规划问题,而利用它求解约束满足问题尚未见到文献报道。本文以著名的“斑
马”问题为例,将这类约束满足问题转化为0-1规划求可行解的问题,利用LINGO求解,取得了满意的结果。
关键词: 约束满足问题;LINGO;斑马问题;0-1规划;可行解
中图分类号:O221.1文献标识码:A文章编号:1671-4792-(2006)7-0047-02
Abstract: LINGO is mainly used for solving large scale linear programming, but to solve a constraint
satisafaction problem with LINGO has never been reported before. This paper take a well-known problem-zebra
problem as an example, converted the constraint satisafaction problem of this class to a finding feasible
solution of binary integer programming, and the result was satisfactory.
Keywords: Constraint Satisafaction Problem;LINGO;Zebra Problem;Binary Integer Programming;Feasible
Solution

1约束满足问题
求解约束满足问题就是寻找该问题的可行解。约束满足
问题在不同的领域均有着广泛的应用,如资源配置、地图着
色等。“斑马”问题[1]是一个著名的约束满足问题: 在五
个颜色各异的房子中,居住着不同国籍的人,他们饲养的宠
物、喜欢的饮料以及拥有的汽车各不相同,且有如下信息:
①英国人住在红房子里; ②西班牙人养狗; ③居住在绿房子
里的人喝可乐; ④乌克兰人喝酒; ⑤绿房子是白色房子的右
邻; ⑥拥有老爷车的人养蜗牛; ⑦拥有福特汽车的人住在黄
房子里; ⑧住在中间房子里的人喝牛奶; ⑨挪威人住在最左
边的房子里; ⑩拥有雪佛莱汽车的人与养狐狸的人是邻居;
⑾拥有福特汽车的人与养马的人是邻居; ⑿拥有奔驰汽车的
人爱喝橙汁; ⒀日本人开大众汽车; ⒁挪威人的邻居住在蓝
房子里。问题是: 斑马属于谁?谁爱喝矿泉水?
2“斑马”问题的LINGO模型
根据问题所给的条件,将五种颜色、国籍、饮料、车及
宠物分别标号(如表一所示)。
房间的标号为1-5,且规定从左至右的顺序为1、2、3、
4、5。
定义0-1变量如下: x(i,j)表示房子j的颜色是否为i
(若是则其值为1,否则其值为0,下同),y(i,j)表示住在房
子j的人的国籍是否为i,z(i,j)表示住在房子j的人喝的饮
料是否为i,v(i,j)表示住在房子j的人拥有的车是否为i,
w(i,j)表示住在房子j的人养的宠物是否为i。显然这些变

量须满足如下两组基本约束:
这里A(i,j)分别取x(i,j)、y(i,j)、z(i,j)、v(i,j)和
w(i,j)。下面用等式和不等式表示问题所给的各个约束:
约束(1)英国人住在红房子里可表示为:


同理,约束(3)、(4)可分别表示为: 
14


相关主题