文档库 最新最全的文档下载
当前位置:文档库 › 图论习题及答案

图论习题及答案

图论习题及答案
图论习题及答案

作业解答

练习题2 利用matlab编程FFD算法完成下题:

设有6种物品,它们的体积分别为:60、45、35、20、20和20单位体积,箱子的容积为100个单位体积。

解答一:

function [num,s] = BinPackingFFD(w,capacity)

%一维装箱问题的FFD(降序首次适应)算法求解:先将物体按长度从大到小排序,

%然后按FF算法对物体装箱

%输入参数w为物品体积,capacity为箱子容量

%输出参数num为所用箱子个数,s为元胞数组,表示装箱方案,s{i}为第i个箱子所装

%物品体积数组

%例w = [60,45,35,20,20,20]; capacity = 100;

% num=3,s={[1,3],[2,4,5],6};

w = sort(w,'descend');

n = length(w);

s = cell(1,n);

bin = capacity * ones(1,n);

num = 1;

for i = 1:n

for j = 1:num + 1

if w(i) < bin(j)

bin(j) = bin(j) - w(i);

s{j} = [s{j},i];

if j == num + 1

num = num + 1;

end

break;

end

end

end

s = s(1:num);

解答二:

clear;

clc;

V=100;

v=[60 45 35 20 20 20];

n=length(v);

v=fliplr(sort(v));

box_count=1;

x=zeros(n,n);

V_Left=100;

for i=1:n

if v(i)>=max(V_Left)

box_count=box_count+1;

x(i,box_count)=1;

V_Left=[V_Left V-v(i)];

else

j=1;

while(v(i)>V_Left(j))

j=j+1;

end

x(i,j)=1;

V_Left(j)=V_Left(j)-v(i);

end

temp=find(x(i,:)==1);

fprintf('第%d个物品放在第%d个容器\n',i,temp) end

output:

第1个物品放在第1个容器

第2个物品放在第2个容器

第3个物品放在第1个容器

第4个物品放在第2个容器

第5个物品放在第2个容器

第6个物品放在第3个容器

解答三:

function box_count=FFD(x)

%降序首次适应算法

v=100;

x=fliplr(sort(x));

%v=input('请输入箱子的容积:');

n=length(x);

I=ones(n);

E=zeros(1,n);

box=v*I;

box_count=0;

for i=1:n

j=1;

while(j<=box_count)

if x(i)>box(j)

j=j+1;

continue;

else

box(j)=box(j)-x(i);

E(i)=j;

break;

end

end

if j>box_count

box_count=box_count+1;

box(box_count)=box(box_count)-x(i);

E(i)=j;

end

end

disp(E);

在命令窗口输入:

>> x=[60,45,35,20,20,20];

>> FFD(x)

1 2 1 2 2 3

ans =

3

练习题5 “超市大赢家”提供了50种商品作为奖品供中奖顾客选择,车的容量为1000dm3, 奖品i占用的空间为w i dm3,价值为v i元, 具体的数据如下:

v i= { 220, 208, 198, 192, 180, 180, 165, 162, 160, 158,155, 130, 125, 122, 120, 118, 115, 110, 105, 101, 100, 100, 98,96, 95, 90, 88, 82, 80, 77, 75, 73, 72, 70, 69, 66, 65, 63, 60, 58,56, 50, 30, 20, 15, 10, 8, 5, 3, 1}

w i = {80, 82, 85, 70, 72, 70, 66, 50, 55, 25, 50, 55, 40, 48,50, 32, 22, 60, 30, 32, 40, 38, 35, 32, 25, 28, 30, 22, 50, 30, 45,30, 60, 50, 20, 65, 20, 25, 30, 10, 20, 25, 15, 10, 10, 10, 4, 4, 2,1}。

问如何装车才能总价值最大。

解答:

clear;

clc;

v=[220, 208, 198, 192, 180, 180, 165, 162, 160, 158,155, 130, 125, 122, 120, 118, 115, 110, 105, 101, 100, 100, 98,96, 95, 90, 88, 82, 80, 77, 75, 73, 72, 70, 69, 66, 65, 63, 60, 58,56, 50, 30, 20, 15, 10, 8, 5, 3, 1];

w=[80, 82, 85, 70, 72, 70, 66, 50, 55, 25, 50, 55, 40, 48,50, 32, 22, 60, 30, 32, 40, 38, 35, 32, 25, 28, 30, 22, 50, 30, 45,30, 60, 50, 20, 65, 20, 25, 30, 10, 20, 25, 15, 10, 10, 10, 4, 4, 2,1];

totalw=1000;limitw=1000;

n=length(w);

for i=1:n

f(1,i)=v(i)/w(i);

f(2,i)=w(i);

f(3,i)=i;

end

for i=1:(n-1)

for j=(i+1):n

if f(1,i)

t=f(1,i);

f(1,i)=f(1,j);

f(1,j)=t;

t=f(2,i);

f(2,i)=f(2,j);

f(2,j)=t;

t=f(3,i);

f(3,i)=f(3,j);

f(3,j)=t;

end

end

end

totalv=0;a=[];

for i=1:n

if f(2,i)<=limitw

a=[a,f(3,i)]; %disp(f(3,i));

limitw=limitw-f(2,i);

totalv=totalv+f(1,i)*f(2,i);

end

end

a

totalv

totalw=totalw-limitw

结果

a =

Columns 1 through 21

10 40 17 25 28 16 19 35 37 8 26 20 13 11 24 27 9 23 41 1 4

Columns 22 through 27

22 6 30 14 2 47

totalv =

3103

totalw =

1000

练习题8 对最后一个求有向圈的示例用matlab程序实现。

解答:

H= [0 1 0 0 0;

0 0 0 1 1;

1 1 1 0 0;

0 0 1 0 1;

0 1 0 0 0];

n=size(H,1);%顶点个数

p=zeros(1,n);%存储搜索过的顶点

X=zeros(n,n);%用来设置禁止矩阵,往回返的时候设置此路已被搜索

k=1;

p(1)=1;%第一个点作为初始点开始搜索

while p(1)<=n %每个顶点都作为初始点搜索包含p(1)的有向圈,

i=p(1)+1;%当前点k往后搜索时都是从p(1)+1开始,从而也可以搜索下标小于k的点while i<=n %还有后续点没有搜索(这些点有可能比当前点k小)

if (H(p(k),i)==1)&(X(p(k),i)==0)&isempty(find(p==i))%满足三个条件

k=k+1;%搜索路径上增加一个点

p(k)=i;%搜索路径向前延伸一个点

else

i=i+1;%当前被搜索点不满足条件,换下一个点

end

end

if i>n %k点往后的所有点都被搜索

if H(p(k),p(1))==1%有圈,每次搜索的都是包含初始点的圈

disp(p(1:k));%输出圈

end

%不管有没有圈,此时k点要往回返

if k>1%路径上不止出发点

for j=1:n

X(p(k),j)=0;%取消以前的限制通行

end

X(p(k-1),p(k))=1;%增加此路已搜索

p(k)=0;%撤销路径上的k点

k=k-1;%返回上一个点作为当前点

else %返回到出发点了

p(1)=p(1)+1; %换下一个出发点(初始点)

end

end

end

运行结果:

1 2 4 3

2 4 5

2 4 3

2 5

3

练习题9 选址问题 现准备在7个居民点中设置一银行,路线与距离如下图,问设在哪个点,可使最大服务距离最小若设两个点呢

1v 4

v 3v 2

v 5v 6v 7v 3265.15.2435.18.1

解答:

第一步:

function [D,R]=floyd(A)

%用floyd 算法实现求任意两点之间的最短路程。可以有负权

%参数D 为连通图的权矩阵

A=[0 3 inf inf inf inf inf

3 0 2 inf inf inf

inf 2 0 6 inf 4

inf inf 6 0 inf inf 3

inf inf inf inf 0 inf

inf inf 0

inf inf 4 3 inf 0

];

D=A;n=length(D);

for i=1:n

for j=1:n

R(i,j)=i;%赋路径初值

end

end

for k=1:n

for i=1:n

for j=1:n

if D(i,k)+D(k,j)

D(i,j)=D(i,k)+D(k,j);%更新D(i,j),说明通过k的路程更短

R(i,j)=R(k,j);%更新R(i,j),需要通过k

end

end

end

hl=0;

for i=1:n

if D(i,i)<0

hl=1;

break;%跳出内层的for循环

end

end

if(hl==1)

fprintf('有负回路')

break;%跳出最外层循环

end

end

D

运行结果:

D=

第二步:对于第一问

在矩阵D中每一个取大得到一列数,再在这列数中取小,

[m,n]=size(D);

p=[];

for i=1:m

p(i)=max(D(i,:));

end

for i=1:m

if p(i)==min(p)

disp(i);

end

end

min(p)

在顶点6建立银行,最大服务距离最小,最小是.

第三步:对于第二问

