miércoles, 29 de mayo de 2013

Last Homework: Image Compression

Para esta última tarea se nos encargó realizar compressión de imagenes. Una de las recomendaciones fue utilizar waveletes, ya que en clase de visión ya habían usado esto. Como no llevo la clase, mi compañero Avendaño me ayudó a entender el uso de estas.

Aquí está el codigo:


y el resultado:



Y las diferencias en los tamaños:

Basic JPEG: http://www.whydomath.org/node/wavlets/basicjpg.html

lunes, 27 de mayo de 2013

Extra Points: Bioinformatics

Functional immunomics: Microarray analysis of IgG autoantibody repertoires predicts the future response of mice to induced diabetes 

Francisco J. Quintana, Peter H. Hagedorn, Gad Elizur, Yifat Merbl, Eytan Domany, Irun R. Cohen

Can be found in: www.pnas.org/content/101/suppl.2/14615.full

One's repertoire of antibodies encodes the history of one's past immunological experience. Can the present autoantibody repertoire be consulted to predict  susceptibility to a future disease?  In this article, an antigen microarray chip is developed and bioinformatic analysis is used to study a model of type 1 diabetes developing in nonobese diabetic male mice in which the disease was accelerated and synchronized injecting cyclophosphamide at 4 weeks of age. Sera was obtained, the mice were treated to induce cyclophosphamide-accelerated diabetes (CAD), here 9 mice became severely diabetic, whereas 10 mice permanently resisted diabetes.

Male mice of the nonobese diabetic (NOD) group develop type 1 diabetes at a low incidence and late age. However, the start of diabetes can be significantly accelerated and synchronized by exposing NOD mice to cyclophosphamide. So, the CAD model of type 1 diabetes gives an opportunity to test whether the global autoantibody repertoire might reflect susceptibility to CAD in still healthy mice, before the cyclophosphamide insult is administered.

Recently, microarray antigen chips have been used to detect high-titer autoantibodies to known antigens in autoimmune diseases. However, rather than focusing only on known antigens, here some  individual immune systems are profiled by their global patterns of autoantibodies free of bias for high-titer reactivities to particular antigens.

Mice. Male NOD (non-obese diabetic) mice were raised an maintained under pathogen-free conditions. The mice were 4 weeks old at the start of the experiments. Nineteen mice were studied individually.

CAD. Diabetes was accelerated and synchronized by two injections of cyclophosphamide at 4 weeks of age, and again, 1 week later. In the colony, this treatment of NOD males leads of an incidence of diabetes of approximately 50%. The mice developing diabetes go on to die unless they are treated with insulin; those males that do not develop diabetes within 1 month after two injections of cyclophosphamide do not become diabetic later in life.

The next image is a schematic repersentation of the protocol.

The experimental protocol is as follows:
- Numbers refer to age of the mice (in weeks)
- Black vertical lines are serum sample collection (weeks 4 and 9)
- Grey vertical lines are Cyclophosphamide injection (weeks 4 and 5)
- Grey box (at week 6) shows when mice developed diabetes.
- Grey box (between week 11 and 13) shows time of death of untreated diabetic mice.

Blood glucose was measured weekly. A mouse was considered diabetic when its blood glucose concentration was >13 mM on two consecutive examinations. Of the 19 mice treated, 9 developed diabetes, and 10 remained healthy throughout a 2-month period.

Serum samples were collected 1 day before the first injection of cyclophosphamide and 1 month after the second injection.

The 266 antigens spotted on the microarray chips include proteins, synthetic peptides, nucleotides, and phospholipid.

Image and Data Processing. 
The pixels that comprised each spot in the TIFF files and the local background were identified by using histogram segmentation. The intensity of each spot and its local background were calculated as the mean of the corresponding pixel intensities. None of the spots containing antigens showed saturation. Technically faulty spots were identified by visual inspection and were removed from the data set. For each spot, the local background intensity was subtracted from the spot intensity. Spots with negative intensities were removed from the data set. A log-base-2 transformation of the intensities resulted in reasonably constant variability at all intensity levels. The log intensity of each antigen was calculated as the mean of the log intensities of the replicates on each slide. The coefficient of variability between replicates on each array was ≈30%.


