Saltar a contenido

Introducción a los Algoritmos de Búsqueda y Optimización (ALGABO)


Conceptos fundamentales

Algoritmo

Secuencia finita y no ambigua de pasos que transforma una entrada en una salida.

Propiedades clave:

  • Corrección: el algoritmo debe dar resultados válidos para todas las entradas.

  • Eficiencia: medible en tiempo y espacio.

  • Determinismo (o no determinismo): cada paso está definido, aunque algunos algoritmos son probabilísticos o aleatorizados.

  • Finalidad: todo algoritmo debe terminar en un número finito de pasos.

Búsqueda

Procedimiento para explorar un espacio de posibilidades hasta hallar una solución válida (o la mejor, si se combina con optimización).

Características:

  • Se basa en un espacio de estados (posibles configuraciones).

  • Emplea un mecanismo de exploración (recorridos sistemáticos o guiados).

  • Puede garantizar completitud (si encuentra solución cuando existe) y optimalidad (si asegura la mejor).

Optimización

Dada una familia de soluciones factibles, encontrar la de mejor valor según una función objetivo y restricciones.

Elementos:

  • Función objetivo: métrica a maximizar o minimizar (ej. costo, tiempo, beneficio, distancia).

  • Restricciones: condiciones que limitan el conjunto de soluciones válidas.

Tipos de problemas de optimización:

  • Lineales (ej. programación lineal con simplex).

  • Combinatorios (ej. TSP, mochila).

  • No lineales (ej. optimización cuadrática, funciones multimodales).

Relación búsqueda–optimización

La búsqueda proporciona el mecanismo de exploración del espacio de soluciones.

La optimización aporta el criterio de selección para decidir cuál solución es mejor.

Grafos y espacios de estados

Definición

Un grafo \(G=(V, A)\) con vértices \(V\) (o nodos) y aristas \(A\).

  • Dirigido o no dirigido.
  • Ponderado (costos/pesos) o no ponderado.

Implementaciones

Existen dos formas principales de implementar un grafo:

Matriz de adyacencia:

  • Se representa con una matriz de tamaño \(|V| \times |V|\).

  • Ocupa memoria en orden de \(O(|V|^2)\).

  • Permite consultar rápidamente si existe una arista \((u,v)\) en tiempo \(O(1)\).

  • Iterar sobre los vecinos de un nodo requiere recorrer toda la fila \(O(|V|)\).

  • Es ideal para grafos densos, donde el número de aristas es cercano al máximo posible.

Lista de adyacencia:

  • Cada vértice mantiene una lista con sus vecinos.

  • El espacio requerido es \(O(|V|+|E|)\).

  • Consultar adyacencia o iterar sobre vecinos depende del grado del nodo, \(O(deg(u))\).

  • Es más eficiente para grafos dispersos (pocos arcos en comparación con el número máximo posible).

  • En general, si el número de aristas es cercano a \(|V|^2\) conviene una matriz de adyacencia, mientras que si es mucho menor conviene una lista de adyacencia.

Espacio de estados

  • Estado: configuración del problema.

  • Acción (operador): transforma un estado en otro; puede tener precondiciones, efectos y costo.

  • Transición: con costo .

  • Solución: secuencia de acciones que lleva del estado inicial a un objetivo cumpliendo restricciones.

  • Costo de camino: suma de costos de transiciones.

  • Modelar bien el espacio de estados reduce la complejidad de la búsqueda.