任取两个点做集合,计算每个点到这个集合的最小值,再在这个最小值中取大,即在矩阵D 中任取两行,对应比较取小得一向量,将所有这样的向量写成行向量构成一矩阵,然后用问题一的算法程序即可。

a=0;

b=[];

n=size(D,1);

for i=1:(n-1)

for j=(i+1):n

a=a+1;

for k=1:n

s{a}=[i j];

b(a,k)=min(D(i,k),D(j,k));

end

end

end

m=size(b,1);

p=[];

for i=1:m

p(i)=max(b(i,:));

end

for i=1:m

if p(i)==min(p)

disp(s{i});

end

end

min(p)

结果,在顶点2,4或2,7点建立银行都使得最大服务距离最小,最小值是3

练习题10 货物调运已知该地区有生产该物资的企业三家,大小物资仓库八个,国家级储备库两个,其分布情况见下面的附件1。经核算该物资的运输成本为高等级公路2元/公里百件,普通公路元/公里百件,假设各企业、物资仓库及国家级储备库之间的物资可以通过公路运输互相调运,请给出各个仓库应该从哪个企业调运。

解答:

首先建立各个交汇点的距离矩阵m。然后建立函数文件。

%各仓库到各企业的最小运费

function min_spend(m)

c=[28,23,35,31,22,36,29,38]; %仓库

cc=[27,30]; %国家储存库

C=[c,cc];

g=[8,15,11,27,7,10,17,14,28,16,18,25,6,5,39,35,13,40,4,29];%高级公路上的点n=length(g);

A=zeros(42);

for i=1:42

for j=1:42

if m(i,j)~=0

A(i,j)=*m(i,j); %普通公路上每百件的运费

else

A(i,j)=inf;

end

end

end

for i=1:n

for j=1:n

A(g(i),g(j))=2*A(g(i),g(j))/; %高级公路上每百件的运费end

end

for i=1:42

A(i,i)=0;

end

[D,R]=floyd(A);

for i=1:10

for j=1:3

X(i,j)=D(C(i),q(j));

end

end

