Documente Academic
Documente Profesional
Documente Cultură
LABORATORIO
CURSO : Algorítmica III
No. : Laboratorio No.09
TEMA : Algoritmos de Retroceso - Backtracking.
DURACIÓN ESTIMADA : 01:20 horas.
I. OBJETIVOS
El presente laboratorio tiene por objetivo:
Desarrollar una aplicación para implementar el método de algoritmos de retroceso.
II. RESUMEN
En esta práctica usted definirá un proyecto completo en NetBeans con múltiples clases, en
la cual se implemente el método de algoritmos voraces para la solución del problema de
cambio.
Dado el siguiente conjunto de valores {12, 23, 1, 8, 33, 7, 22}. Cree una aplicación utilizando
algoritmos de retroceso para hallar un subconjunto que sume exactamente 50.
package bactracking;
import javax.swing.JOptionPane;
respinozad@unmsm.edu.pe Pág. 1
Facultad de Ingeniería de Sistemas e Informática
s = new int [valores.length];
v = valores;
tact = 0;
p = suma;
int nivel = 0;
boolean fin = false;
do{
generar (nivel);
if (solucion(nivel, p))
fin = true;
else
if (criterio (nivel, p))
nivel++;
else
while (!masHermanos(nivel))
nivel = retroceder (nivel);
}while (fin ==false);
respinozad@unmsm.edu.pe Pág. 2
Facultad de Ingeniería de Sistemas e Informática
public void mostrarSolucion(){
String mensaje="";
}
}
package bactracking;
respinozad@unmsm.edu.pe Pág. 3
Facultad de Ingeniería de Sistemas e Informática
Backtracking sumaDada = new Backtracking(valores, suma);
sumaDada.hallarSubconjunto();
sumaDada.mostrarSolucion();
}
}
V. EJERCICIOS
Modifica la aplicación para que muestre todas las soluciones que sumen
exactamente un valor dado y un mensaje en caso no encuentre ningún subconjunto.
respinozad@unmsm.edu.pe Pág. 4