Exemplo n.º 1
0
def eight_node_sbs(cm=False):
    tpm = [[1] + ([0] * 255)] * 256
    # fmt: off
    if cm is False:
        cm = np.array([
            [1, 1, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 0, 0, 0, 0, 0],
            [0, 1, 1, 1, 0, 0, 0, 0],
            [0, 0, 1, 1, 1, 0, 0, 0],
            [0, 0, 0, 1, 1, 1, 0, 0],
            [0, 0, 0, 0, 1, 1, 1, 0],
            [0, 0, 0, 0, 0, 1, 1, 1],
            [1, 0, 0, 0, 0, 0, 1, 1],
        ])
    # fmt: on
    return Network(tpm, cm=cm)
Exemplo n.º 2
0
def rule152(cm=False):
    tpm = np.array([[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0],
                    [1, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 0],
                    [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [0, 0, 0, 0, 1],
                    [0, 1, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 0],
                    [0, 0, 1, 0, 1], [0, 0, 1, 0, 0], [0, 1, 1, 0, 1],
                    [1, 1, 1, 0, 0], [1, 0, 0, 0, 0], [0, 1, 0, 0, 1],
                    [0, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 0, 0, 0],
                    [0, 0, 0, 0, 1], [0, 1, 0, 0, 0], [1, 1, 0, 0, 1],
                    [1, 0, 0, 1, 0], [0, 1, 0, 1, 1], [0, 0, 0, 1, 0],
                    [1, 0, 0, 1, 1], [1, 0, 1, 1, 0], [0, 0, 1, 1, 1],
                    [0, 1, 1, 1, 0], [1, 1, 1, 1, 1]])
    if cm is False:
        cm = np.array([[1, 1, 0, 0, 1], [1, 1, 1, 0, 0], [0, 1, 1, 1, 0],
                       [0, 0, 1, 1, 1], [1, 0, 0, 1, 1]])
    return Network(tpm, cm=cm)
Exemplo n.º 3
0
def rule152(cm=False):
    # fmt: off
    tpm = np.array([
        [0, 0, 0, 0, 0],
        [0, 1, 0, 0, 0],
        [0, 0, 1, 0, 0],
        [1, 0, 1, 0, 0],
        [0, 0, 0, 1, 0],
        [0, 0, 0, 1, 0],
        [0, 1, 0, 1, 0],
        [1, 1, 0, 1, 0],
        [0, 0, 0, 0, 1],
        [0, 1, 0, 0, 0],
        [0, 0, 0, 0, 1],
        [1, 0, 0, 0, 0],
        [0, 0, 1, 0, 1],
        [0, 0, 1, 0, 0],
        [0, 1, 1, 0, 1],
        [1, 1, 1, 0, 0],
        [1, 0, 0, 0, 0],
        [0, 1, 0, 0, 1],
        [0, 0, 1, 0, 0],
        [1, 0, 1, 0, 1],
        [1, 0, 0, 0, 0],
        [0, 0, 0, 0, 1],
        [0, 1, 0, 0, 0],
        [1, 1, 0, 0, 1],
        [1, 0, 0, 1, 0],
        [0, 1, 0, 1, 1],
        [0, 0, 0, 1, 0],
        [1, 0, 0, 1, 1],
        [1, 0, 1, 1, 0],
        [0, 0, 1, 1, 1],
        [0, 1, 1, 1, 0],
        [1, 1, 1, 1, 1],
    ])
    if cm is False:
        cm = np.array([
            [1, 1, 0, 0, 1],
            [1, 1, 1, 0, 0],
            [0, 1, 1, 1, 0],
            [0, 0, 1, 1, 1],
            [1, 0, 0, 1, 1],
        ])
    # fmt: on
    return Network(tpm, cm=cm)
Exemplo n.º 4
0
def rule30(cm=False):
    tpm = np.array([[0, 0, 0, 0, 0], [1, 1, 0, 0, 1], [1, 1, 1, 0, 0],
                    [1, 0, 1, 0, 1], [0, 1, 1, 1, 0], [1, 0, 1, 1, 1],
                    [1, 1, 0, 1, 0], [1, 0, 0, 1, 1], [0, 0, 1, 1, 1],
                    [1, 1, 1, 1, 0], [1, 1, 0, 1, 1], [1, 0, 0, 1, 0],
                    [0, 1, 1, 0, 1], [1, 0, 1, 0, 0], [1, 1, 0, 0, 1],
                    [1, 0, 0, 0, 0], [1, 0, 0, 1, 1], [0, 1, 0, 1, 1],
                    [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [1, 1, 1, 0, 1],
                    [0, 0, 1, 0, 1], [0, 1, 0, 0, 1], [0, 0, 0, 0, 1],
                    [1, 0, 1, 1, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0],
                    [0, 0, 0, 1, 0], [1, 1, 1, 0, 0], [0, 0, 1, 0, 0],
                    [0, 1, 0, 0, 0], [0, 0, 0, 0, 0]])
    if cm is False:
        cm = np.array([[1, 1, 0, 0, 1], [1, 1, 1, 0, 0], [0, 1, 1, 1, 0],
                       [0, 0, 1, 1, 1], [1, 0, 0, 1, 1]])
    rule30 = Network(tpm, connectivity_matrix=cm)
    all_off = (0, 0, 0, 0, 0)
    return Subsystem(rule30, all_off, range(rule30.size))
Exemplo n.º 5
0
def noised():
    # fmt: off
    tpm = np.array([
        [0.0, 0.0, 0.0],
        [0.0, 0.0, 0.8],
        [0.7, 0.0, 1.0],
        [1.0, 0.0, 0.0],
        [0.2, 0.8, 0.0],
        [1.0, 1.0, 1.0],
        [1.0, 1.0, 0.3],
        [0.1, 1.0, 0.0],
    ])
    cm = np.array([
        [1, 1, 1],
        [1, 1, 1],
        [1, 1, 1],
    ])
    # fmt: on
    return Network(tpm, cm=cm)
Exemplo n.º 6
0
def rule152(cm=False):
    tpm = np.array([[0, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0],
                    [1, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 1, 0],
                    [0, 1, 0, 1, 0], [1, 1, 0, 1, 0], [0, 0, 0, 0, 1],
                    [0, 1, 0, 0, 0], [0, 0, 0, 0, 1], [1, 0, 0, 0, 0],
                    [0, 0, 1, 0, 1], [0, 0, 1, 0, 0], [0, 1, 1, 0, 1],
                    [1, 1, 1, 0, 0], [1, 0, 0, 0, 0], [0, 1, 0, 0, 1],
                    [0, 0, 1, 0, 0], [1, 0, 1, 0, 1], [1, 0, 0, 0, 0],
                    [0, 0, 0, 0, 1], [0, 1, 0, 0, 0], [1, 1, 0, 0, 1],
                    [1, 0, 0, 1, 0], [0, 1, 0, 1, 1], [0, 0, 0, 1, 0],
                    [1, 0, 0, 1, 1], [1, 0, 1, 1, 0], [0, 0, 1, 1, 1],
                    [0, 1, 1, 1, 0], [1, 1, 1, 1, 1]])
    if cm is False:
        cm = np.array([[1, 1, 0, 0, 1], [1, 1, 1, 0, 0], [0, 1, 1, 1, 0],
                       [0, 0, 1, 1, 1], [1, 0, 0, 1, 1]])

    current_state = tuple([0] * 5)
    past_state = tuple([0] * 5)

    return Network(tpm, current_state, past_state, connectivity_matrix=cm)
Exemplo n.º 7
0
def big(cm=False):
    """Return a large network."""
    tpm = np.array([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0],
                    [0, 0, 1, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0],
                    [0, 0, 0, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 0, 0],
                    [0, 1, 0, 0, 0], [0, 0, 0, 0, 1], [0, 1, 1, 1, 1],
                    [1, 0, 0, 0, 1], [1, 1, 0, 1, 1], [1, 0, 0, 1, 1],
                    [1, 1, 1, 1, 1], [0, 0, 0, 0, 0], [0, 1, 1, 0, 0],
                    [0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 0, 0, 0, 0],
                    [1, 1, 1, 1, 0], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1],
                    [1, 1, 0, 0, 0], [1, 1, 1, 0, 0], [1, 1, 1, 0, 1],
                    [1, 1, 1, 1, 1], [1, 1, 0, 0, 1], [1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]])
    # All on
    current_state = (1, ) * 5
    # All on
    past_state = (1, ) * 5
    if cm is False:
        cm = None
    return Network(tpm, current_state, past_state, connectivity_matrix=cm)
