数学建模社区-数学中国
标题:
关于图论的广度优化搜索,语句while~isempty(g==1)正确吗?
[打印本页]
作者:
ganquanlife
时间:
2013-3-2 17:01
标题:
关于图论的广度优化搜索,语句while~isempty(g==1)正确吗?
此程序的14行,while~isempty(g==1),为什么行呢,什么意思?难道这个和while~isempty(find(g==1))是同一个意思?
; ~5 Y3 ?- P& N. p0 N1 i
我个人理解,g==1除非g是空的,否则g==1都会返回一个逻辑矩阵才对啊,不会变成空的。
& b. f" R7 G8 F6 c7 t7 p, I: T
function [w] = bfsf1(g)
' h, _5 ^, m( }
%广度优先搜索
' M+ Z3 W) M; F* ?# T7 d
%g:邻接矩阵。w顶点标号
) y, o8 @( G+ v1 {3 O7 y* z" R
n=size(g,1);
. a( ~. S! B7 h
w=zeros(1,n);
5 S9 ]" N1 `+ h+ E6 E6 Z3 e
l=0;
3 W3 ]0 e; F# t
v=1;
. [- _5 D. ]3 m/ i& |+ W
a1=find(g(v,:)==1);
( l- z; ~! I% M' G7 ~
g(v,a1)=2;
) G! z2 F5 Z1 M( N, ^3 e
g(a1,v)=2;
1 Y) C" N% }) {; H! p1 X: E
w(a1)=l+1;
4 L. f: h D- O3 n6 z7 u
s1=union(a1,v);
& s2 [$ A5 y7 ^/ s2 j, G% T% s+ Q: J
l=l+1;
- E; S% _8 p$ l6 A# x
while~isempty(g==1)
* K6 O- j3 U# J; V2 J ?
a1=find(g(s1,:)==1);
$ q$ X/ d0 d# x5 t$ m1 [5 B6 _+ a
t=length(s1);
: z2 Z6 e1 J8 c$ Q/ D
d=[];
z3 y9 x3 t- H& J; R! m+ D9 i
for i=1:length(a1)
( |% r+ S9 P0 k/ U/ i
if a1(i)/t>floor(a1(i)/t)
7 F' C( p- y% {$ l) f! U
t2=floor(a1(i)/t)+1;
$ B1 w. h6 U8 Z2 b6 l; f5 `
else
M2 |: o0 E9 G$ V8 P. q# l
t2=floor(a1(i)/t);
* q8 z$ t$ B2 R
end
9 A2 J% h7 Z( K s" W" Z
if isempty(intersect(d,t2))
$ i, ]; O; I& D
d=union(d,t2);
9 U- ?* M1 }; I0 ?: Z, V
end
* ]9 n L% U% f" F0 C
end
1 }( `' R3 @# I8 H% r4 X+ ^
d1=setdiff(d,s1);
& s- H; g$ D6 H( h( o$ p
if isempty(d1)
Z* |( p; B9 [- a! b# Q
break;
1 N7 B; c% ]4 b- N' I+ F
else
. m6 w. C" ]; u) Y! U
w(d1)=l+1;
* M1 J4 @& g# l2 N; I
g1=g(s1,:);
7 ?- T# `/ j g& v! z. c! F4 N
g1(a1)=2;
6 w. x8 [3 w' B1 h$ @
g(s1,:)=g1;
, c* Q, S6 ^& F9 k& u$ W
g(:,s1)=g1';
$ h" V* V. s f
s1=union(s1,d1);
" d0 s& b$ g$ Q9 I, K* g" I
l=l+1;
4 M; X, y! t& |/ I
end
6 j& M: }. E/ v
end
2 v& N# v2 x8 j' n
) q2 \* R2 {, m
end
2 } {& B9 A# f' ~ N
: }+ `( x9 ~3 y! I
作者:
ganquanlife
时间:
2013-3-2 17:04
帖子里面的笑脸其实是: 和) 不知怎么搞的打出来了就变成了笑脸
作者:
madio
时间:
2013-3-2 21:34
ganquanlife 发表于 2013-3-2 17:04
* G" x0 E' B$ F2 m0 v8 J1 C9 L
帖子里面的笑脸其实是: 和) 不知怎么搞的打出来了就变成了笑脸
7 Q- W4 i% _1 X: F2 v; Y! K# R( s
这种情况在右侧点击“禁用表情”就没有了。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5