[XX,INDEX]=min(X')

在命令窗口输入:

>> min_spend(m)

XX =

INDEX =

2 1

3 3 1 3 2 3 1 3 XX 为从各个仓库到三个企业中的最小费用,INDEX 为最小费用的企业。

练习题14 最小代价流 将上题容量网络的边上增加另一个权数----代价,变为具有代价的容量网络,单位代价为容量数的十位上的数字,求比最大流少30单位的最小代价流。

1

v v 8

v 7

由上题结果可知,最大流为142,则最小代价流的流量应该为112。用迭代算法,预定流量值wf0=112。

方法一:

C=[0 25 0 56 61 0 0 0 0;

0 0 71 0 0 36 0 0 0;

0 0 0 0 0 0 0 34 0;

0 0 0 0 49 0 74 0 0;

0 24 0 0 0 72 57 0 0;

0 0 38 0 0 0 0 53 45;

0 0 0 0 0 38 0 0 67;

0 0 0 0 0 0 0 0 74;

0 0 0 0 0 0 0 0 0];%弧容量

b=[0 2 0 5 6 0 0 0 0;

0 0 7 0 0 3 0 0 0;

0 0 0 0 0 0 0 3 0;

0 0 0 0 4 0 7 0 0;

0 2 0 0 0 7 5 0 0;

0 0 3 0 0 0 0 5 4;

0 0 0 0 0 3 0 0 6;

0 0 0 0 0 0 0 0 7;

0 0 0 0 0 0 0 0 0]; %弧上单位流量的费用

n=9;

wf=0;wf0=112; %wf表示最大流量, wf0表示预定的流量值

for(i=1:n) for(j=1:n) f(i,j)=0;end;end %取初始可行流f为零流

while(1)

for(i=1:n)for(j=1:n)if(j~=i)a(i,j)=Inf;end;end;end%构造有向赋权图

for(i=1:n)for(j=1:n)if(C(i,j)>0&f(i,j)==0)a(i,j)=b(i,j);

elseif(C(i,j)>0&f(i,j)==C(i,j))a(j,i)=-b(i,j);

elseif(C(i,j)>0)a(i,j)=b(i,j);a(j,i)=-b(i,j);end;end;end

for(i=2:n)p(i)=Inf;s(i)=i;end %用Ford算法求最短路, 赋初值

for(k=1:n)pd=1; %求有向赋权图中vs到vt的最短路

for(i=2:n)for(j=1:n)if(p(i)>p(j)+a(j,i))p(i)=p(j)+a(j,i);s(i)=j;pd=0;end;end;end

if(pd)break;end;end %求最短路的Ford算法结束

if(p(n)==Inf)break;end %不存在vs到vt的最短路, 算法终止. 注意在求最小费用最大流时构造有向赋权图中不会含负权回路, 所以不会出现k=n

dvt=Inf;t=n; %进入调整过程, dvt表示调整量

while(1) %计算调整量

if(a(s(t),t)>0)dvtt=C(s(t),t)-f(s(t),t); %前向弧调整量

elseif(a(s(t),t)<0)dvtt=f(t,s(t));end %后向弧调整量

if(dvt>dvtt)dvt=dvtt;end

if(s(t)==1)break;end %当t的标号为vs时, 终止计算调整量

t=s(t);end %继续调整前一段弧上的流f

pd=0;if(wf+dvt>wf0) dvt=wf0-wf;pd=1;end %如果最大流量大于或等于预定的流量值t=n;while(1) %调整过程

if(a(s(t),t)>0)f(s(t),t)=f(s(t),t)+dvt; %前向弧调整

elseif(a(s(t),t)<0)f(t,s(t))=f(t,s(t))-dvt;end %后向弧调整

if(s(t)==1)break;end %当t的标号为vs时, 终止调整过程

t=s(t);end

if(pd)break;end %如果最大流量达到预定的流量值

wf=0; for(j=1:n)wf=wf+f(1,j);end;end %计算最大流量

zwf=0;for(i=1:n)for(j=1:n)zwf=zwf+b(i,j)*f(i,j);end;end %计算最小费用

f %显示最小费用最大流

wf %显示最小费用最大流量

zwf %显示最小费用

运行结果:

>>

f =

0 25 0 26 61 0 0 0 0

0 0 0 0 0 36 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 26 0 0

0 11 0 0 0 9 41 0 0

0 0 0 0 0 0 0 0 45

0 0 0 0 0 0 0 0 67

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

wf =

112

zwf =

1708

由程序运行结果可得:比最大流少30单位的最小代价流为f,最小代价为1708。方法二

在已知流量上限情况下的Lingo最小费用求解

sets:

nodes/1..9/:;

arcs(nodes, nodes): c,b,f; !f为流,c为网络容量,b为费用;

endsets

data:

fmax = 112; !流量上界;

c=0 25 0 56 61 0 0 0 0

0 0 71 0 0 36 0 0 0

0 0 0 0 0 0 0 34 0

0 0 0 0 49 0 74 0 0

0 24 0 0 0 72 57 0 0

0 0 38 0 0 0 0 53 45

0 0 0 0 0 38 0 0 67

0 0 0 0 0 0 0 0 74

0 0 0 0 0 0 0 0 0;

b= 0 2 0 5 6 0 0 0 0

0 0 7 0 0 3 0 0 0

0 0 0 0 0 0 0 3 0

0 0 0 0 4 0 7 0 0

0 2 0 0 0 7 5 0 0

0 0 3 0 0 0 0 5 4

0 0 0 0 0 3 0 0 6

0 0 0 0 0 0 0 0 7

0 0 0 0 0 0 0 0 0;

enddata

min=@sum(arcs:b*f);

@for(nodes(i) | i #ne# 1 #and# i #ne# @size(nodes):

@sum(arcs(i,j):f(i,j)) - @sum(arcs(j,i):f(j,i))=0);

@sum(arcs(i,j)|i #eq# 1 : f(i,j))=fmax;

@for(arcs:@bnd(0,f,c));

练习题20 现在有8个城市,已知两个城市之间的路费如下表,现在有一个人从A 城市出发旅行,应该选择怎样的路线才能刚好每个城市都到达一次又回到A

解答:

方法一

建立规划模型:

先将一般加权连通图转化成一个等价的加权完全图,设当从i v 到j v 时,1=ij x ,否则,0=ij x ,则得如下模型:

∑∑==n i n j ij ij x

w 11min

???????????≠==-==-≤++====∑∑==j

i n j i x n k n i i k x x x n j x n i x t s ij k i i i i i i n i ij

n

j ij k ;,,1,,10)1,,2;,,1,,(,1),,1(,1)

,,1(,1..11

1

13221ΛΛΛΛΛΛΛ或

利用lingo 求解:

model:!TSP 问题;

sets:

cities/A,B,C,D,E,F,G,H/:level;

link(cities, cities)|&1#ne#&2: w, x;!W 距离矩阵;

endsets

data:

w= 56 35 21 51 60 43 39

56 21 57 78 70 64 49

35 21 36 68 1000 70 60

21 57 36 51 61 65 26

51 78 68 51 13 45 61

60 70 1000 61 13 53 26

43 64 70 65 45 53 50

39 49 60 26 61 26 50;

enddata

n=@size(cities);

min=@sum(link(i,j)|i #ne# j: w(i,j)*x(i,j));

@for(cities(i) :

@sum(cities(j)| j #ne# i: x(j,i))=1;

@sum(cities(j)| j #ne# i: x(i,j))=1;

@for(cities(j)| j #gt# 1 #and# j #ne# i :

level(j) >= level(i) + x(i,j)

- (n-2)*(1-x(i,j)) + (n-3)*x(j,i);

);

);

@for(link : @bin(x));

@for(cities(i) | i #gt# 1 :

level(i)<=n-1-(n-2)*x(1,i);

level(i)>=1+(n-2)*x(i,1);

);

end

由程序运行结果可得,从A 城市出发旅行,刚好每个城市都到达一次又回到A 城市,且总

路费最少的路线为:A C B G E F H D A →→→→→→→→。最少费用为251。 方法二(参考)

求一个Hamilton 圈1111v v v v v v v c n j j i i ΛΛΛ++=,

构造新圈:由c 中删掉边1+i i v v 和1+j j v v ,添加边j i v v 和11++j i v v 而得到,

判断:若()j i v v ?+()11++j i v v ?<()1+i i v v ?+()

1+j j v v ?,则以新圈代替旧圈,称为改良圈。 clear

a(1,2)=56;a(1,3)=35;a(1,4)=21;a(1,5)=51;a(1,6)=60;a(1,7)=43;a(1,8)=39;

a(2,3)=21;a(2,4)=57;a(2,5)=78;a(2,6)=70;a(2,7)=64;a(2,8)=49;

a(3,4)=36;a(3,5)=68;a(3,6)=Inf;a(3,7)=70;a(3,8)=60;

a(4,5)=51;a(4,6)=61;a(4,7)=65;a(4,8)=26;

a(5,6)=13;a(5,7)=45;a(5,8)=62;

a(6,7)=53;a(6,8)=26;

a(7,8)=50;

a(8,:)=0;

a=a+a'

c1= [1 3 2 5:8 4];

L=length(c1);

flag=1;

while flag>0

flag=0;

for m=1:L-3

for n=m+2:L-1

if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))

c1(m+1:n)=c1(n:-1:m+1);

end

end

end

end

sum1=0;

for i=1:L-1

sum1=sum1+a(c1(i),c1(i+1));

end

sum1=sum1+a(c1(8),c1(1))

circle=c1;

sum=sum1;

c1=[1 4 3 2 5:8 ];%改变初始圈,该算法的最后一个顶点不动

flag=1;

while flag>0

flag=0;

for m=1:L-3

for n=m+2:L-1

if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))<...

a(c1(m),c1(m+1))+a(c1(n),c1(n+1))

flag=1;

c1(m+1:n)=c1(n:-1:m+1);

end

end

end

end

sum1=0;

for i=1:L-1

sum1=sum1+a(c1(i),c1(i+1));

end

sum1=sum1+a(c1(8),c1(1))

if sum1

sum=sum1;

circle=c1;

end

circle,sum

练习题21 某街道布局如下,在0点处停放有一辆洒水车,每天洒水车都要给每条街道洒水,请给洒水车优化一条路线。

解答(参考):以下版本方法正确,应可以简化。

该题为中国邮递员问题,故先使用floyd算法求出奇点间的最短距离,并建立以奇点为顶点的完全图,调用文件

clear;

c=[inf 5 inf 6 inf inf inf inf inf inf

5 inf 5 inf

6 inf inf inf inf inf

inf 5 inf inf inf 2 inf inf inf inf

6 inf inf inf 3 inf 4 inf inf inf

inf 6 inf 3 inf 6 inf 4 inf inf

inf inf 2 inf 6 inf inf inf 4 inf

inf inf inf 4 inf inf inf 4 inf 2

inf inf inf inf 4 inf 4 inf 3 inf

inf inf inf inf inf 4 inf 3 inf inf

inf inf inf inf inf inf 2 inf inf inf];

m=length(c);

Path=zeros(m);

for k=1:m

for i=1:m

for j=1:m

if c(i,j)>c(i,k)+c(k,j)

c(i,j)=c(i,k)+c(k,j);

Path(i,j)=k;

end

end

end

end

h1=c(2,4);

h2=c(2,6);

h3=c(2,7);

h4=c(2,8);

h5=c(2,10);

h6=c(4,6);

h7=c(4,7);

h8=c(4,8);

h9=c(4,10);

h10=c(6,7);

h11=c(6,8);

h12=c(6,10);

h13=c(7,8);

h14=c(7,10);

h15=c(8,10);

disp(c(2,6));

disp(c(4,8));

disp(c(7,10));

a=zeros(6); a(1,2)=h1;a(1,3)=h2;

a(1,4)=h3;a(1,5)=h4;a(1,6)=h5; a(2,3)=h6;a(2,4)=h7 ;a(2,5)=h8;a(2,6)=h9;a(3,4)=h10; a(3,5)=h11;a(3,6)=h12;a(4,5)=h13;a(4,6)=h14;a(5,6)=h15;

a=a+a'; a(find(a==0))=inf;

Hung_Al(a);

%原矩阵的2,4,6,7,8,10分别对应于奇点矩阵的1,2,3,4,5,6顶点%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

接着调用文件找出以奇点为顶点的完全图的最优匹配

function [Matching,Cost] = Hung_Al(Matrix)

Matrix=a;

Matching = zeros(size(Matrix));

% 找出每行和每列相邻的点数

num_y = sum(~isinf(Matrix),1); num_x = sum(~isinf(Matrix),2);

% 找出每行和每列的孤立点数

x_con = find(num_x~=0); y_con = find(num_y~=0); %将矩阵压缩、重组P_size = max(length(x_con),length(y_con));

P_cond = zeros(P_size);

P_cond(1:length(x_con),1:length(y_con)) = Matrix(x_con,y_con);

if isempty(P_cond)

Cost = 0;

return;

end

% 确保存在完美匹配,计算矩阵边集

Edge = P_cond;

Edge(P_cond~=Inf) = 0;

cnum=min_line_cover(Edge);

Pmax = max(max(P_cond(P_cond~=Inf)));

P_size = length(P_cond)+cnum;

P_cond = ones(P_size)*Pmax;

P_cond(1:length(x_con),1:length(y_con)) = Matrix(x_con,y_con);

%主函数程序,此处将每个步骤用switch 命令进行控制调用步骤函数exit_flag = 1;

stepnum = 1;

while exit_flag

switch stepnum

case 1

[P_cond,stepnum] = step1(P_cond);

case 2

[r_cov,c_cov,M,stepnum] = step2(P_cond);

case 3

[c_cov,stepnum] = step3(M,P_size);

case 4

[M,r_cov,c_cov,Z_r,Z_c,stepnum] = step4(P_cond,r_cov,c_cov,M);

case 5

[M,r_cov,c_cov,stepnum] = step5(M,Z_r,Z_c,r_cov,c_cov);

case 6

[P_cond,stepnum] = step6(P_cond,r_cov,c_cov);

case 7

exit_flag = 0;

end

end

Matching(x_con,y_con) = M(1:length(x_con),1:length(y_con));

Cost = sum(sum(Matrix(Matching==1)));

Matching

Cost %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%下面是6 个步骤函数step1~step6

%步骤1:找到包含0 最多的行,从该行减去最小值

function [P_cond,stepnum]=step1(P_cond)

P_size = length(P_cond);

for ii = 1:P_size

rmin = min(P_cond(ii,:));

P_cond(ii,:) = P_cond(ii,:)-rmin;

end

stepnum = 2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%步骤2:在P-cond 中找一个0,并找出一个以该数0 为星型的覆盖

function [r_cov,c_cov,M,stepnum] = step2(P_cond)

%定义变量r-cov,c-cov 分别表示行或列是否被覆盖

P_size = length(P_cond);

r_cov = zeros(P_size,1);

c_cov = zeros(P_size,1);

M = zeros(P_size);

for ii = 1:P_size

for jj = 1:P_size

if P_cond(ii,jj) == 0 && r_cov(ii) == 0 && c_cov(jj) == 0

M(ii,jj) = 1; r_cov(ii) = 1; c_cov(jj) = 1;

end

end

end

% 重初始化变量

r_cov = zeros(P_size,1);

c_cov = zeros(P_size,1);

stepnum = 3; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%步骤3:每列都用一个0 构成的星型覆盖,如果每列都存在这样的覆盖,则M 为最大匹配

function [c_cov,stepnum] = step3(M,P_size)

c_cov = sum(M,1);

if sum(c_cov) == P_size

stepnum = 7;

else stepnum = 4;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%步骤4:找一个未被覆盖的0 且从这出发点搜寻星型0 覆盖。如果不存在,转步骤5,否% 则转步骤 6

function [M,r_cov,c_cov,Z_r,Z_c,stepnum] = step4(P_cond,r_cov,c_cov,M)

P_size = length(P_cond);

zflag = 1;

while zflag

row = 0;

col = 0;

exit_flag = 1; ii = 1; jj = 1;

while exit_flag

if P_cond(ii,jj) == 0 && r_cov(ii) == 0 && c_cov(jj) == 0

row = ii;

col = jj;

exit_flag = 0;

end

jj = jj + 1;

if jj > P_size; jj = 1; ii = ii+1; end

if ii > P_size; exit_flag = 0; end

end

if row == 0

stepnum = 6;

zflag = 0;

Z_r = 0;

Z_c = 0;

else

M(row,col) = 2;

if sum(find(M(row,:)==1)) ~= 0

r_cov(row) = 1; zcol = find(M(row,:)==1); c_cov(zcol) = 0;

else stepnum = 5; zflag = 0; Z_r = row; Z_c = col;

end

end

end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%步骤5:

function [M,r_cov,c_cov,stepnum] = step5(M,Z_r,Z_c,r_cov,c_cov)

zflag = 1; ii = 1;

while zflag

rindex = find(M(:,Z_c(ii))==1);

if rindex > 0

ii = ii+1;

Z_r(ii,1) = rindex;

Z_c(ii,1) = Z_c(ii-1);

else zflag = 0;

end

if zflag == 1;

cindex = find(M(Z_r(ii),:)==2); ii = ii+1; Z_r(ii,1) = Z_r(ii-1); Z_c(ii,1) = cindex; end

end

for ii = 1:length(Z_r)

if M(Z_r(ii),Z_c(ii)) == 1

M(Z_r(ii),Z_c(ii)) = 0;

课后习题答案

第一章 液压传动概述 液压传动系统由哪几部分组成各组成部分的作用是什么 解答:液压传动由以下四部分组成: (1)动力元件(液压泵):它是把原动机输出的机械能转换成油液压力能的元件。作用:给液压系统提供压力油,是液压系统的心脏。 (2)执行元件:包括液压缸和液压马达等。 作用:把油液的压力能转换成机械能以驱动工作机构的元件。 (3)控制元件:包括压力、方向、流量控制阀。作用:是对液压系统中油液的压力、流量和流动方向进行控制和调节的元件。 (4)辅助元件:除上述三项以外的、液压系统中所需的其它装置。如油箱、滤油器、油管、管接头等。作用:保证液压系统有效工作,寿命长。 第二章 液压泵和液压马达 要提高齿轮泵的压力需解决哪些关键问题通常都采用哪些措施 解答:(1)困油现象: 采取措施:在两端盖板上开卸荷槽。(2)径向不平衡力:采取措施:缩小压油口直径;增大扫膛处的径向间隙; 过渡区连通;支撑上采用滚针轴承或滑动轴承。(3)齿轮泵的泄漏: 采取措施:采用断面间隙自动补偿装置。 齿轮泵的模数 mm m 4=,齿数9=z ,齿宽mm B 18=,在额定压力下,转速min 2000r n =时,泵的 实际输出流量min 30L Q =,求泵的容积效率。 解答:()() 2 2630 0.876.6~7 6.69418200010v t q q q zm bn η-= ===????? YB63型叶片泵的最高压力MPa P 3.6max =,叶片宽度mm B 24=,叶片厚度mm 25.2=δ,叶片数 12=Z ,叶片倾角?=13θ,定子曲线长径mm R 49=,短径mm r 43=,泵的容积效率9.0=v η,机械效率 90.0=m η,泵轴转速min 960r n =,试求:(1) 叶片泵的实际流量是多少(2)叶片泵的输出功率是多少 解答: (1) ()()()()() 22 223 322cos 20.0490.04320.0490.0430.024120.0249600.9cos131.0210v R r q R r bz Bn m s πηφπ-??=--???? ?-?? =--?????????? =? (2) 633 6.310 1.0210 6.4210N pq -==???=?出 斜盘式轴向柱塞泵的斜盘倾角?=20β,柱塞直径mm d 22=,柱塞分布圆直径mm D 68=,柱塞数7=z ,机械效率90.0=m η,容积效率97.0=v η,泵转速min 1450r n =,泵输出压力MPa p 28=,试计算:(1)平

2004图论复习题答案

图论复习题答案 一、判断题,对打,错打 1.无向完全图是正则图。 () 2.零图是平凡图。() 3.连通图的补图是连通图.() 4.非连通图的补图是非连通图。() 5.若连通无向简单图G中无圈,则每条边都是割边。() 6.若无向简单图G是(n,m)图,并且m=n-1,则G是树。() 7.任何树都至少有2片树叶。() 8.任何无向图G都至少有一个生成树。() 9.非平凡树是二分图。() 10.所有树叶的级均相同的二元树是完全二元树。() 11.任何一个位置二元树的树叶都对应唯一一个前缀码。() 12. K是欧拉图也是哈密顿图。() 3,3 13.二分图的对偶图是欧拉图。() 14.平面图的对偶图是连通图。() 页脚内容1

15.设G*是平面图G的对偶图,则G*的面数等于G的顶点数。() 二、填空题 1.无向完全图K6有15条边。 2.有三个顶点的所有互不同构的简单无向图有4个。 3.设树T中有2个3度顶点和3个4度顶点,其余的顶点都是树叶,则T中有10片树叶。 4.若连通无向图G是(n,m)图,T是G的生成树,则基本割集有n-1个,基本圈有m-n+1个。 5.设连通无向图G有k个奇顶点,要使G变成欧拉图,在G中至少要加k/2条边。 6.连通无向图G是(n,m)图,若G是平面图,则G有m-n+2个面。 三、解答题 1.有向图D如图1所示,利用D的邻接矩阵及其幂运算 求解下列问题: (1)D中长度等于3的通路和回路各有多少条。 (2)求D的可达性矩阵。 (3)求D的强分图。 解:(1) a b c d e 图1 页脚内容2

页脚内容3 M=????????????????000101000000001 010*******M 2=?? ? ? ??????? ?????010******* 000101000001000 M 3=????????????????10000 01000010000001010000M 4=??? ???? ? ??? ?????00010 01000 100000100000010 由M 3可知,D 中长度等于3的通路有5条,长度等于3的回路有3条。 (2) I+M+M 2+M 3+M 4=????????????? ???100000100000100 0001000001 +??????????? ?? ???000101000000001 010******* +??????????? ?? ???010000001000010 1000001000 +??? ???? ? ??? ?? ???100000100001000 0001010000 + ????????????????00010 01000100000100000010 =??? ???? ???? ?? ???21020 1301011111 020******* D 的可达性矩阵为 R=B (I+M+M 2+M 3+M 4)=??? ???? ? ????? ???110101********* 1101011011 b c d e 图1

图论期末考试整理复习资料

目录 第一章图的基本概念 (2) 二路和连通性 (4) 第二章树 (4) 第三章图的连通度 (6) 第四章欧拉图与哈密尔顿图 (8) 一,欧拉图 (8) 二.哈密尔顿图 (10) 第五章匹配与因子分解 (14) 一.匹配 (14) 二.偶图的覆盖于匹配 (15) 三.因子分解 (16) 第六章平面图 (20) 二.对偶图 (24) 三.平面图的判定 (25) 四.平面性算法 (28) 第七章图的着色 (34) 一.边着色 (34) 二.顶点着色 (35)

第九章 有向图 (40) 二 有向树 (41) 第一章 图的基本概念 1. 点集与边集均为有限集合的图称为有限图。 2. 只有一个顶点而无边的图称为平凡图。 3. 边集为空的图称为空图。 4. 既没有环也没有重边的图称为简单图。 5. 其他所有的图都称为复合图。 6. 具有二分类(X, Y )的偶图(或二部图):是指该图的点集可以分解为两个(非空)子 集 X 和 Y ,使得每条边的一个端点在 X 中,另一个端点在Y 中。 7. 完全偶图:是指具有二分类(X, Y )的简单偶图,其中 X 的每个顶点与 Y 的每个顶点 相连,若 |X|=m ,|Y|=n ,则这样的偶图记为 Km,n 8. 定理1 若n 阶图G 是自补的(即 ),则 n = 0, 1(mod 4) 9. 图G 的顶点的最小度。 10. 图G 的顶点的最大度。 11. k-正则图: 每个点的度均为 k 的简单图。 例如,完全图和完全偶图Kn,n 均是正则图。 12. 推论1 任意图中,奇点的个数为偶数。 ()G δ()G ?

13. 14.频序列:定理4 一个简单图G的n个点的度数不能互不相同。 15.定理5 一个n阶图G相和它的补图有相同的频序列。 16. 17. 18.对称差:G1△G2 = (G1∪G2) - (G1∩G2) = (G1-G2)∪(G2-G1) 19.定义:联图在不相交的G1和G2的并图G1+G2中,把G1的每个顶点和G2的每个 顶点连接起来所得到的图称为G1和G2的联图,记为G1∨G2 20.积图:积图设G1= (V1, E1),G2 = (V2, E2),对点集V = V1×V2中的任意两个点u = (u1,u2)和v = (v1,v2),当(u1 = v1和u2 adj v2) 或(u2 = v2 和u1 adj v1) 时就把u 和v 连接起来所得到的图G称为G1和G2积图。记为G = G1×G2 设G1= (V1, E1),G2 = (V2, E2),对点集V = V1×V2中的任意两个点u = (u1,u2)和v = (v1,v2),当(u1 adj v1) 或(u1= v1 和u2 adj v2) 时就把u 和v 连接起来所得到的图G称为G1和G2的合成图。记为G=G1[G2]。

图论 张先迪 李正良 课后习题答案

习题一 作者---寒江独钓 1.证明:在n 阶连通图中 (1) 至少有n-1条边; (2) 如果边数大于n-1,则至少有一条闭迹; (3) 如果恰有n-1条边,则至少有一个奇度点。 证明: (1) 若G 中没有1度顶点,由握手定理: ()2()21v V G m d v n m n m n ∈= ≥?≥?>-∑ 若G 中有1度顶点u ,对G 的顶点数作数学归纳。 当n=2时,结论显然;设结论对n=k 时成立。 当n=k+1时,考虑G-u,它仍然为连通图,所以,边数≥k-1.于是G 的边数≥k. (2) 考虑G 中途径: 121:n n W v v v v -→→→→L 若W 是路,则长为n-1;但由于G 的边数大于n-1,因此,存在v i 与v j ,它们相异,但邻接。于是: 1i i j i v v v v +→→→→L 为G 中一闭途径,于是 也就存在闭迹。 (3) 若不然,G 中顶点度数至少为2,于是由握手定理: ()2()21v V G m d v n m n m n ∈= ≥?≥?>-∑ 这与G 中恰有n-1条边矛盾! 2.(1)2n ?12n 2?12n ?1 (2)2n?2?1 (3) 2n?2 。 证明 :u 1的两个邻接点与v 1的两个邻接点状况不同。所以, 两图不同构。 4.证明下面两图同构。 u 1 v 1

证明:作映射f : v i ? u i (i=1,2….10) 容易证明,对?v i v j ∈E ((a)),有f (v i v j,),=,u i,u j,∈,E,((b)) (1≤ i ≤ 10, 1≤j ≤ 10 ) 由图的同构定义知,图(a)与(b)是同构的。 5.指出4个顶点的非同构的所有简单图。 分析:四个顶点的简单图最少边数为0,最多边数为6,所以 可按边数进行枚举。 (a) v 2 v 3 u 4 u (b)

电子科技大学研究生试题《图论及其应用》(参考答案)

电子科技大学研究生试题 《图论及其应用》(参考答案) 考试时间:120分钟 一.填空题(每题3分,共18分) 1.4个顶点的不同构的简单图共有__11___个; 2.设无向图G 中有12条边,已知G 中3度顶点有6个,其余顶点的度数均小于3。则G 中顶点数至少有__9___个; 3.设n 阶无向图是由k(k ?2)棵树构成的森林,则图G 的边数m= _n-k____; 4.下图G 是否是平面图?答__是___; 是否可1-因子分解?答__是_. 5.下图G 的点色数=)(G χ______, 边色数=')(G χ__5____。 图G 二.单项选择(每题3分,共21分) 1.下面给出的序列中,是某简单图的度序列的是( A ) (A) (11123); (B) (233445); (C) (23445); (D) (1333). 2.已知图G 如图所示,则它的同构图是( D ) 3. 下列图中,是欧拉图的是( D ) 4. 下列图中,不是哈密尔顿图的是(B ) 5. 下列图中,是可平面图的图的是(B ) A C D A B C D

6.下列图中,不是偶图的是( B ) 7.下列图中,存在完美匹配的图是(B ) 三.作图(6分) 1.画出一个有欧拉闭迹和哈密尔顿圈的图; 2.画出一个有欧拉闭迹但没有哈密尔顿圈的图; 3.画出一个没有欧拉闭迹但有哈密尔顿圈的图; 解: 四.(10分)求下图的最小生成树,并求其最小生成树的权值之和。 解:由克鲁斯克尔算法的其一最小生成树如下图: 权和为:20. 五.(8分)求下图G 的色多项式P k (G). 解:用公式 (G P k -G 的色多项式: )3)(3)()(45-++=k k k G P k 。 六.(10分) 22,n 3个顶点的度数为3,…,n k 个顶点的度数为k ,而其余顶点的度数为1,求1度顶点的个数。 解:设该树有n 1个1度顶点,树的边数为m. 一方面:2m=n 1+2n 2+…+kn k 另一方面:m= n 1+n 2+…+n k -1 v v 1 3 图G

图论练习题2009(学生练习)

图论练习题 一、基本题 1、设G是由5个顶点构成的完全图,则从G中删去()边可以得到树。 A.6 B.5 C.8 D.4 2、下面哪几种图不一定是树()。 A.无回路的连通图 B.有n个结点,n-1条边的连通图 C.对每对结点间都有通路的图 D.连通但删去任意一条边则不连通的图。 3、5阶无向完全图的边数为()。 A.5 B.10 C.15 D.20 4、把平面分成x个区域,每两个区域都相邻,问x最大为() A.6 B.4 C.5 D.3 5、设图G有n个结点,m条边,且G中每个结点的度数不是k,就是k+1,则G中度数为k的节点数是() A.n/2 B.n(n+1) C.nk-2m D.n(k+1)-2m 6、设G=为有向图,则有()。 A.E?V x V B.E?V x V C.V x V?E D.V x V=E 7、图G1和G2的结点和边分别存在一一对应关系是G1和G2同构的()。 A.充分条件B.必要条件C.充分必要条件D.既不充分也不必要条件8、设G=为有向图,V={a,b,c,d,e,f},E={,,,,}是()。A.强连通图B.单向连通图C.弱连通图D.不连通图 9、无向图G中的边e是G的割边(桥)的充分必要条件是()。 A.e是重边B.e不是重边 C.e不包含在G的任一简单回路中D.e不包含在G的某一简单回路中 10、在有n个结点的连通图中,其边数() A.最多有n-1条B.至少有n-1条C.最多有n条D.至少有n条 11.设无向简单图的顶点个数为n,则该图最多有()条边。 A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.n2 12.要连通具有n个顶点的有向图,至少需要()条边。 A.n-l B.n C.n+l D.2n 13.n个结点的完全有向图含有边的数目()。 A.n*n B.n(n+1) C.n/2 D.n*(n-l) 14.一个有n个结点的图,最少有()个连通分量。 A.0 B.1 C.n-1 D.n 15.一个有n个结点的图,最多有()个连通分量。 A.0 B.1 C.n-1 D.n 16.在一个无向图中,所有顶点的度数之和等于所有边数()倍。 A.1/2 B.2 C.1 D.4 17.在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的()倍。 A.1/2 B.2 C.1 D.4

课后习题及答案

1 文件系统阶段的数据管理有些什么缺陷试举例说明。 文件系统有三个缺陷: (1)数据冗余性(redundancy)。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储。 (2)数据不一致性(inconsistency)。这往往是由数据冗余造成的,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不一样。 (3)数据联系弱(poor data relationship)。这是由文件之间相互独立,缺乏联系造成的。 2 计算机系统安全性 (1)为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据; (2)防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。 3. 自主存取控制缺点 (1)可能存在数据的“无意泄露” (2)原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记 (3)解决:对系统控制下的所有主客体实施强制存取控制策略 4. 数据字典的内容和作用是什么 数据项、数据结构 数据流数据存储和加工过程。 5. 一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示。 对于“学号不能为空”的这条完整性约束用五元组描述 D:代表约束作用的数据对象为SNO属性; O(operation):当用户插入或修改数据时需要检查该完整性规则; A(assertion):SNO不能为空; C(condition):A可作用于所有记录的SNO属性; P(procdure):拒绝执行用户请求。 6.数据库管理系统(DBMS)

:①即数据库管理系统(Database Management System),是位于用户与操作系统之间的 一层数据管理软件,②为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更 新及各种数据控制。 DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面 向对象型DBMS。 7.关系模型:①用二维表格结构表示实体集,②外键表示实体间联系的数据模型称为关系模 型。 8.联接查询:①查询时先对表进行笛卡尔积操作,②然后再做等值联接、选择、投影等操作。 联接查询的效率比嵌套查询低。 9. 数据库设计:①数据库设计是指对于一个给定的应用环境,②提供一个确定最优数据模 型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起 既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管 理系统所接受,同时能实现系统目标,并有效存取数据的数据库。 10.事务的特征有哪些 事务概念 原子性一致性隔离性持续性 11.已知3个域: D1=商品集合=电脑,打印机 D3=生产厂=联想,惠普 求D1,D2,D3的卡尔积为: 12.数据库的恢复技术有哪些 数据转储和和登录日志文件是数据库恢复的

离散数学试卷及答案(2)

一、填空 20% (每小题2分) 1、 P :你努力,Q :你失败。“除非你努力,否则你将失败”的翻译为 ;“虽然你努力了,但还是失败了”的翻译为 。 2、论域D={1,2},指定谓词P 则公式),(x y yP x ??真值为 。 2、 设S={a 1 ,a 2 ,…,a 8},B i 是S 的子集,则由B 31所表达的子集是 。 3、 设A={2,3,4,5,6}上的二元关系}|,{是质数x y x y x R ∨<><=,则R= (列举法)。 R 的关系矩阵M R = 。 5、设A={1,2,3},则A 上既不是对称的又不是反对称的关系R= ; A 上既是对称的又是反对称的关系R= 。 6、设代数系统,其中A={a ,b ,c}, 则幺元是 ;是否有幂等 性 ;是否有对称性 。 7、4阶群必是 群或 群。 8、下面偏序格是分配格的是 。

9、n 个结点的无向完全图K n 的边数为 ,欧拉图的充要条件是 。 10、公式R Q P Q P P ?∧∨?∧∧?∨)(())(( 的根树表示为 。 二、选择 20% (每小题2分) 1、在下述公式中是重言式为( ) A .)()(Q P Q P ∨→∧; B .))()(()(P Q Q P Q P →∧→??; C .Q Q P ∧→?)(; D .)(Q P P ∨→ 。 2、命题公式 )()(P Q Q P ∨?→→? 中极小项的个数为( ),成真赋值的个数为( )。 A .0; B .1; C .2; D .3 。 3、设}}2,1{},1{,{Φ=S ,则 S 2 有( )个元素。 A .3; B .6; C .7; D .8 。 4、 设} 3 ,2 ,1 {=S ,定义S S ?上的等价关系 },,,, | ,,,{c b d a S S d c S S b a d c b a R +=+?>∈∈<><><<=则由 R 产 生的S S ?上一个划分共有( )个分块。 A .4; B .5; C .6; D .9 。 5、设} 3 ,2 ,1 {=S ,S 上关系R 的关系图为

图论1-3藏习题解答

学号:0441 姓名:张倩 习题1 4.证明图1-28中的两图是同构的 证明:将图1-28的两图顶点标号为如下的(a)与(b)图 作映射f : f(v i )?u i (1? i ? 10) 容易证明,对?v i v j ?E((a)),有f(v i v j )?u i u j ?E((b)) (1? i ? 10, 1?j? 10 ) 由图的同构定义知,图1-27的两个图是同构的。 5.证明:四个顶点的非同构简单图有11个。 证明:设四个顶点中边的个数为m ,则有: m=0: m=1 : m=2: m=3: (a) v 1 v 2 v 3 v v 5 v 6 v 7 v 8 v 9 v 10 u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 u 9 u 10 (b)

m=4: m=5: m=6: 因为四个顶点的简单图最多就是具有6条边,上面所列出的情形是在不同边的条件下的不同构的情形,则从上面穷举出的情况可以看出四个顶点的非同构简单图有11个。 11.证明:序列(7,6,5,4,3,3,2)和(6,6,5,4,3,3,1)不是图序列。 证明:由于7个顶点的简单图的最大度不会超过6,因此序列(7,6,5,4,3,3,2)不是图序列; (6,6,5,4,3,3,1)是图序列 ()1 1 123121,1,,1,,,=d d n d d d d d π++---是图序列 (5,4,3,2,2,0)是图序列,然而(5,4,3,2,2,0)不是图序列,所以(6,6,5,4,3,3,1)不是图序列。 12.证明:若δ≥2,则G 包含圈。 证明 只就连通图证明即可。设V(G)={v1,v2,…,vn},对于G 中的路v1v2…vk,若vk 与v1邻接,则构成一个圈。若vi1vi2…vin 是一条路,由于?? 2,因此,对vin ,存在点vik 与之邻接,则vik?vinvik 构成一个圈 。 17.证明:若G 不连通,则G 连通。 证明 对)(,_ G V v u ∈?,若u 与v 属于G 的不同连通分支,显然u 与v 在_ G 中连通;若u 与v 属于g 的同一连通分支,设w 为G 的另一个连通分支中的一个顶点,则u 与w ,v 与w 分别在_ G 中连通,因此,u 与v 在_ G 中连通。

图论与组合数学期末复习题含答案

组合数学部分 第1章 排列与组合 例1: 1)、求小于10000的含1的正整数的个数; 2、)求小于10000的含0的正整数的个数; 解:1)、小于10000的不含1的正整数可看做4位数,但0000除外.故有9×9×9×9-1=6560个.含1的有:9999-6560=3439个 2)、“含0”和“含1”不可直接套用。0019含1但不含0。在组合的习题中有许多类似的隐含的规定,要特别留神。不含0的1位数有19个,2位数有29个,3位数有39个,4位数有49个 不含0小于10000的正整数有() ()73801919999954321=--=+++个含0小于10000的正整数9999-7380=2619个。 例2: 从[1,300]中取3个不同的数,使这3个数的和能被3整除,有多少种方案? 解:将[1,300]分成3类: A={i|i ≡1(mod 3)}={1,4,7,…,298}, B={i|i ≡2(mod 3)}={2,5,8,…,299}, C={i|i ≡0(mod 3)}={3,6,9,…,300}. 要满足条件,有四种解法: 1)、3个数同属于A; 2)、3个数同属于B ; 3)、3个数同属于C; 4)、A,B,C 各取一数;故共有3C(100,3)+1003=485100+1000000=1485100。 例3:(Cayley 定理:过n 个有标志顶点的数的数目等于2-n n ) 1)、写出右图所对应的序列; 2)、写出序列22314所对应的序列; 解: 1)、按照叶子节点从小到大的顺序依次去掉节点(包含与此叶子 节点相连接的线),而与这个去掉的叶子节点相邻的另外一个点值则记入序列。如上图所示,先去掉最小的叶子节点②,与其相邻的点为⑤,然后去掉叶子节点③,与其相邻的点为①,直到只剩下两个节点相邻为止,则最终序列为51155.。 2)、首先依据给定序列写出(序列长度+2)个递增序列,即1234567,再将给出序列按从小到大顺序依次排列并插入递增序列得到:7。我们再将给出序列22314写在第一行,插入后的递增序列写在第二行。如下图第一行所示: ??→????? ??--②⑤67112223344522314??→???? ? ??--②⑥11223344672314 ??→????? ??--③②11233447314??→???? ? ??--①③11344714