Exemplo n.º 8
0
def big(cm=None):
    """Return a large network."""
    # fmt: off
    tpm = np.array([
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 1, 1, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 1, 0],
        [0, 0, 0, 1, 1],
        [0, 0, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 1, 0, 0, 0],
        [0, 0, 0, 0, 1],
        [0, 1, 1, 1, 1],
        [1, 0, 0, 0, 1],
        [1, 1, 0, 1, 1],
        [1, 0, 0, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 1, 1, 0, 0],
        [0, 0, 1, 0, 0],
        [0, 1, 1, 1, 0],
        [1, 0, 0, 0, 0],
        [1, 1, 1, 1, 0],
        [1, 0, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 0, 0, 0],
        [1, 1, 1, 0, 0],
        [1, 1, 1, 0, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 0, 0, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
    ])
    # fmt: on
    return Network(tpm, cm=cm)
Exemplo n.º 9
0
def simple(cm=False):
    """ Simple 'AND' network.

    Diagram:

    |           +~~~~~~~+
    |    +~~~~~~+   A   |<~~~~+
    |    | +~~~>| (AND) +~~~+ |
    |    | |    +~~~~~~~+   | |
    |    | |                | |
    |    v |                v |
    |  +~+~+~~~~+      +~~~~~~+~+
    |  |   B    |<~~~~~+    C   |
    |  | (OFF)  +~~~~~>|  (OFF) |
    |  +~~~~~~~~+      +~~~~~~~~+

    TPM:

    +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
    |  Past state ~~> Current state |
    |~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|
    |   A, B, C    |    A, B, C     |
    |~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|
    |  {0, 0, 0}   |   {0, 0, 0}    |
    |  {0, 0, 1}   |   {0, 0, 0}    |
    |  {0, 1, 0}   |   {0, 0, 0}    |
    |  {0, 1, 1}   |   {1, 0, 0}    |
    |  {1, 0, 0}   |   {0, 0, 0}    |
    |  {1, 0, 1}   |   {0, 0, 0}    |
    |  {1, 1, 0}   |   {0, 0, 0}    |
    |  {1, 1, 1}   |   {0, 0, 0}    |
    +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
    """
    tpm = np.array([[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0],
                    [0, 0, 0], [1, 0, 0], [0, 0, 0]])
    if cm is False:
        cm = None
    return Network(tpm, connectivity_matrix=cm)
