jueves, 22 de septiembre de 2011

Incipiente alarma de "Burbuja Social"

Mucho ha sido lo que se ha dicho y escrito de la Burbuja punto com acaecida a finales del S. XX., con la especulación en las salidas a bolsa de empresas tecnológicas como Terra, Netscape o Eresmas.
Lo cierto es que una de las causas fundamentales de este estallido vino dado fundamentalmente por la sobrevaloración realizada de las compañías en su salida a bolsa. Hecho que hizo perder muchísimos fondos a grandes inversores.
Esta sobrevaloración, en muchos casos 30 veces por encima de sus ingresos, creo un desajuste imposible de soportar por ninguna otra de las actividades económicas desarrolladas entonces.
Otro hecho importante fue la no existencia por parte de estas empresas de un modelo de negocio, otro de los factores que les hizo sucumbir.

Datos como la actual utilización de internet, la incursión en la posesión de móviles, el aumento en la penetración de Smartphones y el desarrollo de las nuevas “tabletas” con respecto a hace 10 años, han cambiado la forma en la consumición de este tipo de productos.

Empresas como Google que han sido puente entre la primera y la “supuesta” segunda burbuja viven casi exclusivamente de sus ingresos.
Este tipo de publicidad, año tras año, va robando un gran trozo del pastel a los medios tradicionales; hecho que esta facilitando la investigación en la ponderación de estrategias de publicidad específicas para estos modelos de negocio.
Apple, Amazon y Microsoft también se subieron al carro de la adaptación a la carrera digital. Aunque algunas sean más rentables que otras.

Al frente del nuevo escaparate financiero están empresas como Facebook o Twitter.
La incipiente alarma de la burbuja de las redes sociales viene determinada fundamentalmente por la escasa posibilidad de valoración real de cada organización, por la mala clarificación de sus modelos de negocio y la facilidad en la clonación de los mismos (simplemente aportando valor añadido a cualquiera de ellos); hecho ya acontecido con MySpace y su desplazamiento por parte de Facebook.
Aunque el actual entorno financiero no facilita el estallido de las burbujas, la mayor prueba de fuego será la salida a bolsa de estas empresas; hecho que muchas de ellas están retrasando.
Parece claro que la paciencia esta jugando a su favor, habiendo rechazado, incluso, ofertas millonarias por su compra.

Una de las diferencias básicas con respecto a la situación de hace una década es que los métodos de valoración empresarial actuales están basados en dos principios:

·      Los métodos de valoración absolutos: una empresa vale lo que es capaz de generar para sus accionistas. La gran mayoría de los analistas se inclina por el flujo de caja como la medida que mejor define el valor de una empresa, incluyendo la tasa de descuento aplicable en el tiempo.
·      Los métodos de valoración relativos: una empresa vale lo que alguien está dispuesto a pagar por ella. Se determinará el valor de una empresa en función de la valoración de otras según dos colectivos:
§  Empresas que cotizan en mercados de valores
§  Y empresas que se han vendido total o parcialmente.

En el mercado tecnológico español existe cierta susceptibilidad debido a los fiascos de hace diez años. Actualmente la anticipación de un buen proyecto de internet esta basado en dos cosas: el accionariado y el currículo de los fundadores.
En los últimos dos años ha habido un creciente interés inversor en negocios basados en internet, pero es importantísimo mostrar resultados tangibles y no solo especulativos.
Todos estos hechos creo que dejan bastante claro que la situación en lo único que se le parece a la de hace diez años es, únicamente en el marco. El entorno financiero actual no facilita el estallido de las burbujas. Siendo quizá la “Burbuja Social” no la mas acechante.

miércoles, 1 de diciembre de 2010

SELECCIÓN DIRECTA

El siguiente algoritmo define el metodo de selección directa. Su programación es fácil y comprensible, aunque no es deseable para tamaños grandes de problema.
La idea básica del algoritmo consiste en buscar el menor/mayor elemento del vector y colocarlo en la primera posición del vector. Después se busca el segundo elemento menor/mayor y se coloca en la segunda posición, y así sucesivamente hasta que todos los elementos están ordenados.


void seleccion_directa(int n)

{

  int min,k;

  int cambio;

  for(int i = 0; i < n; i++)

   {

     min = v[i];

     k = 0;

     cambio = 0;

     for(int j = i+1; j < n; j++){

          if (v[j] < min){

              min = v[j];

              k = j;

             cambio = 1;

           }

     }

     if (cambio){

              v[k] = v[i];

              v[i] = min;

     }

  }

}

 


  • Si deseamos ordenar de mayor a menor tendríamos que modificar la siguiente línea:



              if (v[j] > min)


sábado, 20 de noviembre de 2010

HEAPSORT

