113 lines
2.8 KiB
Plaintext
113 lines
2.8 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# algorithme\n",
|
|
"\n",
|
|
"\n",
|
|
"1. Posons $X^{(0)}$ un reseau quelconque.\n",
|
|
"\n",
|
|
"2. copie $X^{(0)}$ dans $X^{(1)}$\n",
|
|
"\n",
|
|
"3. pour change antenne dans $X^{(1)}$\n",
|
|
" \n",
|
|
" 1. si `antenne` peut etre allume et $U(0, 1) < 0.5$\n",
|
|
" 1. On allume `antenne` dans $X^{(1)}$ \n",
|
|
" 2. sinon\n",
|
|
" 1. On eteint `antenne` dans $X^{(1)}$ "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"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,\n",
|
|
" get_number_of_activated_antenna,\n",
|
|
" pp_network,\n",
|
|
" switch_antenna_in_network,\n",
|
|
" turn_off_antenna,\n",
|
|
" can_antenna_be_turned_on,\n",
|
|
" turn_on_antenna)\n",
|
|
"from numpy import mean\n",
|
|
"from random import Random\n",
|
|
"from itertools import cycle"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"random = Random(666)\n",
|
|
"\n",
|
|
"def get_all_antennas(box_size):\n",
|
|
" return range(box_size * box_size)\n",
|
|
" \n",
|
|
"def get_new_network_with_gibbs(network, box_size):\n",
|
|
" for antenna in get_all_antennas(box_size):\n",
|
|
" if can_antenna_be_turned_on(antenna, network, box_size) and random.choice([True, False]):\n",
|
|
" network = turn_on_antenna(antenna, network, box_size)\n",
|
|
" else:\n",
|
|
" network = turn_off_antenna(antenna, network)\n",
|
|
" return network"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"networks = [0]\n",
|
|
"box_size = 5\n",
|
|
"\n",
|
|
"for i in range(100):\n",
|
|
" last_network = networks[-1]\n",
|
|
" networks.append(get_new_network_with_gibbs(last_network, box_size))\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|