07年研究生试卷(答案)

电子科技大学研究生试卷 (考试时间: 至 ,共_____小时) 课程名称 图论及其应用 教师 学时 60 学分 教学方式 讲授 考核日期_2007__年___月____日 成绩 考核方式: (学生填写) 一.填空题(每题2分,共12分) 1.简单图G=(n,m)中所有不同的生成子图(包括G 和空图)的个数是___2m __个; 2.设无向图G=(n,m)中各顶点度数均为3,且2n=m+3,则n=_ 6__; m=_9__; 3.一棵树有i n 个度数为i 的结点,i=2,3,…,k,则它有2+(i ?2)∑n i i 个度数为1的结点; 4.下边赋权图中,最小生成树的权值之和为__20___; 5、某年级学生共选修9门课。期末考试时,必须提前将这9门课先考完,每天每人只在下午考一门课,则至少需要___9__天才能考完这9门课。 二.单项选择(每题2分,共10分) 1.下面给出的序列中,不是某简单图的度序列的是( D ) (A) (11123); (B) (22222); (C) (3333); (D) (1333). 2. 下列图中,是欧拉图的是( D ) 学 号 姓 学 …………………… 密……………封…………… 线……………以……………内……………答…… ………题… …………无……………效…………………… v 5 v v 6A B

3.下列图中,不是哈密尔顿图的是(B) A B C D 4.下列图中,是可平面图的图的是(B) A B C D 5.下列图中,不是偶图的是(B) C A B D 三、 (8分)画出具有7个顶点的所有非同构的树 解:m=n?1=6 …… 四,用图论的方法证明:任何一个人群中至少有两个人认识的朋友数相同(10分) 证明:此题转换为证明任何一个没有孤立点的简单图至少有两个点的度数相同。 参考教材P5。 五.(10分) 设G为n 阶简单无向图,n>2且n为奇数,G与G的补图G中度数为奇数的顶点个数是否相等?证明你的结论 证明:根据补图定义d G(v i)+d G(v i)=n?1。相等。 由频序列相同证明有同样奇数的顶点个数。 参考教材P5。

张清华图论课后题答案.

第1章 图论预备知识 1.1 解:(1) p={φ,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}} (2) p={,{a},{{b,c}},{a,{b,c}}} (3) p={,{}} (4) p={,{},{{}},{,{}}} (5)p={,{{a,b}},{{a,a,b}},{{a,b,a,b}},{{a,b},{a,a,b}},{{a,b},{a,b,a,b}},{{a,b},{a,a,b},{a,b,a,b}}} 1.2 解:(1) 真 (2) 假 (3)假 (4)假 1.3 解:(1) 不成立,A={1} B={1,2} C={2} (2) 不成立,A={1} B={1,2} C={1,3} 1.4 证明:设(x,y)∈(A ∩B)X(C ∩D) 说明x ∈A ∩B,y ∈C ∩D 由于 x ∈A,y ∈C 所以 (x,y) ∈A X C 由于x ∈B,y ∈D 所以 (x,y) ∈B X D 所以 (x,y) ∈(A X C )∩(B X D ) 反过来,如果(x,y )∈(A X C) ∩(B X D ) 由于 (x,y) ∈(A X C )所以 x ∈A,y ∈C 由于 (x,y) ∈(B X D )所以x ∈B,y ∈D 所以x ∈(A ∩B) y ∈(C ∩D) 所以 (x,y) ∈(A ∩B)X(C ∩D) 所以(A ∩B)X(C ∩D)= (A X C) ∩(B X D ) 1.5 解:Hasse 图 φφφφφφφφφ

