数学建模社区-数学中国
标题:
关于图论的广度优化搜索,语句while~isempty(g==1)正确吗?
[打印本页]
作者:
ganquanlife
时间:
2013-3-2 17:01
标题:
关于图论的广度优化搜索,语句while~isempty(g==1)正确吗?
此程序的14行,while~isempty(g==1),为什么行呢,什么意思?难道这个和while~isempty(find(g==1))是同一个意思?
- B! p3 q3 M. T
我个人理解,g==1除非g是空的,否则g==1都会返回一个逻辑矩阵才对啊,不会变成空的。
1 j' m i: K2 g) a4 H7 h: `
function [w] = bfsf1(g)
. q& {( M- l: j5 A. _* p" p
%广度优先搜索
7 P' W% q( N) ]5 m% {& x% {6 H1 ?% ?
%g:邻接矩阵。w顶点标号
- h/ T; f) d* I# o/ ~8 b* M- G+ `9 I
n=size(g,1);
7 i: W; w- ?! | ?' T/ P# j
w=zeros(1,n);
$ V4 l, @6 W# B: c. T+ L6 l
l=0;
* ~& ]+ g F$ J
v=1;
# M) r3 F: i p& o
a1=find(g(v,:)==1);
_1 H) I7 ^) @7 d
g(v,a1)=2;
' x* X& C! E: n/ L
g(a1,v)=2;
. Z$ Y, c L# t; ]
w(a1)=l+1;
+ n, `4 o# o) S8 t! Q+ Q
s1=union(a1,v);
3 @1 k& a2 z) ^: ~0 z, {/ m
l=l+1;
2 c, R/ Q& g' U6 s+ ?2 U+ Q$ B
while~isempty(g==1)
9 @4 [2 r/ r! \! L n
a1=find(g(s1,:)==1);
& r$ O: n9 D, [
t=length(s1);
+ x5 |- B2 ?- v0 a
d=[];
0 \3 W+ g6 n0 Q. o) T: ]( b
for i=1:length(a1)
! F0 [; ~, `6 l9 b
if a1(i)/t>floor(a1(i)/t)
. @1 m: J1 T3 I% J- i
t2=floor(a1(i)/t)+1;
- }- c; c3 X4 M! R
else
: e( I' b% ^1 t6 q& G' W2 r
t2=floor(a1(i)/t);
; _; Q7 O# j8 c& P: D) ]! K& L
end
/ ^0 S* k) q4 \9 c% [% x
if isempty(intersect(d,t2))
! a; W' ], b, A! A: Y
d=union(d,t2);
4 b' j% Z, |$ ?
end
, o, v/ s& ~* w& _' j
end
' a/ E. [4 S2 M' m
d1=setdiff(d,s1);
! z6 _/ I1 G1 Y) q& o. H0 y
if isempty(d1)
' {1 J* h' K% ]- @) k/ L
break;
% y+ A, n, o4 \) J: k% m
else
0 [1 y5 B2 o3 J& o! f/ O
w(d1)=l+1;
' f2 W3 q. z: t9 e2 I) u( g& K' P7 j
g1=g(s1,:);
4 m! a' W1 V2 e; h0 K
g1(a1)=2;
; \8 b+ y4 R4 s, P$ j6 t) h
g(s1,:)=g1;
8 |. b# {4 J: U k
g(:,s1)=g1';
7 D$ |& T {1 C; O
s1=union(s1,d1);
# B9 e' ?+ x; |' {
l=l+1;
( k" H N. ]/ z& y) N: I1 r6 Z# s4 y
end
& R3 u# w9 a! S/ Y' C1 U4 H
end
0 F$ N# n9 n! T; \; |. q* b/ X
7 ?9 L- C* | I' n4 [* E
end
% }9 \# u7 j6 j$ ~1 X9 J9 |
( F) S. d2 ^( N; G- E4 ~
作者:
ganquanlife
时间:
2013-3-2 17:04
帖子里面的笑脸其实是: 和) 不知怎么搞的打出来了就变成了笑脸
作者:
madio
时间:
2013-3-2 21:34
ganquanlife 发表于 2013-3-2 17:04
$ l( s3 S, S0 r5 Z2 ?" `. V
帖子里面的笑脸其实是: 和) 不知怎么搞的打出来了就变成了笑脸
e( ^( r* Z0 u+ N2 N! l6 i3 b; l
这种情况在右侧点击“禁用表情”就没有了。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5