solution for algorithm to link status?

nodes = 3; m = 0.7
for i = 1:nodes
for j = i+1:nodes
test = unifrnd(0,1)
if ni = 1
nj = 1:nodes
if (test<=m/ni=1/nj=1)
li,j = 1
else
li,j = 0
end
lj,i = li,j
end
L = li,j;lj,i
end
please to generate this

 採用された回答

Walter Roberson
Walter Roberson 2021 年 3 月 17 日
編集済み: Walter Roberson 2021 年 3 月 17 日

1 投票

nodes = 3; m = 0.7;
for i = 1:nodes
for j = i+1:nodes
test = unifrnd(0,1);
if ni == 1
nj = 1:nodes;
if (test<=m/ni==1./nj==1)
l(i,j) = 1;
else
l(i,j) = 0;
end
l(j,i) = l(i,j);
end
L = [l(i,j);l(j,i)];
end
end
However, we can prove that the if (test<=m/ni==1./nj==1) will be false except when nodes = 1 (in which case the code is just rather strange but could be true sometimes.)

31 件のコメント

ankanna
ankanna 2021 年 3 月 17 日
undefined function or variable ni is obtained
Walter Roberson
Walter Roberson 2021 年 3 月 17 日
Yes, that is to be expected. Your code uses ni twice but does not define it at all. You need to define it as something appropriate to the situation.
I would, however, point out that if ni is not either 1 or a vector of all 1's, then the if ni = 1 would fail, and your code would not construct l(i,j) or l(j,i) . That would suggest that for all the interesting cases, ni = 1 would have to be in effect.
ankanna
ankanna 2021 年 3 月 17 日
for i = 1,2,...,n
for j = i+1,...,n
test - select random number from uniform distribution between (0,1)
if (test<=;λ∩ni = 1∩nj = 1) then Li,j = 1
else; Li,j = 0
Lj,i = Li,j
L - load Li,j and Lj,i into the matrix L
this is the question actual
ankanna
ankanna 2021 年 3 月 17 日
the document of 2tr
ankanna
ankanna 2021 年 3 月 17 日
please help to solve this algorithm
Walter Roberson
Walter Roberson 2021 年 3 月 17 日
Sorry, I looked at the document but it uses notation that I do not understand. I think that the authors would need to be asked for the meaning of part of it. In particular, I do not understand the semi-colon between the less-than-or-equal-to and the lambda.
Walter Roberson
Walter Roberson 2021 年 3 月 17 日
編集済み: Walter Roberson 2021 年 4 月 7 日
nodes = 3; lambda = 0.7;
r = rand(1, nodes) * 0.3 + 0.7; %reliability
%4.2.1.1
%no loop needed in MATLAB
n = rand(1,nodes) <= r;
%4.2.1.2
%no loop needed in MATLAB
test = squareform(rand(1,nodes*(nodes-1)/2));
test(1:nodes+1:end) = 0; %node to itself is fully reliable
L = double(test <= lambda & n & n.');
L(1:nodes+1:end) = nan; %but algorithm leaves node to itself undefined
L
L = 3×3
NaN 1 1 1 NaN 0 1 0 NaN
ankanna
ankanna 2021 年 3 月 21 日
probability of existence of a topology is given by
P(alfak=1) = lamda^nl*(1-lamda)^nu
Where
lamda = probability of link existence = 0.7
nl = linked nodes and
nu = unlinked nodes
now we take 0 0 0
p(alfak=1) =(0.7)^0*(1-0.7)^3
=0.027
0 0 1
p(alfak=1)=(0.7)^1*(1-0.7)^2
= 0.063
0 1 0 and 1 0 0 also sme because only one linked
p(alfak=1)=(0.7)^1*(1-0.7)^2
= 0.063
0 11, 1 0 1, 1 1 0
p(alfak=1)=(0.7)^2*(1-0.7)^1
= 0.147
1 1 1
p(alfak=1)=(0.7)^3*(1-0.7)^0
= 0.343
output will
L12 L13 L23 p(alfak=1)
___ ___ ___ _______
0 0 0 0.027
0 0 1 0.063
0 1 0 0.063
0 1 1 0.147
1 0 0 0.063
1 0 1 0.147
1 1 0 0.147
1 1 1 0.343
i need to generate above matrix
please help me to generate the code
Walter Roberson
Walter Roberson 2021 年 3 月 21 日
format long g
nodes = 10;
lamda = 0.7;
bits = dec2bin(0:2^nodes-1)-'0';
nl = sum(bits,2);
nu = nodes-nl;
P = lamda.^nl .* (1-lamda).^nu;
P(1:20)
ans = 20×1
5.90490000000001e-06 1.37781e-05 1.37781e-05 3.21489e-05 1.37781e-05 3.21489e-05 3.21489e-05 7.50141000000001e-05 1.37781e-05 3.21489e-05
[minP, minidx] = min(P)
minP =
5.90490000000001e-06
minidx =
1
bits(minidx,:)
ans = 1×10
0 0 0 0 0 0 0 0 0 0
[maxP, maxidx] = max(P)
maxP =
0.0282475249
maxidx =
1024
bits(maxidx,:)
ans = 1×10
1 1 1 1 1 1 1 1 1 1
histogram(P)
ankanna
ankanna 2021 年 3 月 21 日
how to take 3 by matrix in the order NN will
NN = 1 2 3
1
2
3
for example,
0 0 1
in the matrix
[ 0 1 1
1 0 0
1 0 0 ]
how to generate these type of matrix
ankanna
ankanna 2021 年 3 月 21 日
up to n
Walter Roberson
Walter Roberson 2021 年 3 月 21 日
I do not understand the question. You want each matrix to have 3 rows and NN columns ? What should be in the columns?
ankanna
ankanna 2021 年 3 月 22 日
columns will be in logic 123
and row logic should also 123
we take
001
1 2 3
1 0 1 1
2 1 0 0
3 1 0 0
here 1 2 3 are three nodes n =3
number of links will be 8 (000 to 111)
how to generate above logic matrix ?
Walter Roberson
Walter Roberson 2021 年 3 月 22 日
I have no idea what you are asking, if you are not asking something that I solved for you days ago.
ankanna
ankanna 2021 年 4 月 7 日
that code have an error. the error is undefined variable l
ankanna
ankanna 2021 年 4 月 7 日
please help me to generate error free output
ankanna
ankanna 2021 年 4 月 7 日
for i = 1,2,...,n
for j = i+1,...,n
test - select random number from uniform distribution between (0,1)
if (test<=;λ∩ni = 1∩nj = 1) then Li,j = 1
else; Li,j = 0
Lj,i = Li,j
L - load Li,j and Lj,i into the matrix L
this is the actual procedure to generate link status
Walter Roberson
Walter Roberson 2021 年 4 月 7 日
that code have an error. the error is undefined variable l
Please post the URL of the code that I posted that had the undefined variable l ?
Walter Roberson
Walter Roberson 2021 年 4 月 7 日
this is the actual procedure to generate link status
Sorry, I looked at the document but it uses notation that I do not understand. I think that the authors would need to be asked for the meaning of part of it. In particular, I do not understand the semi-colon between the less-than-or-equal-to and the lambda.
If the semi-colon were not there, then the test
if (test<=;λ∩ni = 1nj = 1) then Li,j = 1
else; Li,j = 0
would translate as
L(i,j) = test <= lambda && ni == 1 && nj == 1;
However it is not clear in the document whether ni and nj are intended to be distinct variables or are intended to be a vector n indexed at locations i and j -- but that would be a problem because n occurs as a limit in the for statement, implying that it is a scalar.
When I looked at the paper, it seemed most likely that the equation was wrong, that the operator in the test should be instead of ∩
ankanna
ankanna 2021 年 4 月 7 日
L = [l(i,j);l(j,i)];
obtain error only in this part
ankanna
ankanna 2021 年 4 月 7 日
how to change this . if any logic is available to change this
Walter Roberson
Walter Roberson 2021 年 4 月 8 日
You seem to be referring to the earlier posting,
nodes = 3; m = 0.7;
for i = 1:nodes
for j = i+1:nodes
test = unifrnd(0,1);
if ni == 1
nj = 1:nodes;
if (test<=m/ni==1./nj==1)
l(i,j) = 1;
else
l(i,j) = 0;
end
l(j,i) = l(i,j);
end
L = [l(i,j);l(j,i)];
end
end
Unrecognized function or variable 'ni'.
No undefined variable l because it never gets that far due to ni and nj being undefined.
Walter Roberson
Walter Roberson 2021 年 4 月 8 日
So what happens if we define them?
ni = randi([0 1])
ni = 0
nj = randi([0 1])
nj = 0
nodes = 3; m = 0.7;
for i = 1:nodes
for j = i+1:nodes
test = unifrnd(0,1);
if ni == 1
nj = 1:nodes;
if (test<=m/ni==1./nj==1)
l(i,j) = 1;
else
l(i,j) = 0;
end
l(j,i) = l(i,j);
end
L = [l(i,j);l(j,i)]
end
end
Unrecognized function or variable 'l'.
Okay, that starts to make sense. You only assign to l if ni == 1 . So, we will have to initialize l
Walter Roberson
Walter Roberson 2021 年 4 月 8 日
ni = randi([0 1])
ni = 0
nj = randi([0 1])
nj = 0
nodes = 3; m = 0.7;
l = zeros(nodes, nodes);
for i = 1:nodes
for j = i+1:nodes
test = unifrnd(0,1);
if ni == 1
nj = 1:nodes;
if (test<=m/ni==1./nj==1)
l(i,j) = 1;
else
l(i,j) = 0;
end
l(j,i) = l(i,j);
end
L = [l(i,j);l(j,i)]
end
end
L = 2×1
0 0
L = 2×1
0 0
L = 2×1
0 0
l
l = 3×3
0 0 0 0 0 0 0 0 0
ankanna
ankanna 2021 年 4 月 8 日
i dont want l is 000
i need only this
l = 3×3
0 1 1
1 0 1
1 1 0
ankanna
ankanna 2021 年 4 月 8 日
please help to generate this code
ankanna
ankanna 2021 年 4 月 8 日
nodes=3; ri=0.9, lamda=0.7;
l = zeros(nodes, nodes);
for i=1: nodes
test=unifrnd (0,1)
if test<=ri
ni=1
else
ni=0
end
ns(i)=[ni]
end
for i=1:nodes
for j=i+3:nodes
test=unifrnd (0,1)
if test<=(lamda/ns(i)==1/ns(j)==1)
l(i,j)=1
else
l(i,j)=0
end
l(j,i) = l(i,j)
end
L = [l(i,j);l(j,i)]
end
this will be generated but the output is
L[ ]
ankanna
ankanna 2021 年 4 月 8 日
i want output L will be
0 1 1
1 0 1
1 1 0
please help me to generate this output
Walter Roberson
Walter Roberson 2021 年 4 月 8 日
You cannot get that output with that algorithm. The paper published the wrong algorithm.
ankanna
ankanna 2021 年 4 月 8 日
if any possible to change this algarithm.
ankanna
ankanna 2021 年 4 月 8 日
please to generate link status i.e., the output will be contain this matrix. how to generate this code
0 1 1
1 0 1
1 1 0

サインインしてコメントする。

その他の回答 (0 件)

製品

リリース

R2016a

質問済み:

2021 年 3 月 17 日

コメント済み:

2021 年 4 月 8 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by