极大元{9,24,10,7} 极小元{3,2,5,7} 最大元{24} 最小元{2} 1.6 解 (2)关系图为: (3)不存在最大元,最小元为{2} 1.7 解:(1)R={<1,1>,<2,2>,<3,3>,<4,4>,<1,2>,<2,1>,<2,3>,<3,2>} (2)略 (3)I A ?R 故R 是自反的。 <1,2>∈R <2,3>R 但是<1,3> ?R 故不满足传递性 1.8 解:(1) 不成立 A={1} B={2} C={3} D={4} 则左式={<1,3>,<1,4>,<2,3>,<2,4>} 右式={<1,3>,<2,4>} (2) 不成立 A={1,3} B={1} C={2,4} D={2} 则左式={<3,4>} 右式={<1,4>,<3,2>,<3,4>} (3) 不成立 A={1} B={2} C={3} D={4} 则左式={<1,3>,<1,4>,<2,3>,<2,4>} 右式={<1,3>,<2,4>} (4) 成立 证明:设 ∈(A-B)X C ?x (A-B)∧ y C ?x A ∧x B ∧ y C A X C ∧ B X C (A X C)-(B XC) 故得 (A-B )X C=(A X C )-(B X C ) ∈∈∈∈∈∈?∈∈?∈

离散数学图论部分经典试题及答案

