摘要:
设G=(V,E)是一个n结点的连通图。一个哈密顿环是一条沿着图G的n条边环行的路径,它访问每个结点一次并且返回到它的开始位置。换言之,如果一个哈密顿环在某个结点v1∈V处开始,且G中结点按照v1,v2,…,Vn+l的次序被访问,则边(Vi,Vi+1),1≤i≤n,均在图G中,且除了v1和vn+l是同 阅读全文
摘要:
已知一个图G和m>0种颜色,在只准使用这m种颜色对G的结点着色的情况下,是否能使图中任何相邻的两个结点都具有不同的颜色呢?这个问题称为m-着色判定问题。在m-着色最优化问题中,则是求可对图G着色的最小整数m。称m为图G的色数。 4种颜色足以对任何地图着色,如图,对一平面图的4-着色判定问题(平面图是一个能画于平面上而边无任何交叉的图)。将地图的每个区域变成一个结点,若两个区域相邻,则相应的结点用一条边连接起来。 假定用图的邻接矩阵Graph(1:n,1:n)来表示一个图G,其中若(i,j)是G的一条边,则Graph(i,j)=true,否则Graph(i,j)=false。。颜色用整... 阅读全文
摘要:
子集和数问题是假定有n个不同的正数(通常称为权),要求找出这些数中所有使得某和数为M的组合。子集和数问题的递归回溯算法,代码如下:void SumOfSub(s,k,r) {//找w(1:n)中和数为M的所有子集。进入此过程时x(1),…,X(k-1)的值已确定。k-1 n//s=ΣW(i)X(i)且r=ΣW(j)。W(j)按非递减排列。假定w(1)≤M,ΣW(i)≥Mj=1 j=kl int M,n;float W[n];bool X[n]; //M、W[n]、X[n]定义成全局变量2 float r,s;int k,j;//生成左子结点。注意,由于Bk-1=true,因此s + w[k.. 阅读全文