Академический Документы
Профессиональный Документы
Культура Документы
./build.py --enable-examples
1
• Finalmente dirı́jase a la carpeta ns-3.30.1 y ejecute el comando
./waf configure
• Inicialmente instale ZMQ y los buffers de los protocolos con los siguientes
. Para hacer esto entre a la consola de Ubuntu y ejecute los siguientes
comandos (en orden):
cd ns-3.29/contrib/opengym/
protoc -I=./model/ --python out=./model/ns3gym/ns3gym
./model/messages.proto
2
pip install ./ns-3.29/contrib/opengym/model/ns3gym
cd ns-3.29
Primera versión:
./waf --run "scratch/ManetSimulation --help"
3
3 Librerı́as utilizadas
3.1 ns3
Es un simulador de redes basado en eventos discretos usado principalmente en
ambientes educativos y de investigación. Permite simular tanto protocolos uni-
cast como multicast y se utiliza intensamente en la investigación de redes móviles
ad-hoc. Implementa una amplia gama de protocolos tanto de redes cableadas
como de redes inalámbricas.
En nuestro caso nos permite crear la red manet (mobile ad-hoc network)
y simularla bajo unos parámetros de simulación determinados como tiempo,
numero de nodos en la red, velocidad de trasmisión de paquetes, entre otros.
4
Es importante mencionar que ambas partes de la simulación están interna-
mente relacionadas debido a que la red Manet es en ambiente sobre el que se
mueve el agente de gym y este a su vez, mediante su proceso de aprendizaje,
modifica y mejora la red par que tenga un mayor desempeño.
5
De manera similar a como se realizado con el espacio de observación, se crea
un espacio de acciones el cual a grandes rasgos es igual al espacio de observación
conteniendo un objeto de tipo OpenGymBoxSpace teniendo en cuenta los nodos
de la red, sin embargo el objetivo de estos dos espacios es diferente ya que el
primero corresponde al espacio en el cual el agente toma las observaciones de
su ambiente para analizar posibles acciones y el espacio de acciones es sobre el
cual se ejecutan dichas acciones del agente.
6
Con todo esto construido se puede definir el objeto OpenGymBoxContainer
que corresponde al observation utilizado por el agente el cual contiene infor-
mación relacionada con el número de paquetes de cada uno de los nodos de la
red en un paso determinado de la simulación.
7
Se definen los mı́nimos y máximos de una onda continua la cual es utilizada
por el agente.
8
Se indica el cronograma que le indica a la simulación cuales son las acciones
que se deben realizar a lo largo de la misma y le notifica a la interfaz de gym el
estado actual de la simulación de la red Manet.
9
Posteriormente se definen los datarates para la red Manet.
10
Finalmente se configura la semilla para la simulación.
11
Se crea un canal para la comunicación en la red wifi de tipo SpectrumWifi-
PhyHelper.
12
Los nodos de la red utilizan el modelo RandomWaypointMobilityModel a
una velocidad de 20 m/s (sin tiempo de pausa) dentro de una región de 300
metros x 1500 metros. Además estos nodos inicialmente se configuran en una
cuadricula de 5x5 con un espacio de 45 metros entre cada nodo
13
los nodos de la red.
14
4.1.5 Definición (callback) del ambiente de gym
Para poder realizar la correcta comunicación entre el ambiente generado y el
agente creado en gym es necesario instanciar la interfaz de gym e indicarle los
espacios de observación y de acciones, la condición de gameover definida por el
ambiente, la recompensa y los métodos que permiten ejecutar acciones decididas
por el agente dentro del ambiente
15
Es importante notificar al agente la finalización de la simulación por parte
del ambiente para que este también finalice su tarea.
16
que se quieren realizar para la simulación del agente y como se verá más adelante
indicar el número de veces que se desea ejecutar el ciclo de aprendizaje.
17
Finalmente se definen valores necesarios para los ciclos de aprendizaje
18
Posteriormente, y utilizando la función calculate cw window se definen la
acciones a llevar a cabo por el agente.
Este método step retorna el vector de observacion que indica el nuevo estado
en el que se encuentra el ambiente después de realizar la acción especificada, la
recompensa obtenida, el indicador de terminado e información extra.
Este proceso iterativo se realizará hasta que el agente detecte que la tarea
a realizar se ha cumplido por lo que finalizara dicho proceso de aprendizaje y
19
reinicia los valores de stepIndex y de numero de paquetes recibidos para una
nueva iteración de la simulación y por ende un nuevo ciclo de aprendizaje. En
caso de que sea la última iteración se reiniciara el enviroment de gym.
20