Otro de los algoritmos rápidos es el de Heapsort. Es un algoritmo de ordenación no recursivo apoyado en otra estructura de datos como son los montículos (Heap).
Consiste en almacenar todos los elementos del conjunto a ordenar en un heap, y luego extraer el nodo raiz del montículo en sucesivas iteraciones obteniendo el conjunto ordenado.
La clave fundamental de este algoritmo esta en una propiedad de los heap, por lo cual, el nodo raiz contiene siempre el menor elemento (o mayor, según el ordenamiento que queramos realizar) de todos los almacenados en el.
Aquí tenemos una animación gráfica del funcionamiento de este algoritmo:

miércoles, 17 de noviembre de 2010

QUICKSORT CENTRAL

El siguiente algoritmo define el método de ordenación Quicksort utilizando como elemento pivote el elemento que esta en el medio de la lista de elementos:


función QUICKSORT (variables v: vector; pi, pf: enteros)
   variables 
      i, j: índice; 
      x: elemento 
   fvar
   comienzo
   si pi < pf entonces
      x = a[(pi + pf)/2];
      i = pi; 
      j = pf;
      repetir
         mientras a[i] < x hacer 
            i=i+1 fmientras
         mientras a[j] > x hacer 
            j=j-1 fmientras
         si i <= j entonces
            SWAP (a[i], a[j]); 
            i = i + 1; 
            j = j - 1;
         fsi
      mientras i <= j;
      QUICKSORT (a, pi, j);
      QUICKSORT (a, i, pf);
   fsi
fin



  • Los elementos pi y pf serán los índices inferior y posterior respectivamente del vector.
  • Como podemos observar utilizamos como pivote el elemento que esta en la mitad del vector:  

             x = a[(pi + pf)/2];

  • Y una vez colocado en su posición hacemos una llamada recursiva con los dos subvectores, el de la parte derecha (desde i hasta pf),  y el de la parte izquierda (desde pi hasta j).
  • Este algoritmo define ordenación ascendente. Si lo que quisiésemos fuese lo contrario solo habría que modificar estas líneas:


             mientras a[i] > x hacer 
                i=i+1 fmientras
            mientras a[j] < x hacer 
                j=j-1 fmientras

QUICKSORT

Quizá uno de los mejores y mas rápidos algoritmos sea el Quicksort.
El algoritmo implementado bajo el esquema de Divide y Vencerás, que como su propio nombre indica resuelve un problema difícil, dividiéndolo en partes mas simples tantas veces como sea necesario; esta basado en los siguientes fundamentos:

  • Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote. Éste según la modalidad que hallamos elegido podrá ser el primero, último, central,...
  • Ubicar los demás elementos del conjunto a ordenar como queramos hacerlo. O los mas pequeños a su izquierda y los mayores a la derecha (orden creciente), o los mas pequeños a su derecha y los mas grandes a su izquierda (orden creciente).
  • Dividimos así la lista en dos sublistas, porque el elemento pivote ya queda ordenado. La sublista izquierda y la derecha.
  • Así repetimos el proceso de forma recursiva para cada sublista.

sábado, 13 de noviembre de 2010

CLASIFICACIÓN GENERAL

Debido a la gran diversidad de algoritmos de ordenación y "sucedáneos", podemos hacer una clasificación general:
- Directos: algoritmos cortos y fáciles de entender, son especialmente adecuados para problemas relativamente pequeños. Clasificados a su vez en tres categorías de acuerdo al método base empleado: ordenamiento por selección, por intercambio y por inserción.
- Indirectos: métodos mas complicados de entender, producidos por un refinamiento de los anteriores; sobre todo para problemas de gran tamaño, donde los anteriores producen un "gran coste temporal". En esta clasificación podemos nombrar algoritmos como Quicksort, Mergesort o algoritmos basados en otras estructuras (árboles) como el Heapsort.

miércoles, 10 de noviembre de 2010

ALGORITMOS DE ORDENACIÓN

A menudo se nos presentan un sinfín de problemas donde aparecen estructuras que almacenan datos de todo tipo. Quizá una de las estructuras mas utilizadas son los vectores o arrays.
Un vector es un conjunto finito de elementos del mismo tipo. Uno de los aspectos importantes es la necesidad de la ordenación de cualquier tipo de estos elementos. Esto permitirá acceder de forma directa a cualquiera de los elementos que forman ese conjunto de datos, para ello simplemente basta con indicar la posición que ocupa el elemento en el vector.
Es ahí donde aparece uno de los grandes problemas de la Programación: la ordenación de estos elementos.
Existe una gran cantidad de formas de realizarlo en base a una serie de factores, donde fundamentalmente influye la complejidad temporal de estos algoritmos.
¡Si!, el "tiempo" que tarda en realizarse. Cuando hablamos de tamaños pequeños de problema ese factor no es verdaderamente importante. Sin embargo aumenta gradualmente a medida que esos tamaños se van haciendo grandes.
El motivo de este blog, no es nada mas que eso. Intentar realizar una clasificación lo mas acertada posible, y un análisis de cada uno de los algoritmos.