Files
simulationexam/brute_force.ipynb
T
2015-12-20 13:57:30 -05:00

112 lines
9.6 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use this notebook to generate all the possible network using brute force"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"from network.network import is_valid_network, get_number_of_activated_antenna, pp_network\n",
"from numpy import mean\n",
"\n",
"def get_all_possible_network(box_size):\n",
" number_of_square = box_size * box_size\n",
" return range(2**number_of_square)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"box_size = 4\n",
"all_networks = [network for network in get_all_possible_network(box_size) if is_valid_network(network, box_size)]\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.06482982172\n"
]
},
{
"data": {
"image/png": "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\nd0nqoP8P4meNbB7XVXwAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f37cd9bd9b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(mean( list(map(get_number_of_activated_antenna, all_networks)) ))\n",
"hist(list(map(get_number_of_activated_antenna, all_networks)), bins=100)\n",
"\n",
"None"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3+"
}
},
"nbformat": 4,
"nbformat_minor": 0
}