Selection of Informative Antigens for Pre-CAD Mice
There have been reported previously that coupled two-way clustering (CTWC) could be used to successfully separate human subjects already diabetic from healthy persons. How ever different approach was taken. Based on the sera taken before cyclophosphamide treatment, there have been listed the 27 antigens that separated best between the sera of the 10 mice that later resisted the induction of CAD, and of the 9 mice that later developed CAD.

Figure A

Above figure Left is the two-way SPC of these antigens. The filled rectangles at the top of the box are the mice susceptible to CAD induction; empty rectangles are mice resistant to CAD induction. The 27 antigens are clustered at the rows and are identified by number. It can be seen that all 9 mice that were found later to be susceptible to CAD could be separated from 8 of the 10 mice that were later found to resist CAD.

Figure B

Figure C

Selection of Informative Antigens for Post-CAD Mice. 
Then, 27 antigens were used effective in pre-CAD clustering to analyze the patterns of IgG antibodies developing in the diabetic and healthy mice post-CAD. These 27 antigens failed to discriminate between the two groups of mice. A third set of 27 antigens was generated by performing the Wilcoxon rank-sum test on the ratios by which each antigen changed post-CAD/pre-CAD. The ratios provide information on reactivity changes toward the antigen.

Figures B and C show that previously mentioned antigens could indeed separate between the healthy and diabetic mice post-CAD. Thus, the IgG repertoires of the pre- and post-CAD groups of healthy and sick mice could be clustered, but the informative patterns of reactivity required modified sets of antigens to develop discriminating patterns.

It can be seen that some of the antigens from the set of pre-CAD antigens were also present in the post-CAD set, or in the set of antigens determined from the pre-CAD/post-CAD ratios. For example, three of the pre-CAD antigen reactivities were also prominent post-CAD. The shared and distinct antigens are shown as a Venn diagram (figure above) for the overlap between the three lists of antigens mentioned previously.


The antigen microarray chip described in this paper required much preliminary work to obtain consistent results. Patterns of IgM antibodies were analyzed before and after CAD. 

The article show that the patterns of IgG antibodies expressed pre-CAD in male NOD mice can mark susceptibility or resistance to CAD induced later. There were also found patterns of IgG antibodies characteristic of healthy or diabetic mice post-CAD, but these patterns required sets of antigens that differed from the informative pre-CAD set. Thus, IgG reactivities to some antigens may mark future susceptibility to CAD, but not CAD itself, once the disease emerges, and conversely, some IgG reactivities may mark the disease but not the susceptibility. Hence, prediction of future disease and diagnosis of present disease can depend on different data sets of information, at least in the CAD model. 
Another notable finding was that health, both pre- and post-CAD, was associated with relatively high IgG autoreactivity to self-antigens, to which the susceptible mice were low IgG responders. Thus, some types of active autoimmunity may actually protect against autoimmune disease. 
However, environmental factors can also prevent the development of type 1 diabetes. Stimulation of the NOD mouse immune system by infection, by vaccination with microbial antigens, or by treatment with ligands that activate innate immune receptors, can prevent diabetes. Type 1 diabetes appears in very young people, so critical aspects of autoimmune organization must occur fairly early in one's lifetime. The results of this bioinformatic study would suggest that, some organized patterns of IgG autoantibodies are shared by groups of individuals, at least among NOD mice.
The bioinformatic analysis described here relates to two separate, but linked issues: predictive medicine by means of functional immunomics and the biological meaning of the autoimmune repertoire.

The present study investigated patterns of antibodies, but not their function in the disease process. Nevertheless, the list of informative antigens may be connected to other observations regarding the pathophysiology of type 1 diabetes.

