feed

Programación

La programación lineal es una herramienta, como hemos visto, fantástica. Sin tener que resolver ningún algoritmo hemos sido capaces de crear un planificador de rutas que, visto por primera vez parece (y es) un problema monumental. Pero es que además, con nuestro planificador de rutas, tal y como lo hemos planteado, podemos resolver directamente (y con soluciones exactas) el problema del viajante (un problema muy importante del que sólo hay soluciones eficientes en forma aproximada). Basta con...

Leer más »

En el post anterior aprendimos a representar relaciones lógicas con los objetos de nuestro sistema y conseguimos especificar (que no resolver) que una solución será válida si todos los días del viaje son elegidos consecutivos. En este post, resolveremos las últimas restricciones, que son las relacionadas con las distancias que tendremos que recorrer en nuestra ruta, ¡pero mucho ojo!, éste problema...

Leer más »

Hasta el post anterior hemos usado ecuaciones bastante sencillas, en las que relacionábamos directamente elementos de nuestro problema. “Casi” se pueden considerar una transcripción directa de los requisitos.


En este post, aprenderemos a introducir variables auxiliares (que quizás no tengan un significado directo con los elementos de nuestro problema), con los que obtendremos valores intermedios...

Leer más »


En el post anterior pusimos de manifiesto que nuestro problema se reducía, básicamente, a establecer una serie de condiciones (restricciones) que deben cumplir las soluciones válidas. Vimos que con una simple relación lineal podíamos definir algunas reglas interesantes sin necesidad de resolver ningún tipo de algoritmo. Hoy continuaremos con otro tipo de restricciones. ¿Te animas?.



Restricción...

Leer más »



En el anterior post habíamos introducido las herramientas que utilizaremos para resolver el problema, así como los datos concretos con los que vamos a trabajar. También habíamos indicado la función que resolverá finalmente el desafío y el tipo de resultado que queremos obtener.

Es pues, momento de escribir nuestras primeras ecuaciones.



NOTA: he decidido introducir los elementos según surjan, de...

Leer más »

En el post anterior analizábamos el tipo de problema al que nos enfrentamos, observando el tipo de restricciones que nos impone y concluyendo que mediante un sistema de programación lineal, podíamos cubrir satisfactoriamente una amplia variedad de requisitos. En realidad, desde el punto de vista de resolver nuestro problema, el post anterior era el más importante.

En éste y siguientes post,...

Leer más »

En el post anterior planteábamos un ambicioso desafío; crear un planificador de viaje que tenga en cuenta diversos tipos de preferencias para sugerir al usuario la mejor alternativa teniendo en cuenta la información disponible.


En este post, vamos a pensar sobre el tipo de problemas que guardan relación con éste, algunas de las alternativas (abstractas) de que disponemos hoy día para resolverlos y...

Leer más »

A muchas personas les gustan los puzzles, los hay de todo tipo y para todos los gustos. Como programador, uno tiene una cantidad ingente de puzzles con los que entretenerse: cuestiones de diseño, de estructura de datos, de arquitectura, redes, protocolos, … pero, si el puzzle nos supera, si empieza a ser un puzzle antipático y desagradable, en esos casos, nos suele gustar poder dejarlo, ignorarlo....

Leer más »


Julia es un lenguaje de programación conocido en el ámbito científico por su vasta librería de funciones matemáticas, a la vez es un lenguaje de alto nivel y de alta perfomance.

El lenguaje fue creado por Stefan Karpinski, estudiante graduado de la Universidad de California, que estaba involucrado en una herramienta simulación de redes que requería el uso de varios lenguajes de programación...

Leer más »

    Un sistema concurrente suele resolver problemas de naturaleza intrínsecamente no determinista, lo que quiere decir que no podemos predecir la secuencia exacta en la que ocurrirán ciertos eventos.
     Por otro lado, existen procesos deterministas que, por su complejidad, nos resultan más cómodos de resolver usando enfoques no deterministas, como la programación guiada por eventos o como cuando...

Leer más »

Síguenos