离散数学图论部分综合练习 一、单项选择题 1.设图G 的邻接矩阵为 ??? ???? ? ????? ???0101 010******* 11100100110 则G 的边数为( ). A .6 B .5 C .4 D .3 2.已知图G 的邻接矩阵为 , 则G 有( ). A .5点,8边 B .6点,7边 C .6点,8边 D .5点,7边 3.设图G =,则下列结论成立的是 ( ). A .deg(V )=2∣E ∣ B .deg(V )=∣E ∣ C .E v V v 2)deg(=∑∈ D .E v V v =∑∈)deg( 4.图G 如图一所示,以下说法正确的是 ( ) . A .{(a , d )}是割边 B .{(a , d )}是边割集 C .{(d , e )}是边割集 D .{(a, d ) ,(a, c )}是边割集 5.如图二所示,以下说法正确的是 ( ). A .e 是割点 B .{a, e }是点割集 C .{b , e }是点割集 D .{d }是点割集 6.如图三所示,以下说法正确的是 ( ) . A .{(a, e )}是割边 B .{(a, e )}是边割集 C .{(a, e ) ,(b, c )}是边割集 D .{(d , e )}是边割集 ο ο ο ο ο c a b e d ο f 图一 图二

图三 7.设有向图(a )、(b )、(c )与(d )如图四所示,则下列结论成立的是 ( ) . 图四 A .(a )是强连通的 B .(b )是强连通的 C .(c )是强连通的 D .(d )是强连通的 应该填写:D 8.设完全图K n 有n 个结点(n ≥2),m 条边,当( )时,K n 中存在欧拉回路. A .m 为奇数 B .n 为偶数 C .n 为奇数 D .m 为偶数 9.设G 是连通平面图,有v 个结点,e 条边,r 个面,则r = ( ). A .e -v +2 B .v +e -2 C .e -v -2 D .e +v +2 10.无向图G 存在欧拉通路,当且仅当( ). A .G 中所有结点的度数全为偶数 B .G 中至多有两个奇数度结点 C .G 连通且所有结点的度数全为偶数 D .G 连通且至多有两个奇数度结点 11.设G 是有n 个结点,m 条边的连通图,必须删去G 的( )条边,才能确定G 的一棵生成树. A .1m n -+ B .m n - C .1m n ++ D .1n m -+ 12.无向简单图G 是棵树,当且仅当( ). A .G 连通且边数比结点数少1 B .G 连通且结点数比边数少1 C .G 的边数比结点数少1 D .G 中没有回路. 二、填空题 1.已知图G 中有1个1度结点,2个2度结点,3个3度结点,4个4度结 点,则G 的边数是 . 2.设给定图G (如图四所示),则图G 的点割 ο ο ο ο c a b f

1 《邓稼先》课后习题参考答案

1 《邓稼先》课后习题参考答案 思考探究 一、通读全文,把握文意,回答下列问题。 1.初读课文时,哪些句段最让你感动?反复细读后,再想想这些内容是否最 能体现全文所要表达的思想情感。 2.找出文中表现奥本海默与邓稼先两人不同个性、品质的词语及细节,思考 作者为什么要进行对比,通过对比得出了怎样的结论。 参考答案:1.作者饱含真情,于字里行间高度赞扬了邓稼先深沉的爱国主义精神和将个人生命奉献给祖国国防事业的崇高情怀。这样的句段很多,如:“对这一转变做出了巨大贡献的,有一位长期以来鲜为人知的科学家——邓稼先。”“一次井下突然有一个信号测不到了,大家十分焦虑,人们劝他回去,他只说了一句话:‘我不能走。’”…… 2.文中的奥本海默与邓稼先两人的个性、品质截然不同。奥本海默是 锋芒毕露,读研究生时就常打断别人的报告,即便到了中年,成了名人,有时还会这样。而邓稼先“是一个最不要引人注目的人物”“忠厚平实”“真诚坦白,从不骄人”“没有小心眼儿,一生喜欢‘纯’字所代表的品格”“最有中国农民的朴实气质”;“他没有私心,人们绝对相信他”,“文革”中能说服两派群众组织,能说服工宣队、军宣队。作者把奥本海默与邓稼先进行对比,鲜明地突出邓稼先的精神品质,自然而然地得出结论:“邓稼先是中国几千年传统文化孕育出来的有最高奉献精神的儿子”“邓稼先是中国共产党的理想党员”。 二、有感情地朗读课文第五部分,想一想:这部分开头引用《吊古战场文》, 有什么作用?结尾处又引用儿时学到的“‘五四’时代的一首歌”,表达了怎样的情感? 参考答案:课文第五部分开头引用《吊古战场文》,把读者引入中国历史的深处,让人从中国传统文化的角度去思考。结尾处引用自己儿时学到的“‘五四’时代的一首歌”,说明了邓稼先就是一个典型的中国男儿,他有着为祖国而献身的崇高的精神品质。

离散数学图论部分经典试题及答案

离散数学图论部分综合练习 一、单项选择题 1.设图G 的邻接矩阵为 ??? ???? ? ????? ???01010 1001000001 1100100110 则G 的边数为( ). A.6 B.5 C.4 D.3 2.已知图G 的邻接矩阵为 , 则G 有( ). A.5点,8边 B.6点,7边 C.6点,8边 D.5点,7边 3.设图G =,则下列结论成立的就是 ( ). A.deg(V )=2∣E ∣ B.deg(V )=∣E ∣ C.E v V v 2)deg(=∑∈ D.E v V v =∑∈)deg( 4.图G 如图一所示,以下说法正确的就是 ( ) . A.{(a , d )}就是割边 B.{(a , d )}就是边割集 C.{(d , e )}就是边割集 D.{(a, d ) ,(a, c )}就是边割集 5.如图二所示,以下说法正确的就是 ( ). A.e 就是割点 B.{a, e }就是点割集 C.{b , e }就是点割集 D.{d }就是点割集 6.如图三所示,以下说法正确的就是 ( ) . A.{(a, e )}就是割边 B.{(a, e )}就是边割集 C.{(a, e ) ,(b, c )}就是边割集 D.{(d , e )}就是边割集 ο ο ο ο ο c a b e d ο f 图一 图二

图三 7.设有向图(a )、(b )、(c )与(d )如图四所示,则下列结论成立的就是 ( ). 图四 A.(a )就是强连通的 B.(b )就是强连通的 C.(c )就是强连通的 D.(d )就是强连通的 应该填写:D 8.设完全图K n 有n 个结点(n ≥2),m 条边,当( )时,K n 中存在欧拉回路. A.m 为奇数 B.n 为偶数 C.n 为奇数 D.m 为偶数 9.设G 就是连通平面图,有v 个结点,e 条边,r 个面,则r = ( ). A.e -v +2 B.v +e -2 C.e -v -2 D.e +v +2 10.无向图G 存在欧拉通路,当且仅当( ). A.G 中所有结点的度数全为偶数 B.G 中至多有两个奇数度结点 C.G 连通且所有结点的度数全为偶数 D.G 连通且至多有两个奇数度结点 11.设G 就是有n 个结点,m 条边的连通图,必须删去G 的( )条边,才能确定G 的一棵生成树. A.1m n -+ B.m n - C.1m n ++ D.1n m -+ 12.无向简单图G 就是棵树,当且仅当( ). A.G 连通且边数比结点数少1 B.G 连通且结点数比边数少1 C.G 的边数比结点数少1 D.G 中没有回路. 二、填空题 1.已知图G 中有1个1度结点,2个2度结点,3个3度结点,4个4度结点,则G 的边数就是 . 2.设给定图G (如图四所示),则图G 的点割 集就是 . 3.若图G=中具有一条汉密尔顿回路, 则对于结点集V 的每个非空子集S ,在G 中删除S 中的所有结点得到的连通分支数为W ,则S 中结点 数|S|与W 满足的关系式为 . 4.无向图G 存在欧拉回路,当且仅当G 连通 且 . 5.设有向图D 为欧拉图,则图D 中每个结点的入度 . ο ο ο ο ο c a b e d ο f 图四

习题参考解答(图论部分)

习题十 1. 设G 是一个(n ,m)简单图。证明:,等号成立当且仅当G 是完全图。 证明:(1)先证结论: 因为G 是简单图,所以G 的结点度上限 max(d(v)) ≤ n-1, G 图的总点度上限为 max(Σ(d(v)) ≤ n ﹒max(d(v)) ≤ n(n-1) 。根据握手定理,G 图边的上限为 max(m) ≤ n(n-1)/2,所以。 (2) =〉G 是完全图 因为G 具有上限边数,假设有结点的点度小于n-1,那么G 的总度数就小于上限值,边数就小于上限值,与条件矛盾。所以,G 的每个结点的点度都为n-1,G 为完全图。 G 是完全图 =〉 因为G 是完全图,所以每个结点的点度为n-1, 总度数为n(n-1),根据握手定理,图G 的边数 。■ 2. 设G 是一个(n ,n +1)的无向图,证明G 中存在顶点u ,d (u )≥3。 证明:反证法,假设,则G 的总点度上限为max(Σ(d(u)) ≤2 n ,根据握手定理,图边的上限为max(m) ≤ 2n/2=n 。与题设m = n+1,矛盾。因此,G 中存在顶点u ,d (u )≥3。■ 3.确定下面的序列中哪些是图的序列,若是图的序列,画出一个对应的图来: (1)(3,2,0,1,5); (2)(6,3,3,2,2) (3)(4,4,2,2,4); (4)(7,6,8,3,9,5) 解:除序列(1)不是图序列外,其余的都是图序列。因为在(1)中,总和为奇数,不满足图总度数为偶数的握手定理。 可以按如下方法构造满足要求的图:序列中每个数字ai 对应一个点,如果序列数字是偶数,那么就在对应的点上画ai/2个环,如果序列是奇数,那么在对应的点上画(ai-1)/2个环。最后,将奇数序列对应的点两两一组,添加连线即可。下面以(2)为例说明: (6 , 3, 3, 2, 2 ) 对应图G 的点集合V= { v 1,v 2,v 3,v 4,v 5} 每个结点对应的环数(6/2, (3-1)/2, (3-1)/2, 2/2,2/2) = (3,1,1,1,1)

离散数学试卷及答案

一、填空 20% 1、 P :你努力,Q :你失败。“除非你努力,否则你将失败”的翻译为 ;“虽然你努力了,但还是失败了”的翻译为 。 2、论域D={1,2},指定谓词P 则公式),(x y yP x ??真值为 。 2、 设S={a 1 ,a 2 ,…,a 8},B i 是S 的子集,则由B 31所表达的子集是 。 3、 设A={2,3,4,5,6}上的二元关系}|,{是质数x y x y x R ∨<><=,则R= (列举法)。 R 的关系矩阵M R = 。 5、设A={1,2,3},则A 上既不是对称的又不是反对称的关系R= ; A 上既是对称的又是反对称的关系R= 。 6、设代数系统,其中A={a ,b ,c}, 则幺元是 ;是否有幂等 性 ;是否有对称性 。 7、4阶群必是 群或 群。 8、下面偏序格是分配格的是 。

9、n 个结点的无向完全图K n 的边数为 ,欧拉图的充要条件是 。 10、公式R Q P Q P P ?∧∨?∧∧?∨)(())(( 的根树表示为 。 二、选择 20% (每小题2分) 1、在下述公式中是重言式为( ) A .)()(Q P Q P ∨→∧; B .))()(()(P Q Q P Q P →∧→??; C .Q Q P ∧→?)(; D .)(Q P P ∨→ 。 2、命题公式 )()(P Q Q P ∨?→→? 中极小项的个数为( ),成真赋值的个数为( )。 A .0; B .1; C .2; D .3 。 3、设}}2,1{},1{,{Φ=S ,则 S 2 有( )个元素。 A .3; B .6; C .7; D .8 。 4、 设} 3 ,2 ,1 {=S ,定义S S ?上的等价关系 },,,, | ,,,{c b d a S S d c S S b a d c b a R +=+?>∈∈<><><<=则由 R 产 生的S S ?上一个划分共有( )个分块。 A .4; B .5; C .6; D .9 。 5、设} 3 ,2 ,1 {=S ,S 上关系R 的关系图为

图论习题参考答案

二、应用题 题0:(1996年全国数学联赛) 有n (n ≥6)个人聚会,已知每个人至少认识其中的[n /2]个人,而对任意的[n /2]个人,或者其中有两个人相互认识,或者余下的n -[n /2]个人中有两个人相互认识。证明这n 个人中必有3个人互相认识。 注:[n /2]表示不超过n /2的最大整数。 证明 将n 个人用n 个顶点表示,如其中的两个人互相认识,就在相应的两个顶点之间连一条边,得图G 。由条件可知,G 是具有n 个顶点的简单图,并且有 (1)对每个顶点x , )(x N G ≥[n /2]; (2)对V 的任一个子集S ,只要S =[n /2],S 中有两个顶点相邻或V-S 中有 两个顶点相邻。 需要证明G 中有三个顶点两两相邻。 反证,若G 中不存在三个两两相邻的顶点。在G 中取两个相邻的顶点x 1和y 1,记N G (x 1)={y 1,y 2,……,y t }和N G (y 1)={x 1,x 2,……,x k },则N G (x 1)和N G (y 1)不相交,并且N G (x 1)(N G (y 1))中没有相邻的顶点对。 情况一;n=2r :此时[n /2]=r ,由(1)和上述假设,t=k=r 且N G (y 1)=V-N G (x 1),但N G (x 1)中没有相邻的顶点对,由(2),N G (y 1)中有相邻的顶点对,矛盾。 情况二;n=2r+1: 此时[n /2]=r ,由于N G (x 1)和N G (y 1)不相交,t ≥r,k ≥r,所以r+1≥t,r+1≥k 。若t=r+1,则k=r ,即N G (y 1)=r ,N G (x 1)=V-N G (y 1),由(2),N G (x 1)或N G (y 1)中有相邻的顶点对,矛盾。故k ≠r+1,同理t ≠r+1。所以t=r,k=r 。记w ∈V- N G (x 1) ∪N G (y 1),由(2),w 分别与N G (x 1)和N G (y 1)中一个顶点相邻,设wx i0∈E, wy j0∈E 。若x i0y j0∈E ,则w ,x i0, y j0两两相邻,矛盾。若x i0y j0?E ,则与x i0相邻的顶点只能是(N G (x 1)-{y j0})∪{w},与y j0相邻的顶点只能是(N G (y 1)-{x j0})∪{w}。但与w 相邻的点至少是3,故N G (x 1)∪N G (y 1)中存在一个不同于x i0和y j0顶点z 与w 相邻,不妨设z ∈N G (x 1),则z ,w ,x i0两两相邻,矛盾。 题1:已知图的结点集V ={a ,b ,c ,d }以及图G 和图D 的边集合分别为: E (G )={(a ,a ), (a ,b ), (b ,c ), (a ,c )} E (D)={, , , , } 试作图G 和图D ,写出各结点的度数,回答图G 、图D 是简单图还是多重图? 解: a d a d b c b c 图G 图D 例2图

相关文档
相关文档 最新文档