Matrix Modeling

类别:软件工程 点击:0 评论:0 推荐:
Blacklist Matrix Modeling Question:

For instance, A, B, C, D are all subscribers.

A has a black list, for instance, which includes

subscribers B, C, D. We call this blacklist is

user width blacklist. It means that user B, C, D

all have no rights to send message to A.

Vice versa, User A also can’t send to B, C, D.

In another words, there is no communication

path available between A and B, C, D.

In following a series of figures, crossing points

of A (line/column) and B, C, D (column/line) will

be marked with X (A). The reason why there is

(A) beside X is in order to correctly set X to O

or not when removing B, C, D from User A’s

blacklist.

 

Legend:

v       S : System width blacklist  flag

It means that this subscriber is

Prohibited by system whatever

sender or receiver.

v       D : disable flag

It means that this subscriber is

prohibited, probably temporarily.

Scenario:

1.        Firstly, constructs a matrix including all

users. The status of all elements in matrix is Ok.

 

A

B

C

D

E

A

O

O

O

O

O

B

O

O

O

O

O

C

O

O

O

O

O

D

O

O

O

O

O

E

O

O

O

O

O

 

2.        Next, fills system width blacklist into matrix

v       D

 

A

B

C

D(s)

E

A

O

O

O

X

O

B

O

O

O

X

O

C

O

O

O

X

O

D(s)

X

X

X

X

X

E

O

O

O

X

O

 

3.        Next, fills disable users into matrix.

v       B

 

A

B(d)

C

D(s)

E

A

O

X

O

X

O

B(d)

X

X

X

X

X

C

O

X

O

X

O

D(s)

X

X

X

X

X

E

O

X

O

X

O

 

4.        Next, fill in User lever Blacklist Rules

(focus on line and column):

v       A:    B, C

v       B:     A, D

v       C:     -----

v       D:     A, E

v       E:     B, D

 

 

A

B(d)

C

D(s)

E

A

O

X(A,B)

X(A)

X(D)

O

B(d)

X(A,B)

X

X

X(B)

X(E)

C

X(A)

X

O

X

O

D(s)

X(D)

X(B)

X

X

X(D,E)

E

O

X(E)

O

X(D,E)

O

 

 

All Blacklists ‘ importing job is done.

 

Passable Ways all are marked with O.

 

A lot of matrix algorithms can be taken to implement

interfaces:

1.        Enable/Disable user

2.        Insert/Remove user from system width blacklist

3.        Add/Remove user B from user A’s blacklist

4.        Finding available paths .For example:

E as a sender sends message to B, C, D receivers.

 

From above figure, it is so easy to draw a conclusion

who E can send MESSAGE to. But detailed operations

can take following steps:

 

v       Firstly, select E’s blacklist.

First parameter is a vector, which is used to record

station of E element.

                                   | 1   0   0   0  1 |                       

                                   | 0   0   0   0  0 |

   {0, 0, 0, 0, 1}   | 0   0   1   0  1 |    =  {1, 0, 1, 0, 1}  

                           |  0   0   0   0  0 |       (just last line)

                           |  1   0   1   0  1 |

 

v       Receivers vector: {0, 1, 1, 1, 0}, blacklist {1, 0, 1, 0, 1},

We can regard them as an integer respectively to

operate bits.

01110 & 10101 = 00100  

It is obvious that E can only send to C.

 

We can only focus on O or X elements.

Then constructs 稀疏矩阵. 采用十字链表实现。

本文地址:http://com.8s8s.com/it/it33102.htm