Exemplo n.º 10
0
def eight_node(cm=False):
    """Eight-node network."""
    tpm = np.array([[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1],
                    [1, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 1],
                    [0, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 1],
                    [1, 1, 1, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0, 0, 1],
                    [0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1],
                    [1, 0, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 1],
                    [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 1],
                    [1, 1, 0, 1, 0, 0, 0, 0], [1, 0, 0, 1, 0, 0, 0, 1],
                    [0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 1],
                    [1, 0, 0, 1, 0, 0, 0, 0], [1, 1, 0, 1, 0, 0, 0, 1],
                    [0, 1, 0, 1, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 1],
                    [1, 1, 1, 1, 0, 0, 0, 0], [1, 0, 1, 1, 0, 0, 0, 1],
                    [0, 0, 1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 1],
                    [1, 0, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 0, 0, 1],
                    [0, 1, 1, 0, 1, 0, 0, 0], [0, 1, 1, 0, 1, 0, 0, 1],
                    [1, 1, 0, 0, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0, 0, 1],
                    [0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 1],
                    [1, 0, 0, 0, 1, 0, 0, 0], [1, 1, 0, 0, 1, 0, 0, 1],
                    [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 1],
                    [1, 1, 1, 0, 1, 0, 0, 0], [1, 0, 1, 0, 1, 0, 0, 1],
                    [0, 0, 1, 0, 1, 0, 0, 0], [0, 0, 1, 0, 1, 0, 0, 1],
                    [1, 0, 1, 0, 1, 0, 0, 0], [1, 1, 1, 0, 1, 0, 0, 1],
                    [0, 1, 1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 1],
                    [1, 1, 0, 1, 1, 0, 0, 0], [1, 0, 0, 1, 1, 0, 0, 1],
                    [0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 1, 1, 1, 0, 1],
                    [1, 0, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 1, 1, 0, 1],
                    [0, 1, 0, 1, 1, 1, 0, 0], [0, 1, 0, 1, 1, 1, 0, 1],
                    [1, 1, 1, 1, 1, 1, 0, 0], [1, 0, 1, 1, 1, 1, 0, 1],
                    [0, 0, 1, 1, 0, 1, 0, 0], [0, 0, 1, 1, 0, 1, 0, 1],
                    [1, 0, 1, 1, 0, 1, 0, 0], [1, 1, 1, 1, 0, 1, 0, 1],
                    [0, 1, 1, 0, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1, 0, 1],
                    [1, 1, 0, 0, 0, 1, 0, 0], [1, 0, 0, 0, 0, 1, 0, 1],
                    [0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 1],
                    [1, 0, 0, 0, 0, 1, 0, 0], [1, 1, 0, 0, 0, 1, 0, 1],
                    [0, 1, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0, 1],
                    [1, 1, 1, 0, 0, 1, 0, 0], [1, 0, 1, 0, 0, 1, 0, 1],
                    [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 1, 0, 1],
                    [1, 0, 1, 0, 0, 1, 0, 0], [1, 1, 1, 0, 0, 1, 0, 1],
                    [0, 1, 1, 1, 0, 1, 0, 0], [0, 1, 1, 1, 0, 1, 0, 1],
                    [1, 1, 0, 1, 0, 1, 0, 0], [1, 0, 0, 1, 0, 1, 0, 1],
                    [0, 0, 0, 1, 0, 1, 0, 0], [0, 0, 0, 1, 0, 1, 0, 1],
                    [1, 0, 0, 1, 0, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0, 1],
                    [0, 1, 0, 1, 0, 1, 0, 0], [0, 1, 0, 1, 0, 1, 0, 1],
                    [1, 1, 1, 1, 0, 1, 0, 0], [1, 0, 1, 1, 0, 1, 0, 1],
                    [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 1],
                    [1, 0, 1, 1, 1, 1, 0, 0], [1, 1, 1, 1, 1, 1, 0, 1],
                    [0, 1, 1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 1, 0, 1],
                    [1, 1, 0, 0, 1, 1, 0, 0], [1, 0, 0, 0, 1, 1, 0, 1],
                    [0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 1],
                    [1, 0, 0, 0, 1, 1, 1, 0], [1, 1, 0, 0, 1, 1, 1, 1],
                    [0, 1, 0, 0, 1, 1, 1, 0], [0, 1, 0, 0, 1, 1, 1, 1],
                    [1, 1, 1, 0, 1, 1, 1, 0], [1, 0, 1, 0, 1, 1, 1, 1],
                    [0, 0, 1, 0, 1, 1, 1, 0], [0, 0, 1, 0, 1, 1, 1, 1],
                    [1, 0, 1, 0, 1, 1, 1, 0], [1, 1, 1, 0, 1, 1, 1, 1],
                    [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 0, 1, 1, 1, 1, 0], [1, 0, 0, 1, 1, 1, 1, 1],
                    [0, 0, 0, 1, 1, 0, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1],
                    [1, 0, 0, 1, 1, 0, 1, 0], [1, 1, 0, 1, 1, 0, 1, 1],
                    [0, 1, 0, 1, 1, 0, 1, 0], [0, 1, 0, 1, 1, 0, 1, 1],
                    [1, 1, 1, 1, 1, 0, 1, 0], [1, 0, 1, 1, 1, 0, 1, 1],
                    [0, 0, 1, 1, 0, 0, 1, 0], [0, 0, 1, 1, 0, 0, 1, 1],
                    [1, 0, 1, 1, 0, 0, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1],
                    [0, 1, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 1, 1],
                    [1, 1, 0, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0, 1, 1],
                    [0, 0, 0, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0, 1, 1],
                    [1, 0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 1, 1],
                    [0, 1, 0, 0, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0, 1, 1],
                    [1, 1, 1, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 0, 1, 1],
                    [0, 0, 1, 0, 0, 0, 1, 0], [1, 0, 1, 0, 0, 0, 1, 1],
                    [1, 0, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 1, 1],
                    [0, 1, 1, 1, 0, 0, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1],
                    [1, 1, 0, 1, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 1, 1],
                    [0, 0, 0, 1, 0, 0, 1, 0], [1, 0, 0, 1, 0, 0, 1, 1],
                    [1, 0, 0, 1, 0, 0, 1, 0], [0, 1, 0, 1, 0, 0, 1, 1],
                    [0, 1, 0, 1, 0, 0, 1, 0], [1, 1, 0, 1, 0, 0, 1, 1],
                    [1, 1, 1, 1, 0, 0, 1, 0], [0, 0, 1, 1, 0, 0, 1, 1],
                    [0, 0, 1, 1, 1, 0, 1, 0], [1, 0, 1, 1, 1, 0, 1, 1],
                    [1, 0, 1, 1, 1, 0, 1, 0], [0, 1, 1, 1, 1, 0, 1, 1],
                    [0, 1, 1, 0, 1, 0, 1, 0], [1, 1, 1, 0, 1, 0, 1, 1],
                    [1, 1, 0, 0, 1, 0, 1, 0], [0, 0, 0, 0, 1, 0, 1, 1],
                    [0, 0, 0, 0, 1, 0, 1, 0], [1, 0, 0, 0, 1, 0, 1, 1],
                    [1, 0, 0, 0, 1, 0, 1, 0], [0, 1, 0, 0, 1, 0, 1, 1],
                    [0, 1, 0, 0, 1, 0, 1, 0], [1, 1, 0, 0, 1, 0, 1, 1],
                    [1, 1, 1, 0, 1, 0, 1, 0], [0, 0, 1, 0, 1, 0, 1, 1],
                    [0, 0, 1, 0, 1, 0, 1, 0], [1, 0, 1, 0, 1, 0, 1, 1],
                    [1, 0, 1, 0, 1, 0, 1, 0], [0, 1, 1, 0, 1, 0, 1, 1],
                    [0, 1, 1, 1, 1, 0, 1, 0], [1, 1, 1, 1, 1, 0, 1, 1],
                    [1, 1, 0, 1, 1, 0, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1],
                    [0, 0, 0, 1, 1, 1, 1, 0], [1, 0, 0, 1, 1, 1, 1, 1],
                    [1, 0, 0, 1, 1, 1, 1, 0], [0, 1, 0, 1, 1, 1, 1, 1],
                    [0, 1, 0, 1, 1, 1, 1, 0], [1, 1, 0, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1],
                    [0, 0, 1, 1, 0, 1, 1, 0], [1, 0, 1, 1, 0, 1, 1, 1],
                    [1, 0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 0, 1, 1, 1],
                    [0, 1, 1, 0, 0, 1, 1, 0], [1, 1, 1, 0, 0, 1, 1, 1],
                    [1, 1, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1],
                    [0, 0, 0, 0, 0, 1, 1, 1], [1, 0, 0, 0, 0, 1, 1, 0],
                    [1, 0, 0, 0, 0, 1, 1, 1], [0, 1, 0, 0, 0, 1, 1, 0],
                    [0, 1, 0, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 1, 1, 0],
                    [1, 1, 1, 0, 0, 1, 1, 1], [0, 0, 1, 0, 0, 1, 1, 0],
                    [0, 0, 1, 0, 0, 1, 1, 1], [1, 0, 1, 0, 0, 1, 1, 0],
                    [1, 0, 1, 0, 0, 1, 1, 1], [0, 1, 1, 0, 0, 1, 1, 0],
                    [0, 1, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 0, 1, 1, 0],
                    [1, 1, 0, 1, 0, 1, 1, 1], [0, 0, 0, 1, 0, 1, 1, 0],
                    [0, 0, 0, 1, 0, 1, 1, 1], [1, 0, 0, 1, 0, 1, 1, 0],
                    [1, 0, 0, 1, 0, 1, 1, 1], [0, 1, 0, 1, 0, 1, 1, 0],
                    [0, 1, 0, 1, 0, 1, 1, 1], [1, 1, 0, 1, 0, 1, 1, 0],
                    [1, 1, 1, 1, 0, 1, 1, 1], [0, 0, 1, 1, 0, 1, 1, 0],
                    [0, 0, 1, 1, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 0],
                    [1, 0, 1, 1, 1, 1, 1, 1], [0, 1, 1, 1, 1, 1, 1, 0],
                    [0, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 0, 1, 1, 1, 0],
                    [1, 1, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 0],
                    [0, 0, 0, 0, 1, 1, 0, 1], [1, 0, 0, 0, 1, 1, 0, 0],
                    [1, 0, 0, 0, 1, 1, 0, 1], [0, 1, 0, 0, 1, 1, 0, 0],
                    [0, 1, 0, 0, 1, 1, 0, 1], [1, 1, 0, 0, 1, 1, 0, 0],
                    [1, 1, 1, 0, 1, 1, 0, 1], [0, 0, 1, 0, 1, 1, 0, 0],
                    [0, 0, 1, 0, 1, 1, 0, 1], [1, 0, 1, 0, 1, 1, 0, 0],
                    [1, 0, 1, 0, 1, 1, 0, 1], [0, 1, 1, 0, 1, 1, 0, 0],
                    [0, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 0, 0],
                    [1, 1, 0, 1, 1, 1, 0, 1], [0, 0, 0, 1, 1, 1, 0, 0],
                    [0, 0, 0, 1, 1, 0, 0, 1], [1, 0, 0, 1, 1, 0, 0, 0],
                    [1, 0, 0, 1, 1, 0, 0, 1], [0, 1, 0, 1, 1, 0, 0, 0],
                    [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 0, 1, 1, 0, 0, 0],
                    [1, 1, 1, 1, 1, 0, 0, 1], [0, 0, 1, 1, 1, 0, 0, 0],
                    [0, 0, 1, 1, 0, 0, 0, 1], [1, 0, 1, 1, 0, 0, 0, 0],
                    [1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 0, 0, 0, 0],
                    [0, 1, 1, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0],
                    [1, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0]])
    if cm is False:
        cm = np.array([[1, 1, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0],
                       [0, 1, 1, 1, 0, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 0],
                       [0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0],
                       [0, 0, 0, 0, 0, 1, 1, 1], [1, 0, 0, 0, 0, 0, 1, 1]])
    return Network(tpm, connectivity_matrix=cm)
