Files
simulationexam/gibbs_sampler.ipynb
T
2015-12-20 13:43:45 -05:00

13 KiB

In [2]:
%pylab inline
from network.network import (is_valid_network,
                             get_number_of_activated_antenna,
                             can_antenna_be_turned_on,
                             pp_network,
                             turn_off_antenna,
                             turn_on_antenna)
from numpy import mean
from random import Random
Populating the interactive namespace from numpy and matplotlib
In [2]:
random = Random(666)

def create_new_network(network, box_size):
    number_of_square = box_size * box_size
    for antenna in range(number_of_square):
        if can_antenna_be_turned_on(antenna, network, box_size) and random.choice([True, False]):
            network = turn_on_antenna(antenna, network)
        else:
            network = turn_off_antenna(antenna, network)
    return network

In [12]:
box_size = 8
n = 15000

valid_networks = [0]

for random_antenna in range(n):
    network = valid_networks[-1]
    new_network = create_new_network(network, box_size)
    valid_networks.append(new_network)
In [13]:
hist(list(map(get_number_of_activated_antenna, valid_networks)), bins=100)
None
In [14]:
mean(list(map(get_number_of_activated_antenna, valid_networks)))
Out [14]:
15.072261849210053
In [ ]:
In [11]:
for network in valid_networks[-10:]:
    print(pp_network(network, box_size))
□-■-□-□-■
□-□-■-□-□
□-□-□-□-□
□-■-□-■-□
■-□-□-□-■

□-□-□-□-■
□-□-□-■-□
■-□-■-□-■
□-□-□-□-□
■-□-■-□-□

□-□-■-□-□
□-■-□-□-□
□-□-■-□-■
□-□-□-■-□
■-□-□-□-□

□-□-□-□-□
□-□-□-□-□
■-□-■-□-■
□-□-□-■-□
□-□-■-□-■

■-□-□-□-□
□-□-□-■-□
■-□-□-□-□
□-■-□-■-□
■-□-□-□-■

□-■-□-□-■
□-□-□-□-□
■-□-□-□-□
□-■-□-■-□
■-□-■-□-□

□-□-□-□-■
□-□-□-□-□
■-□-□-□-□
□-■-□-□-□
□-□-□-□-□

■-□-□-□-□
□-■-□-□-□
□-□-■-□-■
□-■-□-■-□
□-□-□-□-■

□-□-□-■-□
□-■-□-□-□
■-□-□-□-■
□-□-□-□-□
□-■-□-□-■

■-□-□-□-□
□-■-□-■-□
■-□-■-□-■
□-□-□-■-□
□-□-□-□-□

In [14]:
random.choice([1,2,3,4], 111, replace=False)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-14-e2f587eeb987> in <module>()
----> 1 random.choice([1,2,3,4], 111, replace=False)

mtrand.pyx in mtrand.RandomState.choice (numpy/random/mtrand/mtrand.c:11010)()

ValueError: Cannot take a larger sample than population when 'replace=False'
In [ ]: