Algoritmia
  • Algoritmia
    • Tema 2 - Diseño de Algoritmos Recursivos
      • Introducción
      • Inducción
      • Funciones recursivas
      • Tipos de recursión
      • Ejemplos y ejercicios
      • Especificación formal de algoritmos
      • Inmersión
      • Verificación formal
    • Tema 3 - Divide y Vencerás
      • Introducción
      • Ejemplos
    • Tema 4 -Programación Dinámica
      • Introducción
      • Problemas de optimización
    • Tema 5 - Algoritmos Voraces
      • Introducción
      • Esquema voraz
      • Algoritmos voraces que producen la solución óptima
      • Planificación de tareas
    • Tema 6 - Vuelta Atrás (Backtracking)
      • Introducción
      • Esquemas generales
      • Ejemplos
Powered by GitBook
On this page
  • Ejemplo: Mochila
  1. Algoritmia
  2. Tema 6 - Vuelta Atrás (Backtracking)

Esquemas generales

Last updated 1 year ago

Existen tres esquemas para obtener:

  • TODAS LAS SOLUCIONES FACTIBLES

  • UNA SOLUCIÓN FACTIBLE

  • SOLUCIÓN ÓPTIMA

Ejemplo: Mochila

Procedimiento Mochila_TODAS (P[1..n]:vector de enteros, n, C, k:entero, e/s x[1..n]: vector de enteros)
 # Llamada inicial: Mochila_TODAS (P, n, C, 1, x)
      x[ k ] = - 1
      mientras x[ k ] < 1 hacer
	x[ k ] = x[ k ] + 1
	opción
		k = n and PESO(P, x, k) <= C: imprimir(x)
		k < n and PESO(P, x, k) <= C: Mochila_TODAS (P, n, C, k+1, x)
	fopción
      fmientras
fprocedimiento
Función PESO (P[1..n]:vector de enteros, x[1..n]:vector de enteros, k:entero) retorna (p:entero)
      var   i, peso_acumulado : entero fvar
      i = 0
      peso_acumulado = 0
      mientras (i < k) hacer
	i = i + 1
	peso_acumulado = peso_acumulado + P[i] * x[i]
      fmientras
      retorna peso_acumulado
ffuncion

Restricciones explícitas: (∀i)(xi∈0,1:1≤i≤n)(\forall i)(x_i \in {0,1}:1 \le i \le n)(∀i)(xi​∈0,1:1≤i≤n)

Esquema general recursivo: “Todas soluciones factibles”
Esquema general iterativo: “Todas las soluciones factibles”
Esquema general recursivo: “Una solución factible”
Esquema general iterativo: “Una solución factible”
Esquema general recursivo: “La solución óptima”
Esquema general iterativo: “La solución óptima”