Exemplo n.º 11
0
def micro(cm=False):
    tpm = np.array(
        [[
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
             0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
             0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
             0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
         ]])
    if cm is False:
        cm = np.array([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]])
    current_state = tuple([1] * 4)
    past_state = tuple([1] * 4)

    return Network(tpm, current_state, past_state, connectivity_matrix=cm)
Exemplo n.º 12
0
def test_node_neq_by_context(s):
    other_network = Network(s.network.tpm, (0, 0, 0), (0, 0, 0))
    other_s = Subsystem(s.node_indices, other_network)
    assert s.nodes[0] != Node(other_network, 0, other_s)
Exemplo n.º 13
0
def noised():
    tpm = np.array([[0.0, 0.0, 0.0], [0.0, 0.0, 0.8], [0.7, 0.0, 1.0],
                    [1.0, 0.0, 0.0], [0.2, 0.8, 0.0], [1.0, 1.0, 1.0],
                    [1.0, 1.0, 0.3], [0.1, 1.0, 0.0]])
    cm = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]])
    return Network(tpm, cm=cm)
Exemplo n.º 14
0
def test_labels2indices(standard):
    network = Network(standard.tpm, node_labels=('A', 'B', 'C'))
    assert network.labels2indices(('A', 'B')) == (0, 1)
    assert network.labels2indices(('A', 'C')) == (0, 2)
Exemplo n.º 15
0
def test_validate_state_reachable_from_given(micro):
    initial_config = config.VALIDATE_NETWORK_STATE
    config.VALIDATE_NETWORK_STATE = True
    Network(micro.tpm, (0, 0, 1, 1), (1, 1, 0, 0))
    config.VALIDATE_NETWORK_STATE = initial_config
Exemplo n.º 16
0
def network():
    size = 3
    tpm = np.ones([2] * size + [size]).astype(float) / 2
    return Network(tpm)
Exemplo n.º 17
0
def micro(cm=False):
    # fmt: off
    tpm = np.array([
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
            0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
            0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
        [
            0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
            0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
        ],
        [
            0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
            0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
        ],
        [
            0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
            0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
        ],
        [
            0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
            0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
        ],
        [
            0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
            0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
        ],
    ])
    if cm is False:
        cm = np.array([
            [1, 1, 1, 1],
            [1, 1, 1, 1],
            [1, 1, 1, 1],
            [1, 1, 1, 1],
        ])
    # fmt: on
    return Network(tpm, cm=cm)