The mammalian immune system, in addition to its well studied role in defending the body against foreign invaders, is now understood to be heavily involved in maintaining the integrity of the body from within; immune system cells and molecules, which comprise the inflammatory response, are key factors in wound healing, neuroprotection, connective tissue formation, angiogenesis, tissue morphology and regeneration, and waste disposal. To dispense reparative inflammation at the right sites and occasions, the immune system has to assess the state of the body on the fly. In this respect, the immune system acts as it were the body's onboard bioinformatic computer. If so, predictive medicine would do well to mine this immune information, as this article suggests it might.

Functional immunomics: Microarray analysis of IgG autoantibody repertoires predicts the future response of mice to induced diabetes;

Francisco J. Quintana, Peter H. Hagedorn, Gad Elizur, Yifat Merbl, Eytan Domany, Irun R. Cohen;

"This paper results from the Arthur M. Sackler Colloquium of the National Academy of Sciences, “Therapeutic Vaccines: Realities of Today and Hopes for Tomorrow,” held April 1–3, 2004, at the National Academy of Sciences in Washington, DC."

Link to the article: http://www.pnas.org/content/101/suppl.2/14615.full
[Consultado el 27 de Mayo de 2013]

Extra points: Card Game

1. Microarray (Found in this bioinformatics article)

An antigen microarray chip was developed and used bioinformatic analysis to study a model of type 1 diabetes...

2. Block
If the words wi appearing in an encoding scheme are all of the same length, the code is said to be a fixed-length or block code, and the common length of the wi is said to be the length of the code. Otherwise, the code is said to be a variable-length code.

3. Relative
We have a memoryless channel with input alphabet A = {a1,...,an}, output alphabet B = {b1,...,bk}, and transition probabilities qij. For i ∈ {1,...,n}, let pi denote the relative frequency of transmission, or input frequency, of the input character ai.

4. Audio
Imagine a signal, that is, a function h of time t. It it’s helpful, you can think of h as an audio signal, i.e., a voltage level, fluctuating with time

5. Stream
Nevertheless, we shall hold to the simplifying assumption that pi, the proportion of ai’s in the input text, is also the probability that the next letter is ai, at any point in the input stream.

6. Knowledge
There is a body of knowledge related to the Implicit Function Theorem in the calculus of functions of several variables that provides an answer of sorts.

7. Missing
The smoothing procedure sometimes makes good guesses about the missing data, but it cannot recover the original information.

8. Recover
To see why we do this, observe that if the decoder is supplied the source word length N and a number in A, then the decoder can recover the sequence i1,...,iN, and thus the source word si1···siN.

9. Alignment
The code string is shifted by the same amount in order to maintain alignment.

10. Transformation
The transformation x → 2x −1/2 doubles the directed distance from x to 1/2; call it the “doubling expansion around 1/2” if you like.

Using approximate probabilities can permit replacement of multiplications by simple shift operations.

12. Uniform
It has been generally assumed that the relative source frequencies are equal, and the dazzling algebraic methods used to produce great coding and decoding under these assumptions automatically produce a sort of uniformity that makes p0 and p1 equal or trivially close to 1/2.

13. Optimal
Furthermore, if p1,..., pn are optimal input frequencies satisfying these equations, for some value of C, then C is the channel capacity.

14. Simultaneously
Thoughtful quantizing can help suppress both non-meaningful and weak mathematical frequencies simultaneously.

15.  Fixed
If our attention is fixed to only the part of the graphs over the integers 0, 1, . . . , 7, then we might be led to believe that x is as smooth, if not smoother, than y.

16. Rate
The code words would have to be quite long, so that the rate of processing of source text would be quite slow...

17. Arbitrary
If, for some reason, we require the M in the WNC algorithm to be small, we
may allow rough and arbitrary approximation of the relative source frequencies.

18. Mapping
Given E and F , we can think of the mapping (i, j ) → I (E i , F j ) as a random variable on the system E ∧ F .

19. Hamming weight
The Hamming weight of a word w ∈ {0, 1} is wt(w) = number of ones appearing in w.

20. Noisy
Shannon’s Noisy Channel theorem applies to a more general sort of source, one which emits source letters, but not necessarily randomly and independently

21. Ambiguous
The code determined by φ is said to be unambiguous if and only if φ is one-to-one (injective). Otherwise, the code is ambiguous.

