数学建模社区-数学中国
标题:
关于图论的广度优化搜索,语句while~isempty(g==1)正确吗?
[打印本页]
作者:
ganquanlife
时间:
2013-3-2 17:01
标题:
关于图论的广度优化搜索,语句while~isempty(g==1)正确吗?
此程序的14行,while~isempty(g==1),为什么行呢,什么意思?难道这个和while~isempty(find(g==1))是同一个意思?
' a2 f* h% O& A' L, _2 }# B
我个人理解,g==1除非g是空的,否则g==1都会返回一个逻辑矩阵才对啊,不会变成空的。
8 v1 b8 B+ X) f/ Z5 e L
function [w] = bfsf1(g)
$ e0 Y; }* z B# J" |
%广度优先搜索
2 |8 L' u+ }0 P! b7 q4 J/ ~
%g:邻接矩阵。w顶点标号
1 P) x* h7 ]; P
n=size(g,1);
# G: E7 D+ U% R" z# v- a
w=zeros(1,n);
$ i& J) [# y% f3 s9 t
l=0;
1 x9 N! U2 Q- _' S
v=1;
; }4 K: R O) g6 g* b
a1=find(g(v,:)==1);
) q2 J3 g! ~4 |3 y' r
g(v,a1)=2;
+ W5 T+ w% x$ @
g(a1,v)=2;
$ _' V- g# h% t! j: Q1 d7 J% J# Z
w(a1)=l+1;
# `' \( S0 O. j Z
s1=union(a1,v);
1 K8 K* L& U; l4 h2 k8 }4 u. U
l=l+1;
/ t/ {# Q8 I" }* J
while~isempty(g==1)
) u9 u0 j- P* P
a1=find(g(s1,:)==1);
2 d7 m# m) m4 m, v# w
t=length(s1);
+ s% q# F* l C1 {0 {% J* o$ w
d=[];
: k1 o" u1 b( u7 \" S; l
for i=1:length(a1)
5 B O& _: q; \6 N' z" C
if a1(i)/t>floor(a1(i)/t)
$ h3 s3 z# X2 G; j/ H& ?) q4 T3 h& z
t2=floor(a1(i)/t)+1;
6 g$ y, J) |8 C3 {: n; j+ }7 Y
else
; U! X! e! U) m
t2=floor(a1(i)/t);
1 Y6 h! t: V8 I7 C
end
( r! r/ e% E h6 p) ]% h: a @1 {
if isempty(intersect(d,t2))
2 y6 {, H2 R2 `' q: O' j( { o) _- V
d=union(d,t2);
: i' Q4 m8 Y7 v; a$ v5 R
end
5 y% |0 R z/ Z1 M
end
* f. {8 [5 q8 E
d1=setdiff(d,s1);
" Z7 r' N) ?+ ?1 B( v$ c8 x
if isempty(d1)
! h A+ ^# F0 S' w2 }1 f! E
break;
9 c; O' y, v2 R Z/ z8 t. F2 `
else
8 e/ K) U7 w4 U1 ?- Y$ x
w(d1)=l+1;
* l& ^: H$ B* h7 Y; P
g1=g(s1,:);
' |8 N* W5 s6 X. p8 [) l
g1(a1)=2;
/ }) D5 E3 k: X& Z d3 Y1 C' k
g(s1,:)=g1;
0 q# y1 i3 I2 U- I
g(:,s1)=g1';
6 g/ Z3 s* e7 x/ [) B* ^! `" P8 ^
s1=union(s1,d1);
' u* U' F7 F8 H) A
l=l+1;
' y, K4 _, e6 I: `1 b
end
0 ~: u+ O8 n8 _) v: }9 c g/ ^& p8 t
end
$ J* @7 P3 y6 W
7 a7 {7 T: s2 v
end
$ H1 t8 c N1 u. D' ]* V" \2 Q
5 M6 G+ n$ n! |( s5 Y
作者:
ganquanlife
时间:
2013-3-2 17:04
帖子里面的笑脸其实是: 和) 不知怎么搞的打出来了就变成了笑脸
作者:
madio
时间:
2013-3-2 21:34
ganquanlife 发表于 2013-3-2 17:04
( V+ K. f7 Q0 w# v! B
帖子里面的笑脸其实是: 和) 不知怎么搞的打出来了就变成了笑脸
|5 E/ g# Y! s+ {9 W1 c4 ]
这种情况在右侧点击“禁用表情”就没有了。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5