Instinto Lógico

Recuerda que nadie debe pensar por tí.

Etiqueta: algoritmo

Introducción a la criptografía. ¿Es necesario cifrar?. Criptografía simétrica y asimétrica.

CIFRAR ES NECESARIO.

introducción a a la criptografíaLa criptografía (del griego ‘(criptos), «oculto», y (grafé), «escritura») se podría traducir como la escritura de mensajes ocultos. En la antigüedad ya se empleaban métodos de criptografía para ocultar mensajes en tiempo de guerra, de forma que aunque el mensajero fuera interceptado por el enemigo, el contenido del mensaje estaba a salvo.

Uno de los primeros métodos de criptografía documenta es el método utilizado por Julio Cesar. Es un tipo de cifrado por sustitución que consiste en remplazar cada letra del mensaje por otra que se encuentra un número fijo más adelante en el alfabeto.

Hoy en día, con las tecnologías actuales, la necesidad de cifrar es mayúscula: Hablamos con nuestros amigos, reservamos nuestras vacaciones, damos en número de nuestra tarjeta de crédito, ofrecemos nuestros datos personales… y todo ello mediante:

  • Voz telefónica
  • Mensajería breve (SMS, WhatsApp … )
  • Datos por línea digital (ADSL, fibra, HFC) o inalámbrica (wifi, UMTS, LTE).
  • …..

Los mensajes se transmiten por canales inseguros, redes de compartidas de comunicación etc.… y, con toda seguridad, vamos a tener a terceras personas acechando para obtener el contenido del mensaje

Una vez que llegamos a la conclusión de que es necesario encriptar (o cifrar) necesitamos decidir cómo lo vamos a hacer. Para ello necesitaremos seleccionar un algoritmo de cifrado.

CRIPTOGRAFÍA SIMÉTRICA (más…)

Dijkstra y el camino más corto

dijkstra_edgarEdsger Dijkstra (1930 -2002 ) es uno de los padres de la informática al que poca gente ajena a la informática conoce. Éste físico teórico realizó contribuciones fundamentales al campo de la informática actual están los semáforos, el algoritmo del banquero o la notación polaca inversa.

Todas las contribuciones mencionadas anteriormente han supuesto un avance significativo en el desarrollo informático, pero en esta entrada nos vamos a centrar en una de las contribuciones de Dijkstra que más se ha popularizado en los últimos tiempos gracias al uso de los GPS. Se trata del algoritmo que lleva su nombre: “El algoritmo de Dijkstra”.

El algoritmo de Dijkstra se aplica sobre un grafo ponderado y calcula la distancia desde un vértice inicial al resto de vértices del grafo. Los GPS tratan el mapa de carreteras como un grafo ponderado (cuyos pesos son o bien la distancia o el tiempo) y utilizan este algoritmo para calcular el camino más corto entre dos puntos.

Formulación del algoritmo de Dijkstra

Como se ha dicho anteriormente, el algoritmo de Dijkstra calcula la distancia desde un vértice inicial s al resto de vértices del grafo. En cada paso etiquetaremos los vértices del grafo de la siguiente forma: (dist(u),v), dónde dist(u) es la distancia acumulada desde el vértice s al u y v es el vértice predecesor de u en el camino más corto de s a u.

Para realizar el algoritmo de Dijkstra utilizaremos las siguientes estructuras: (más…)

LA FÓRMULA DE PICK

GeorgePickGeorge Pick nació en Viena en 1859. Fue un matemático notable cuyas áreas de trabajo fueron el análisis matemático y las ecuaciones diferenciales, pero, sin duda, su aportación más conocida actualmente es la fórmula, publicada en 1899 y que ahora que lleva su nombre.

            Su carrera profesional la desarrolló en la Universidad de Praga. Cuando Einstein llegó a la Universidad de Praga en 1911, en pleno proceso de creación de su Teoría General de Relatividad se hicieron grandes amigos, porque compartían además de las matemáticas una enorme afición por la música. Pick le sugirió a Einstein que usara el cálculo tensorial desarrollado por Levi-Civita, para elaborar su teoría.

            En 1938, cuando el ejército alemán ocupó Praga, Pick, con ochenta años, fue recluido en el campo de concentración de Theresienstadt (Terezin, Republica checa), donde murió antes de acabar la Segunda Guerra Mundial.

Fórmula de Pick. Sea una cuadrícula plana sobre la que se dibuja un polígono simple, cuyos vértices están situados sobre los puntos de la cuadrícula. Si en el perímetro hay un número de puntos I, y sobre el perímetro hay B puntos el área del polígono vien dada por: (más…)

Introducción a la recursividad.

Triángulo-SierpinskiLa recursividad es una técnica muy utilizada en programación informática. Se suele utilizar  para resolver problemas cuya solución se puede hallar resolviendo el mismo problema, pero para un caso de tamaño menor.

Cuando en informática se escribe un programa con un algoritmo recursivo, en las propias sentencias del algoritmo hay una llamada a sí mismo, es decir una de las sentencias llama al algoritmo recursivo en el que está insertada, aunque para solucionar un caso más sencillo.

Los métodos recursivos se pueden usar en cualquier situación en la que la solución pueda ser expresada como una sucesión de pasos o transformaciones gobernadas por un conjunto de reglas claramente definidas.

(más…)

Complejidad computacional

complejidad computacionalEl primer paso para resolver un problema informático es encontrar un algoritmo que lo resuelva. Pero una vez resuelto el problema, nos surgen las siguientes dudas: ¿Exisiten algoritmos “mejores” para resolver el problema?

Podríamos decir que algoritmo, es una sucesión finita de operaciones elementales, que sabemos ejecutar cuando actua sobre una serie de datos. Un algoritmo, será mejor que otro en tiempo si, actuando sobre los mismos datos, el tiempo de ejecución es menor, y será mejor que otro en espacio si, actuando sobre los mismos datos, la memoria, principal o secundaria, que utilza es menor. Pero, tanto el tiempo como el espacio utilizado dependen de la máquina en la que ejecutemos el algoritmo, por tanto hay que determinar una forma para estudiar la eficiencia de los algoritmos independiente de la máquina que se utilice. (más…)

Instinto Lógico © 2014 Frontier Theme