22. Code
The code determined by φ is uniquely decodable if and only if it is unam-biguous and there exists a VDR for it.

23. Bitwise
In addition, a number of the steps in the scheme can be managed as simple bitwise operations.

24. Finite
Therefore, we will allow ourselves the convenience of sometimes attributing the SPP to finite sets of binary words.

viernes, 24 de mayo de 2013

Clase de Redes de Telecomunicaciones, Última tarea

Para la última tarea de la clase de Redes de Telecomunicaciones se nos encargó hacer un resumen sobre un artículo de Redes Sensoras. El artículo que escogí es algo breve pero bien completo.

Towards Vehicular Sensor Networks in Android Smartphones for Road Surface

Girts Strazdins, Artis Mednis, Georgijs Kanonirs, Reinholds Zviedris, Leo Selavo.

Aunque existen mapas de baches, la recolección de información es manual y basada en reportes individuales. El enfoque manual tiende a ser irregular, y por ello de confianza limitada. Soluciones automatizadas han sido demostradas pero requieren hardware especializado.

Recientemente, ha emergido un enfoque prometedor, llamado "Detección Participativa", usando smartphones - una clase de hardware de "Detección Participativa" virtualmente ubicua y poderosa.

Aunque ya existen sistemas de monitoreo de una superficie participativa , esta es la primera evaluación en plataformas Android, con acelerómetros integrados, sin requerir módulos sensores externos.

Android es una de las plataformas de smartphone más populares, más abiertas y flexibles proveyendo a los desarrolladores de software fácil accesso a hardware de teléfono y API´s ricas en software. La visión de los autores son smartphones Android como una plataforma de detección participativa poderosa y ampliamente usada en un futuro cercano. En este artículo se examinan los smartphones Android en el contexto del monitoreo de la calidad de superficie de carretera.

Se evalúan un conjunto de algoritmos de detección de baches en teléfonos Android con aplicación sensora mientras se conducía un auto en un ambiente urbano. El resultado dió una primera vista en las diferencias de hardware entre varios modelos de smartphone y sugerencias para próximas investigaciones, para la optimización de los algoritmos, para opciones de sensores y para procesamiento de señal.

El enfoque requiere un smartphone Android con GPS, acelerómetro de 3 ejes y un canal de comunicación (Celular o Wifi). El sistema consiste de dos aplicaciones: una para el dispositivo Android y otra para el servidor de datos (siguiente figura).

La aplicación del dispositivo Android tiene una arquitectura impulsada por eventos. Los más importantes son los eventos sensores de disponibilidad de datos, de disponibilidad de conexión a Internet y de Interfaz de usuario. La lista de los sensores usados incluye GPS para detectar la ubicación actual y el acelerómetro para detecta baches. Después de que los datos del sensor son recibidos, estos son procesados y almacenados en la base de datos la cual es periódicamente sincronizada con el servidor principal de la base de datos de manera que ambos tengan información actualizada. La visión es un sistema de detección de baches como un servicio background en el futuro, usado por otras aplicaciones, así que no se pone fuerte énfasis en la interfaz de usuario por el momento.

La aplicación del servidor en la PC es una aplicación web Java con una base de datos SQL basada en el framework Spring. Consiste de un servlet, controlador de datos de sensor y una interfaz de usuario. Se utiliza la API de Google Maps para la visualización de baches.

La evaluación de la solución propuesta fue llevada a cabo en dos experimentos del mundo real en la carretera. Cada vez con un vehículo diferente. Aunque se llevaron a cabo más tests, se descubrió que en ciertas condiciones de clima de invierno la superficie de la carretera podía cambiar en un periodo corto de tiempo, y también que es difícil establecer una realidad del terreno y repetidas corridas del experimento en la misma pista con condiciones consistentemente iguales.

Se llevaron a cabo experimentos en una pista de prueba idéntica a una usada durante previas actividades pero esta vez cada experimento consistió de sólo tres vueltas. Esto debió ser suficiente para obtener una impresión de prueba de concepto sobre los eventos observados y los datos grabados. El equipo para la adquisición de los datos consistió de tres teléfonos celulares Android con la aplicación de recolección de data descrita arriba.