Exemplo n.º 18
0
def eight_node(cm=False):
    """Eight-node network."""

    tpm = np.array([[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1],
                    [1, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 1],
                    [0, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 1],
                    [1, 1, 1, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0, 0, 1],
                    [0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1],
                    [1, 0, 1, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 1],
                    [0, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 1],
                    [1, 1, 0, 1, 0, 0, 0, 0], [1, 0, 0, 1, 0, 0, 0, 1],
                    [0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 1],
                    [1, 0, 0, 1, 0, 0, 0, 0], [1, 1, 0, 1, 0, 0, 0, 1],
                    [0, 1, 0, 1, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 1],
                    [1, 1, 1, 1, 0, 0, 0, 0], [1, 0, 1, 1, 0, 0, 0, 1],
                    [0, 0, 1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 1],
                    [1, 0, 1, 1, 1, 0, 0, 0], [1, 1, 1, 1, 1, 0, 0, 1],
                    [0, 1, 1, 0, 1, 0, 0, 0], [0, 1, 1, 0, 1, 0, 0, 1],
                    [1, 1, 0, 0, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0, 0, 1],
                    [0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 1],
                    [1, 0, 0, 0, 1, 0, 0, 0], [1, 1, 0, 0, 1, 0, 0, 1],
                    [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 1],
                    [1, 1, 1, 0, 1, 0, 0, 0], [1, 0, 1, 0, 1, 0, 0, 1],
                    [0, 0, 1, 0, 1, 0, 0, 0], [0, 0, 1, 0, 1, 0, 0, 1],
                    [1, 0, 1, 0, 1, 0, 0, 0], [1, 1, 1, 0, 1, 0, 0, 1],
                    [0, 1, 1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 1],
                    [1, 1, 0, 1, 1, 0, 0, 0], [1, 0, 0, 1, 1, 0, 0, 1],
                    [0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 1, 1, 1, 0, 1],
                    [1, 0, 0, 1, 1, 1, 0, 0], [1, 1, 0, 1, 1, 1, 0, 1],
                    [0, 1, 0, 1, 1, 1, 0, 0], [0, 1, 0, 1, 1, 1, 0, 1],
                    [1, 1, 1, 1, 1, 1, 0, 0], [1, 0, 1, 1, 1, 1, 0, 1],
                    [0, 0, 1, 1, 0, 1, 0, 0], [0, 0, 1, 1, 0, 1, 0, 1],
                    [1, 0, 1, 1, 0, 1, 0, 0], [1, 1, 1, 1, 0, 1, 0, 1],
                    [0, 1, 1, 0, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1, 0, 1],
                    [1, 1, 0, 0, 0, 1, 0, 0], [1, 0, 0, 0, 0, 1, 0, 1],
                    [0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 1],
                    [1, 0, 0, 0, 0, 1, 0, 0], [1, 1, 0, 0, 0, 1, 0, 1],
                    [0, 1, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0, 1],
                    [1, 1, 1, 0, 0, 1, 0, 0], [1, 0, 1, 0, 0, 1, 0, 1],
                    [0, 0, 1, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 1, 0, 1],
                    [1, 0, 1, 0, 0, 1, 0, 0], [1, 1, 1, 0, 0, 1, 0, 1],
                    [0, 1, 1, 1, 0, 1, 0, 0], [0, 1, 1, 1, 0, 1, 0, 1],
                    [1, 1, 0, 1, 0, 1, 0, 0], [1, 0, 0, 1, 0, 1, 0, 1],
                    [0, 0, 0, 1, 0, 1, 0, 0], [0, 0, 0, 1, 0, 1, 0, 1],
                    [1, 0, 0, 1, 0, 1, 0, 0], [1, 1, 0, 1, 0, 1, 0, 1],
                    [0, 1, 0, 1, 0, 1, 0, 0], [0, 1, 0, 1, 0, 1, 0, 1],
                    [1, 1, 1, 1, 0, 1, 0, 0], [1, 0, 1, 1, 0, 1, 0, 1],
                    [0, 0, 1, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 1, 0, 1],
                    [1, 0, 1, 1, 1, 1, 0, 0], [1, 1, 1, 1, 1, 1, 0, 1],
                    [0, 1, 1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 1, 0, 1],
                    [1, 1, 0, 0, 1, 1, 0, 0], [1, 0, 0, 0, 1, 1, 0, 1],
                    [0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 1],
                    [1, 0, 0, 0, 1, 1, 1, 0], [1, 1, 0, 0, 1, 1, 1, 1],
                    [0, 1, 0, 0, 1, 1, 1, 0], [0, 1, 0, 0, 1, 1, 1, 1],
                    [1, 1, 1, 0, 1, 1, 1, 0], [1, 0, 1, 0, 1, 1, 1, 1],
                    [0, 0, 1, 0, 1, 1, 1, 0], [0, 0, 1, 0, 1, 1, 1, 1],
                    [1, 0, 1, 0, 1, 1, 1, 0], [1, 1, 1, 0, 1, 1, 1, 1],
                    [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1],
                    [1, 1, 0, 1, 1, 1, 1, 0], [1, 0, 0, 1, 1, 1, 1, 1],
                    [0, 0, 0, 1, 1, 0, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1],
                    [1, 0, 0, 1, 1, 0, 1, 0], [1, 1, 0, 1, 1, 0, 1, 1],
                    [0, 1, 0, 1, 1, 0, 1, 0], [0, 1, 0, 1, 1, 0, 1, 1],
                    [1, 1, 1, 1, 1, 0, 1, 0], [1, 0, 1, 1, 1, 0, 1, 1],
                    [0, 0, 1, 1, 0, 0, 1, 0], [0, 0, 1, 1, 0, 0, 1, 1],
                    [1, 0, 1, 1, 0, 0, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1],
                    [0, 1, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 1, 1],
                    [1, 1, 0, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0, 1, 1],
                    [0, 0, 0, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0, 1, 1],
                    [1, 0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 1, 1],
                    [0, 1, 0, 0, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0, 1, 1],
                    [1, 1, 1, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 0, 1, 1],
                    [0, 0, 1, 0, 0, 0, 1, 0], [1, 0, 1, 0, 0, 0, 1, 1],
                    [1, 0, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 1, 1],
                    [0, 1, 1, 1, 0, 0, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1],
                    [1, 1, 0, 1, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 1, 1],
                    [0, 0, 0, 1, 0, 0, 1, 0], [1, 0, 0, 1, 0, 0, 1, 1],
                    [1, 0, 0, 1, 0, 0, 1, 0], [0, 1, 0, 1, 0, 0, 1, 1],
                    [0, 1, 0, 1, 0, 0, 1, 0], [1, 1, 0, 1, 0, 0, 1, 1],
                    [1, 1, 1, 1, 0, 0, 1, 0], [0, 0, 1, 1, 0, 0, 1, 1],
                    [0, 0, 1, 1, 1, 0, 1, 0], [1, 0, 1, 1, 1, 0, 1, 1],
                    [1, 0, 1, 1, 1, 0, 1, 0], [0, 1, 1, 1, 1, 0, 1, 1],
                    [0, 1, 1, 0, 1, 0, 1, 0], [1, 1, 1, 0, 1, 0, 1, 1],
                    [1, 1, 0, 0, 1, 0, 1, 0], [0, 0, 0, 0, 1, 0, 1, 1],
                    [0, 0, 0, 0, 1, 0, 1, 0], [1, 0, 0, 0, 1, 0, 1, 1],
                    [1, 0, 0, 0, 1, 0, 1, 0], [0, 1, 0, 0, 1, 0, 1, 1],
                    [0, 1, 0, 0, 1, 0, 1, 0], [1, 1, 0, 0, 1, 0, 1, 1],
                    [1, 1, 1, 0, 1, 0, 1, 0], [0, 0, 1, 0, 1, 0, 1, 1],
                    [0, 0, 1, 0, 1, 0, 1, 0], [1, 0, 1, 0, 1, 0, 1, 1],
                    [1, 0, 1, 0, 1, 0, 1, 0], [0, 1, 1, 0, 1, 0, 1, 1],
                    [0, 1, 1, 1, 1, 0, 1, 0], [1, 1, 1, 1, 1, 0, 1, 1],
                    [1, 1, 0, 1, 1, 0, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1],
                    [0, 0, 0, 1, 1, 1, 1, 0], [1, 0, 0, 1, 1, 1, 1, 1],
                    [1, 0, 0, 1, 1, 1, 1, 0], [0, 1, 0, 1, 1, 1, 1, 1],
                    [0, 1, 0, 1, 1, 1, 1, 0], [1, 1, 0, 1, 1, 1, 1, 1],
                    [1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 1, 1, 1, 1, 1, 1],
                    [0, 0, 1, 1, 0, 1, 1, 0], [1, 0, 1, 1, 0, 1, 1, 1],
                    [1, 0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 0, 1, 1, 1],
                    [0, 1, 1, 0, 0, 1, 1, 0], [1, 1, 1, 0, 0, 1, 1, 1],
                    [1, 1, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1],
                    [0, 0, 0, 0, 0, 1, 1, 1], [1, 0, 0, 0, 0, 1, 1, 0],
                    [1, 0, 0, 0, 0, 1, 1, 1], [0, 1, 0, 0, 0, 1, 1, 0],
                    [0, 1, 0, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 1, 1, 0],
                    [1, 1, 1, 0, 0, 1, 1, 1], [0, 0, 1, 0, 0, 1, 1, 0],
                    [0, 0, 1, 0, 0, 1, 1, 1], [1, 0, 1, 0, 0, 1, 1, 0],
                    [1, 0, 1, 0, 0, 1, 1, 1], [0, 1, 1, 0, 0, 1, 1, 0],
                    [0, 1, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 0, 1, 1, 0],
                    [1, 1, 0, 1, 0, 1, 1, 1], [0, 0, 0, 1, 0, 1, 1, 0],
                    [0, 0, 0, 1, 0, 1, 1, 1], [1, 0, 0, 1, 0, 1, 1, 0],
                    [1, 0, 0, 1, 0, 1, 1, 1], [0, 1, 0, 1, 0, 1, 1, 0],
                    [0, 1, 0, 1, 0, 1, 1, 1], [1, 1, 0, 1, 0, 1, 1, 0],
                    [1, 1, 1, 1, 0, 1, 1, 1], [0, 0, 1, 1, 0, 1, 1, 0],
                    [0, 0, 1, 1, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 0],
                    [1, 0, 1, 1, 1, 1, 1, 1], [0, 1, 1, 1, 1, 1, 1, 0],
                    [0, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 0, 1, 1, 1, 0],
                    [1, 1, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 1, 1, 1, 0],
                    [0, 0, 0, 0, 1, 1, 0, 1], [1, 0, 0, 0, 1, 1, 0, 0],
                    [1, 0, 0, 0, 1, 1, 0, 1], [0, 1, 0, 0, 1, 1, 0, 0],
                    [0, 1, 0, 0, 1, 1, 0, 1], [1, 1, 0, 0, 1, 1, 0, 0],
                    [1, 1, 1, 0, 1, 1, 0, 1], [0, 0, 1, 0, 1, 1, 0, 0],
                    [0, 0, 1, 0, 1, 1, 0, 1], [1, 0, 1, 0, 1, 1, 0, 0],
                    [1, 0, 1, 0, 1, 1, 0, 1], [0, 1, 1, 0, 1, 1, 0, 0],
                    [0, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 0, 0],
                    [1, 1, 0, 1, 1, 1, 0, 1], [0, 0, 0, 1, 1, 1, 0, 0],
                    [0, 0, 0, 1, 1, 0, 0, 1], [1, 0, 0, 1, 1, 0, 0, 0],
                    [1, 0, 0, 1, 1, 0, 0, 1], [0, 1, 0, 1, 1, 0, 0, 0],
                    [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 0, 1, 1, 0, 0, 0],
                    [1, 1, 1, 1, 1, 0, 0, 1], [0, 0, 1, 1, 1, 0, 0, 0],
                    [0, 0, 1, 1, 0, 0, 0, 1], [1, 0, 1, 1, 0, 0, 0, 0],
                    [1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 0, 0, 0, 0],
                    [0, 1, 1, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0],
                    [1, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0]])
    if cm is False:
        cm = np.array([[1, 1, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0],
                       [0, 1, 1, 1, 0, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 0],
                       [0, 0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0],
                       [0, 0, 0, 0, 0, 1, 1, 1], [1, 0, 0, 0, 0, 0, 1, 1]])

    current_state = tuple([0] * 8)
    past_state = tuple([0] * 8)

    return Network(tpm, current_state, past_state, connectivity_matrix=cm)
Exemplo n.º 19
0
def test_validate_state_wrong_size(standard):
    initial_config = config.VALIDATE_NETWORK_STATE
    config.VALIDATE_NETWORK_STATE = True
    with pytest.raises(ValueError):
        Network(standard.tpm, (0, 0, 0, 0), standard.past_state)
    config.VALIDATE_NETWORK_STATE = initial_config
Exemplo n.º 20
0
def test_validate_state_not_reachable_at_all(standard):
    initial_config = config.VALIDATE_NETWORK_STATE
    config.VALIDATE_NETWORK_STATE = True
    with pytest.raises(validate.StateUnreachableError):
        Network(standard.tpm, (0, 1, 1), standard.past_state)
    config.VALIDATE_NETWORK_STATE = initial_config
Exemplo n.º 21
0
def eight_node(cm=False):
    """Eight-node network."""
    # fmt: off
    tpm = np.array([
        [0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 1],
        [1, 0, 0, 0, 0, 0, 0, 0],
        [1, 1, 0, 0, 0, 0, 0, 1],
        [0, 1, 0, 0, 0, 0, 0, 0],
        [0, 1, 0, 0, 0, 0, 0, 1],
        [1, 1, 1, 0, 0, 0, 0, 0],
        [1, 0, 1, 0, 0, 0, 0, 1],
        [0, 0, 1, 0, 0, 0, 0, 0],
        [0, 0, 1, 0, 0, 0, 0, 1],
        [1, 0, 1, 0, 0, 0, 0, 0],
        [1, 1, 1, 0, 0, 0, 0, 1],
        [0, 1, 1, 1, 0, 0, 0, 0],
        [0, 1, 1, 1, 0, 0, 0, 1],
        [1, 1, 0, 1, 0, 0, 0, 0],
        [1, 0, 0, 1, 0, 0, 0, 1],
        [0, 0, 0, 1, 0, 0, 0, 0],
        [0, 0, 0, 1, 0, 0, 0, 1],
        [1, 0, 0, 1, 0, 0, 0, 0],
        [1, 1, 0, 1, 0, 0, 0, 1],
        [0, 1, 0, 1, 0, 0, 0, 0],
        [0, 1, 0, 1, 0, 0, 0, 1],
        [1, 1, 1, 1, 0, 0, 0, 0],
        [1, 0, 1, 1, 0, 0, 0, 1],
        [0, 0, 1, 1, 1, 0, 0, 0],
        [0, 0, 1, 1, 1, 0, 0, 1],
        [1, 0, 1, 1, 1, 0, 0, 0],
        [1, 1, 1, 1, 1, 0, 0, 1],
        [0, 1, 1, 0, 1, 0, 0, 0],
        [0, 1, 1, 0, 1, 0, 0, 1],
        [1, 1, 0, 0, 1, 0, 0, 0],
        [1, 0, 0, 0, 1, 0, 0, 1],
        [0, 0, 0, 0, 1, 0, 0, 0],
        [0, 0, 0, 0, 1, 0, 0, 1],
        [1, 0, 0, 0, 1, 0, 0, 0],
        [1, 1, 0, 0, 1, 0, 0, 1],
        [0, 1, 0, 0, 1, 0, 0, 0],
        [0, 1, 0, 0, 1, 0, 0, 1],
        [1, 1, 1, 0, 1, 0, 0, 0],
        [1, 0, 1, 0, 1, 0, 0, 1],
        [0, 0, 1, 0, 1, 0, 0, 0],
        [0, 0, 1, 0, 1, 0, 0, 1],
        [1, 0, 1, 0, 1, 0, 0, 0],
        [1, 1, 1, 0, 1, 0, 0, 1],
        [0, 1, 1, 1, 1, 0, 0, 0],
        [0, 1, 1, 1, 1, 0, 0, 1],
        [1, 1, 0, 1, 1, 0, 0, 0],
        [1, 0, 0, 1, 1, 0, 0, 1],
        [0, 0, 0, 1, 1, 1, 0, 0],
        [0, 0, 0, 1, 1, 1, 0, 1],
        [1, 0, 0, 1, 1, 1, 0, 0],
        [1, 1, 0, 1, 1, 1, 0, 1],
        [0, 1, 0, 1, 1, 1, 0, 0],
        [0, 1, 0, 1, 1, 1, 0, 1],
        [1, 1, 1, 1, 1, 1, 0, 0],
        [1, 0, 1, 1, 1, 1, 0, 1],
        [0, 0, 1, 1, 0, 1, 0, 0],
        [0, 0, 1, 1, 0, 1, 0, 1],
        [1, 0, 1, 1, 0, 1, 0, 0],
        [1, 1, 1, 1, 0, 1, 0, 1],
        [0, 1, 1, 0, 0, 1, 0, 0],
        [0, 1, 1, 0, 0, 1, 0, 1],
        [1, 1, 0, 0, 0, 1, 0, 0],
        [1, 0, 0, 0, 0, 1, 0, 1],
        [0, 0, 0, 0, 0, 1, 0, 0],
        [0, 0, 0, 0, 0, 1, 0, 1],
        [1, 0, 0, 0, 0, 1, 0, 0],
        [1, 1, 0, 0, 0, 1, 0, 1],
        [0, 1, 0, 0, 0, 1, 0, 0],
        [0, 1, 0, 0, 0, 1, 0, 1],
        [1, 1, 1, 0, 0, 1, 0, 0],
        [1, 0, 1, 0, 0, 1, 0, 1],
        [0, 0, 1, 0, 0, 1, 0, 0],
        [0, 0, 1, 0, 0, 1, 0, 1],
        [1, 0, 1, 0, 0, 1, 0, 0],
        [1, 1, 1, 0, 0, 1, 0, 1],
        [0, 1, 1, 1, 0, 1, 0, 0],
        [0, 1, 1, 1, 0, 1, 0, 1],
        [1, 1, 0, 1, 0, 1, 0, 0],
        [1, 0, 0, 1, 0, 1, 0, 1],
        [0, 0, 0, 1, 0, 1, 0, 0],
        [0, 0, 0, 1, 0, 1, 0, 1],
        [1, 0, 0, 1, 0, 1, 0, 0],
        [1, 1, 0, 1, 0, 1, 0, 1],
        [0, 1, 0, 1, 0, 1, 0, 0],
        [0, 1, 0, 1, 0, 1, 0, 1],
        [1, 1, 1, 1, 0, 1, 0, 0],
        [1, 0, 1, 1, 0, 1, 0, 1],
        [0, 0, 1, 1, 1, 1, 0, 0],
        [0, 0, 1, 1, 1, 1, 0, 1],
        [1, 0, 1, 1, 1, 1, 0, 0],
        [1, 1, 1, 1, 1, 1, 0, 1],
        [0, 1, 1, 0, 1, 1, 0, 0],
        [0, 1, 1, 0, 1, 1, 0, 1],
        [1, 1, 0, 0, 1, 1, 0, 0],
        [1, 0, 0, 0, 1, 1, 0, 1],
        [0, 0, 0, 0, 1, 1, 1, 0],
        [0, 0, 0, 0, 1, 1, 1, 1],
        [1, 0, 0, 0, 1, 1, 1, 0],
        [1, 1, 0, 0, 1, 1, 1, 1],
        [0, 1, 0, 0, 1, 1, 1, 0],
        [0, 1, 0, 0, 1, 1, 1, 1],
        [1, 1, 1, 0, 1, 1, 1, 0],
        [1, 0, 1, 0, 1, 1, 1, 1],
        [0, 0, 1, 0, 1, 1, 1, 0],
        [0, 0, 1, 0, 1, 1, 1, 1],
        [1, 0, 1, 0, 1, 1, 1, 0],
        [1, 1, 1, 0, 1, 1, 1, 1],
        [0, 1, 1, 1, 1, 1, 1, 0],
        [0, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 0, 1, 1, 1, 1, 0],
        [1, 0, 0, 1, 1, 1, 1, 1],
        [0, 0, 0, 1, 1, 0, 1, 0],
        [0, 0, 0, 1, 1, 0, 1, 1],
        [1, 0, 0, 1, 1, 0, 1, 0],
        [1, 1, 0, 1, 1, 0, 1, 1],
        [0, 1, 0, 1, 1, 0, 1, 0],
        [0, 1, 0, 1, 1, 0, 1, 1],
        [1, 1, 1, 1, 1, 0, 1, 0],
        [1, 0, 1, 1, 1, 0, 1, 1],
        [0, 0, 1, 1, 0, 0, 1, 0],
        [0, 0, 1, 1, 0, 0, 1, 1],
        [1, 0, 1, 1, 0, 0, 1, 0],
        [1, 1, 1, 1, 0, 0, 1, 1],
        [0, 1, 1, 0, 0, 0, 1, 0],
        [0, 1, 1, 0, 0, 0, 1, 1],
        [1, 1, 0, 0, 0, 0, 1, 0],
        [1, 0, 0, 0, 0, 0, 1, 1],
        [0, 0, 0, 0, 0, 0, 1, 0],
        [1, 0, 0, 0, 0, 0, 1, 1],
        [1, 0, 0, 0, 0, 0, 1, 0],
        [0, 1, 0, 0, 0, 0, 1, 1],
        [0, 1, 0, 0, 0, 0, 1, 0],
        [1, 1, 0, 0, 0, 0, 1, 1],
        [1, 1, 1, 0, 0, 0, 1, 0],
        [0, 0, 1, 0, 0, 0, 1, 1],
        [0, 0, 1, 0, 0, 0, 1, 0],
        [1, 0, 1, 0, 0, 0, 1, 1],
        [1, 0, 1, 0, 0, 0, 1, 0],
        [0, 1, 1, 0, 0, 0, 1, 1],
        [0, 1, 1, 1, 0, 0, 1, 0],
        [1, 1, 1, 1, 0, 0, 1, 1],
        [1, 1, 0, 1, 0, 0, 1, 0],
        [0, 0, 0, 1, 0, 0, 1, 1],
        [0, 0, 0, 1, 0, 0, 1, 0],
        [1, 0, 0, 1, 0, 0, 1, 1],
        [1, 0, 0, 1, 0, 0, 1, 0],
        [0, 1, 0, 1, 0, 0, 1, 1],
        [0, 1, 0, 1, 0, 0, 1, 0],
        [1, 1, 0, 1, 0, 0, 1, 1],
        [1, 1, 1, 1, 0, 0, 1, 0],
        [0, 0, 1, 1, 0, 0, 1, 1],
        [0, 0, 1, 1, 1, 0, 1, 0],
        [1, 0, 1, 1, 1, 0, 1, 1],
        [1, 0, 1, 1, 1, 0, 1, 0],
        [0, 1, 1, 1, 1, 0, 1, 1],
        [0, 1, 1, 0, 1, 0, 1, 0],
        [1, 1, 1, 0, 1, 0, 1, 1],
        [1, 1, 0, 0, 1, 0, 1, 0],
        [0, 0, 0, 0, 1, 0, 1, 1],
        [0, 0, 0, 0, 1, 0, 1, 0],
        [1, 0, 0, 0, 1, 0, 1, 1],
        [1, 0, 0, 0, 1, 0, 1, 0],
        [0, 1, 0, 0, 1, 0, 1, 1],
        [0, 1, 0, 0, 1, 0, 1, 0],
        [1, 1, 0, 0, 1, 0, 1, 1],
        [1, 1, 1, 0, 1, 0, 1, 0],
        [0, 0, 1, 0, 1, 0, 1, 1],
        [0, 0, 1, 0, 1, 0, 1, 0],
        [1, 0, 1, 0, 1, 0, 1, 1],
        [1, 0, 1, 0, 1, 0, 1, 0],
        [0, 1, 1, 0, 1, 0, 1, 1],
        [0, 1, 1, 1, 1, 0, 1, 0],
        [1, 1, 1, 1, 1, 0, 1, 1],
        [1, 1, 0, 1, 1, 0, 1, 0],
        [0, 0, 0, 1, 1, 0, 1, 1],
        [0, 0, 0, 1, 1, 1, 1, 0],
        [1, 0, 0, 1, 1, 1, 1, 1],
        [1, 0, 0, 1, 1, 1, 1, 0],
        [0, 1, 0, 1, 1, 1, 1, 1],
        [0, 1, 0, 1, 1, 1, 1, 0],
        [1, 1, 0, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 0],
        [0, 0, 1, 1, 1, 1, 1, 1],
        [0, 0, 1, 1, 0, 1, 1, 0],
        [1, 0, 1, 1, 0, 1, 1, 1],
        [1, 0, 1, 1, 0, 1, 1, 0],
        [0, 1, 1, 1, 0, 1, 1, 1],
        [0, 1, 1, 0, 0, 1, 1, 0],
        [1, 1, 1, 0, 0, 1, 1, 1],
        [1, 1, 0, 0, 0, 1, 1, 0],
        [0, 0, 0, 0, 0, 1, 1, 1],
        [0, 0, 0, 0, 0, 1, 1, 1],
        [1, 0, 0, 0, 0, 1, 1, 0],
        [1, 0, 0, 0, 0, 1, 1, 1],
        [0, 1, 0, 0, 0, 1, 1, 0],
        [0, 1, 0, 0, 0, 1, 1, 1],
        [1, 1, 0, 0, 0, 1, 1, 0],
        [1, 1, 1, 0, 0, 1, 1, 1],
        [0, 0, 1, 0, 0, 1, 1, 0],
        [0, 0, 1, 0, 0, 1, 1, 1],
        [1, 0, 1, 0, 0, 1, 1, 0],
        [1, 0, 1, 0, 0, 1, 1, 1],
        [0, 1, 1, 0, 0, 1, 1, 0],
        [0, 1, 1, 1, 0, 1, 1, 1],
        [1, 1, 1, 1, 0, 1, 1, 0],
        [1, 1, 0, 1, 0, 1, 1, 1],
        [0, 0, 0, 1, 0, 1, 1, 0],
        [0, 0, 0, 1, 0, 1, 1, 1],
        [1, 0, 0, 1, 0, 1, 1, 0],
        [1, 0, 0, 1, 0, 1, 1, 1],
        [0, 1, 0, 1, 0, 1, 1, 0],
        [0, 1, 0, 1, 0, 1, 1, 1],
        [1, 1, 0, 1, 0, 1, 1, 0],
        [1, 1, 1, 1, 0, 1, 1, 1],
        [0, 0, 1, 1, 0, 1, 1, 0],
        [0, 0, 1, 1, 1, 1, 1, 1],
        [1, 0, 1, 1, 1, 1, 1, 0],
        [1, 0, 1, 1, 1, 1, 1, 1],
        [0, 1, 1, 1, 1, 1, 1, 0],
        [0, 1, 1, 0, 1, 1, 1, 1],
        [1, 1, 1, 0, 1, 1, 1, 0],
        [1, 1, 0, 0, 1, 1, 1, 1],
        [0, 0, 0, 0, 1, 1, 1, 0],
        [0, 0, 0, 0, 1, 1, 0, 1],
        [1, 0, 0, 0, 1, 1, 0, 0],
        [1, 0, 0, 0, 1, 1, 0, 1],
        [0, 1, 0, 0, 1, 1, 0, 0],
        [0, 1, 0, 0, 1, 1, 0, 1],
        [1, 1, 0, 0, 1, 1, 0, 0],
        [1, 1, 1, 0, 1, 1, 0, 1],
        [0, 0, 1, 0, 1, 1, 0, 0],
        [0, 0, 1, 0, 1, 1, 0, 1],
        [1, 0, 1, 0, 1, 1, 0, 0],
        [1, 0, 1, 0, 1, 1, 0, 1],
        [0, 1, 1, 0, 1, 1, 0, 0],
        [0, 1, 1, 1, 1, 1, 0, 1],
        [1, 1, 1, 1, 1, 1, 0, 0],
        [1, 1, 0, 1, 1, 1, 0, 1],
        [0, 0, 0, 1, 1, 1, 0, 0],
        [0, 0, 0, 1, 1, 0, 0, 1],
        [1, 0, 0, 1, 1, 0, 0, 0],
        [1, 0, 0, 1, 1, 0, 0, 1],
        [0, 1, 0, 1, 1, 0, 0, 0],
        [0, 1, 0, 1, 1, 0, 0, 1],
        [1, 1, 0, 1, 1, 0, 0, 0],
        [1, 1, 1, 1, 1, 0, 0, 1],
        [0, 0, 1, 1, 1, 0, 0, 0],
        [0, 0, 1, 1, 0, 0, 0, 1],
        [1, 0, 1, 1, 0, 0, 0, 0],
        [1, 0, 1, 1, 0, 0, 0, 1],
        [0, 1, 1, 1, 0, 0, 0, 0],
        [0, 1, 1, 0, 0, 0, 0, 1],
        [1, 1, 1, 0, 0, 0, 0, 0],
        [1, 1, 0, 0, 0, 0, 0, 1],
        [0, 0, 0, 0, 0, 0, 0, 0],
    ])
    if cm is False:
        cm = np.array([
            [1, 1, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 0, 0, 0, 0, 0],
            [0, 1, 1, 1, 0, 0, 0, 0],
            [0, 0, 1, 1, 1, 0, 0, 0],
            [0, 0, 0, 1, 1, 1, 0, 0],
            [0, 0, 0, 0, 1, 1, 1, 0],
            [0, 0, 0, 0, 0, 1, 1, 1],
            [1, 0, 0, 0, 0, 0, 1, 1],
        ])
    # fmt: on
    return Network(tpm, cm=cm)
Exemplo n.º 22
0
def micro(cm=False):
    tpm = np.array(
        [[
            0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
            0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
        ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.2401, 0.1029, 0.1029, 0.0441, 0.1029, 0.0441, 0.0441, 0.0189,
             0.1029, 0.0441, 0.0441, 0.0189, 0.0441, 0.0189, 0.0189, 0.0081
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.4900, 0.2100, 0.2100, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
             0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
             0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.4900, 0.0000, 0.0000, 0.0000, 0.2100,
             0.0000, 0.0000, 0.0000, 0.2100, 0.0000, 0.0000, 0.0000, 0.0900
         ],
         [
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
             0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 1.0000
         ]])
    if cm is False:
        cm = np.array([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]])
    return Network(tpm, connectivity_matrix=cm)
Exemplo n.º 23
0
def network():
    size = 3
    current_state = (0, 1, 0)
    past_state = (1, 1, 0)
    tpm = np.ones([2] * size + [size]).astype(float) / 2
    return Network(tpm, current_state, past_state)
Exemplo n.º 24
0
def test_validate_network_wrong_cm_size(standard):
    with pytest.raises(ValueError):
        Network(standard.tpm, standard.current_state, standard.past_state,
                np.ones(16).reshape(4, 4))
Exemplo n.º 25
0
def test_network_creates_fully_connected_cm_by_default():
    tpm = np.zeros((2 * 2 * 2, 3))
    network = Network(tpm, cm=None)
    target_cm = np.ones((3, 3))
    assert np.array_equal(network.cm, target_cm)
Exemplo n.º 26
0
def test_validate_state_not_reachable_from_given(standard):
    initial_config = config.VALIDATE_NETWORK_STATE
    config.VALIDATE_NETWORK_STATE = True
    with pytest.raises(validate.StateUnreachableError):
        Network(standard.tpm, (0, 0, 0), (1, 1, 1))
    config.VALIDATE_NETWORK_STATE = initial_config