La primera meta fue comparar los datos, los cuales fueron grabados usando equipo diferente, durante el mismo periodo de tiempo. Tal como uno podría esperar, se encontró que las diferentes unidades de hardware con el mismo software tienen diferente tasa de adquisición de datos del acelerómetro y precisión GPS y estabilidad de señal. Este aspecto debe ser considerado en contexto de la posición de granularidad detectada del evento.

Después de la adquisición del primer conjunto de datos se comenzó con algoritmos de detección de eventos empíricos. Se evaluaron los siguientes algoritmos:

- STDEV(Z) - los eventos son detectados por umbralización de la desviación estandar de la aceleración de el eje Z.

- Z-DIFF - se umbralizan diferencias de dos muestras consecutivas del eje Z. Altamente sensible al ruido.

- Z-THRESH - umbralizar el valor absoluto de la aceleración en el eje Z. El enfoque más simple.

- G-ZERO - detecta eventos teniendo el valor del eje Z cercano a cero g. Además de baches y golpes también detecta curvas/vueltas, lo cual tiene que ser filtrado por métodos adicionales.

Cuando se comparan los eventos detectados por medio de métodos utilizados en un trabajo previo (donde se llevó a cabo la umbralización de señal de audio por amplitud) y los eventos detectados por la aplicación sensora en smartphones Android (mostrado en la figura de abajo), ambas parecen compartir tendencias en común. Sin embargo, se requiere un estudio más profundo e información de pruebas adicional para adquirir una precisión de algoritmo y estabilidad de evaluaciones válidos.

En este artículo se describieron los resultados preliminares de dos pruebas con tres smartphones Android corriendo una aplicación de detección de baches, basada en el procesamiento de información de acelerómetro. A pesar de las diferencias de hardware en términos de precisión de GPS y el muestro de ruido y tasa de muestreo del acelerómetro, se postula que la detección de baches es posible. Sin embargo, para asegurar la hipotesis, es necesaria investigación más a fondo, se debe investigar la combinación de múltiples algoritmos y se debe recolectar un conjunto de datos mas grande y más representativo.

Antes de leer este artículo yo no sabía que ya había en funcionamiento este tipo de aplicaciones. Me fascinó el hecho de que solo fuera necesario un celular con acelerómetro y GPS para llevar a cabo esto.

Creo que para nuestra ciudad este tipo de aplicaciones serían muy útiles y deberían aumentar en algún momento, especialmente para ser usadas en temporadas de lluvias cuando en unos minutos de lluvia aparecen baches nuevos que el conductor no se esperaba.

Pienso que este tipo de aplicaciones, además de evitar la molestia del conductor de caer en un bache, ayudarían a un mejor flujo del tráfico en calles donde los autos deben ir muy lentos por ir sacándole la vuelta a muchos baches.

Girts Strazdins, Artis Mednis, Georgijs Kanonirs, Reinholds Zviedris, Leo Selavo, "Towards Vehicular Sensor Networks in Android Smartphones for Road Surface"; Institute of Electronics and Computer Science; Faculty of Computing, University of Latvia

[Fecha de acceso: 24 de Mayo de 2013]
Se puede encontrar en: http://strazdins.lv/papers/strazdins2011androidpotholes.pdf

Última tarea

martes, 21 de mayo de 2013

Laboratorio de Redes de Telecomunicaciones: Aplicaciones de las redes Ad Hoc

Article: Position-Aware Ad Hoc Wireless Networks for Inter-Vehicle Communications: the Fleetnet project
Authors: Hannes Hartenstein, Bernd Bochow, André Ebner, Mattias Lott, Markus Radimirsch, Dieter Vollmer

En el artículo se presenta el proyecto "Fleetnet - Internet en el camino" que se enfoca en el desarrollo y demostración de una red ad-hoc inalámbrica consciente de la posición para la comunicación entre vehículos. Al habilitar la comunicación "multi-hop" entre vehículos uno puede lograr: i) mejoras en la seguridad a través  de un rango extendido de consciencia de un vehículo y su conductor, y ii) una nueva opción de comunicación de bajo costo para el pasajer de un vehículo y los componentes de una red.

Los nodos de este proyecto, Fleetnet, serán direccionables no solo vía direccionamiento IP sino también de acuerdo a su posición actual. Tal esquema de direccionamiento basado en posición naturalmente soporta geocasting así como servicios basados en ubicación, y permite ruteo basado en posición.

Las aplicaciones Fleetnet están en las areas de asistencia al conductor, información de carros descentralizada y comunicaciones con el usuario. Los sistemas corporativos de asistencia al conductor explotan el intercambio de datos de sensores entre carros. Información acerca de accidentes puede ser transportada por carros que conduzcan en el sentido contrario y, por lo tanto, ser transmitida a vehículos que pudieran dirigirse hacia el accidente. Una de las aplicaciones más sofisticadas en el área de asistencia al conductor son los convoys de vehículos (el emparejamiento de un grupo de vehículos para manobriar de manera coordinada y automática. Este tipo de aplicaciones requieren consciencia de la posición de los vehículos, direccionamiento de acuerdo a las posiciones actuales, retraso de transmisión corta, y alta confiabilidad de intercambio de datos.

Las aplicaciones Fleetnet no solo lidian con la seguridad del conductor y con el flujo del tráfico sino que también lidian con el aspecto de "comfort" de los pasajeros del vehículo. Por ejemplo, pasajeros situados en los asientos traseros pueden jugar juegos online con pasajeros de otros vehículos que viajan en la misma carretera. Fleetnet, con sus compuertas estáticas en la autopista también provee un medio para marketing a través del camino.

Los patrones específicos de los movimientos de los vehículos y del tráfico dan a las redes entre vehículos su característica distintiva con respecto a otras redes ad hoc. En particular, las altas velocidades y la unidimensionalidad de los escenarios de autopista son diferentes a otros escenarios de comunicaciones ad-hoc.

Los patrones en el tráfico dependen de la densidad del trafico, es decir, el número de vehículos por kilometro. Para pequeñas densidades uno puede asumir que los carros se están moviendo independientes unos de otros. En grandes densidades, las interaccinoes complejas entre los vehículos vecinos hacen que el modelado de tal sistema dinámico sea un reto.

Para escenarios de densidades bajas uno usualmente construye modelos de tráfico básicos al especificar distribuciones de probabilidad para velocidades de vehículos y para tiempos entre dos carros cercanos pasando un punto de referencia (headways). Estos headways son típicamente medidos en segundos y proveen una medida de distancias relacionada a la seguridad. Sin embargo, DaimlerChrysler está actualmente compilando un conjunto de escenarios de movimientos de vehículos usando su aproximación de modelado basada en el conductor. Estos escenarios muestran los movimientos de vehículos de los "autobahns" alemanes, los caminos del país y las calles de la ciudad interna de Berlin. Se tomarán en cuenta diversas variables del tráfico. Esta base de datos es usada como entrada para evaluaciones de protocolo con propósito de simulación.

Se introduce el hardware de radio elegido para Fleetnet

Necesidades del rango de ancho de banda: Mientras las llamadas de emergencia requieren solo unos pocos bytes de señalización, servicios como el acceso a internet pueden requerir altas tasas de bits de más de 100 kbit/s. Así, los sistemas de radio Fleetnet deben soportar un alto rango de necesidades de ancho de banda.

Características de la ruta de radio: La integración de sistemas ad-hoc inalámbricos en los vehículos implica la operación de sistemas de radio dentro de un ambiente de propagación multiruta.

Tiempos de contacto: Debido a las velocidades relativamente altas, el contacto del radio de dos vehículos aproximandose uno al otro o entre la compuerta Fleetnet y un vehículo pasando muy cerca puede ser muy corto.

Problemas regulatorios: para poder encontrar aceptación en el mercado, tal ves el criterio más importante es la disponibilidad de una banda de frecuencia no licenciada.

Restricciones de proyecto: debido a razones de costo, no es posible definir una interfaz de aire específica para Fleetnet. Así fleetnet tiene que estar basado en una interfaz de aire existente.


Adaptividad: la topología de red w.r.t. y la escalabilidad representan los aspectos competitivos y los retos clave para el ruteo Fleetnet debido a las velocidades altas relativas y a un gran número de nodos involucrados. Debido a que los carros del futuro serán equipados con un sistema de posicionamiento a bordo, el ruteo en Fleetnet será basado en los métodos de ruteo basados en posición que muestran ventajas sobre los métdos puramente basados en topología.

Ubicación de Servicio: Algunos métodos que usan cada cono como server de ubicación para algunos nodos y dispersan los servers de ubicación para un nodo logarítmicamente con la distancia del nodo, aparentan ser una propuesta interesante.

Estrategias de recuperación: muchas estrategias han sido propuestas en la literatura. Sin embargo, aun queda demostrar si los costos involucrados con estas estrategias en realidad justifican los beneficios o no.

Mapas digitales y sistemas de navegación: estos pueden soportar decisiones de ruteo. Aunque los mapas digitales no están considerados como sistema mandatorio de un nodo Fleetnet, los protocolos de ruteo deberán incluir tal data en las decisiones de ruteo si están disponible

Position-Aware Ad Hoc Wireless Networks for Inter-Vehicle Communications: the Fleetnet Project
Hannes Hartenstein, Bernd Bochow, André Ebner, Mattias Lott, Markus Radimirsch, Dieter Vollmer

Simulación de red AD-HOC

Para esta semana tuvimos la tarea de simular una red ad-hoc en base a ciertos criterios:

+1 nodos que llegan en intervalos ~ Exp(lambda)
+1 que forman conexiones dentro de un radio de alcance ajustable
+1 que se mueven o de una manera más sofisticada o de dos o más simples
+1 que mandan mensajes por inundación (pueden ser de tamaño fijo)
+1 que cuestan batería según la distancia (y si no son de tamaño fijo, de eso)
+1 provocados por algún fenómeno presente en la zona simulada
+1 usando un valor de TTL
+1 que se adapte durante la simulación según una medida de desempeño
+1 con los nodos muriéndose al acabarse la batería
+1 en una visualización de lo que ocurre

Decidí simular una red de aviones comunicandose entre sí que funciona de la siguiente manera:

- el nodo padre sería la torre de control, y los aviones serían los nodos hijos.
- el intruso sería una tormenta que se acerque a la ruta de alguno de los aviones
- los aviones se pueden comunicar entre si cuando una tormenta se acerca, para que se desvíen en caso de ser necesario.
- Cada avión tiene un radio de comunicación. Para que un avión A pueda enviar un mensaje a un avión B, B tiene que estar dentro del radio de comunicación del avión A.
- De la misma manera, la torre cuenta con un rango de comunicación (mayor al de los aviones). Un mensaje enviado por la torre tiene mayor tiempo de vida.

- los mensajes entre aviones tienen tiempo de vida, donde se termina su vida al haberse enviado 2 veces
- Dependiendo la distancia los mensajes consumirán cierta energía. A mayor distancia, mayor energía se necesita.
- Si  el avión se encuentra dentro de una tormenta se necesitará mayor energía para enviar un mensaje.

La simulación de esta red se muestra de la siguiente manera:

Donde el avión con círculo Verde es el intruso, y el resto, con círculos azules, son los aviones de la red.   La del centro, por si no es obvio, es la torre.

Para calcular si un avión estaba dentro del radio de comunicación de otro avión quise usar el cuadrado circunstricto en las circunferencias.

Lo anterior fue calculado de la siguiente manera:

- Si trazamos el radio de la circunferencia 2 veces hacia dos puntos de la circunfrencia con un ángulo de 90 grados entre ellos, se formará un triangulo (los radios serán los catetos).
- en base a esto, calculamos la hipotenusa de dicho triángulo, lo cual será el largo del lado del cuadrado circunstrito

Aquí el resultado de realizar este calculo:

esto fue donde pude llegar. Mi código es el siguiente: