SlideShare une entreprise Scribd logo
1  sur  46
Búsqueda con retroceso ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Búsqueda con retroceso:  Introducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción
[object Object],[object Object],Búsqueda con retroceso:  Introducción 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción 64 8        4 . 426 . 165 . 368
[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción
Búsqueda con retroceso:  Introducción algoritmo  BackTracking( ent  k:entero;  entsal   X: vector [1..n] de  valor) {Pre: X[1..k-1] es completable}   variable  v:valor para todo  v  en  C i   hacer X[k]:=v; si   completable(X,k)  entonces si  Sol(X,k)  entonces   guardar(X,k) fsi ; si  k<n  entonces   BackTracking(k+1,X) fsi ; fsi fpara La llamada inicial es: ... BackTracking(1,X); ...
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción
[object Object],[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Búsqueda con retroceso:  Introducción
El problema de la suma de subconjuntos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la suma de subconjuntos
[object Object],[object Object],[object Object],El problema de la suma de subconjuntos 16 13 12 6 7 8 2 1 x 1 =1 x 2 =2 x 2 =3 x 2 =4 14 15 10 9 3 4 5 x 1 =2 x 1 =3 x 1 =4 11 x 2 =3 x 2 =4 x 2 =4 x 3 =3 x 3 =4 x 3 =4 x 3 =4 x 4 =4
[object Object],[object Object],[object Object],El problema de la suma de subconjuntos 1 x 1 =1 30 31 28 29 24 25 22 23 16 17 14 15 10 11 8 9 26 27 20 21 12 13 6 7 18 19 4 5 2 3 x 1 =0 x 2 =1 x 2 =0 x 2 =1 x 2 =0 x 3 =1 x 3 =0 x 3 =1 x 3 =0 x 3 =1 x 3 =0 x 3 =1 x 3 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la suma de subconjuntos
El problema de la suma de subconjuntos algoritmo  sumasub( ent  s,k,r:entero;  entsal  X: vector[1..n]de nat)  {k: siguiente variable a decidir Los w[j] están en orden creciente s=  w[j]*x[j]; r=  w[j] s+w[k]  M; s+  w[i]  M } X[k]:=1; si  s+w[k]=M  entonces  escribir(X[1..k]) sino   si  s+w[k]+w[k+1]  M  entonces   sumasub(s+w[k],k+1,r-w[k],X) fsi fsi si  (s+r-w[k]     M)  y  (s+w[k+1]    M)  entonces   X[k]:=0; sumasub(s,k+1,r-w[k],X) fsi fin
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la suma de subconjuntos ... sumasub(0,1,  w[i])  ...
El problema de la suma de subconjuntos ,[object Object],[object Object],[object Object],[object Object],15,5,33 12,6,18 13,6,18 0,4,46 0,5,33 13,5,33 12,5,33 12,4,46 0,3,58 10,5,33 10,4,46 10,3,58 0,2,68 20,6,18 5,5,33 5,4,46 17,4,46 5,3,58 15,4,46 27,4,46 15,3,58 5,2,68 0,1,73 A C B x[1]=1 x[2]=1 x[3]=1 x[3]=0 x[4]=0 x[5]=1 x[2]=0 x[3]=1 x[3]=0 x[4]=1 x[4]=0 x[5]=1
Coloreado de grafos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Coloreado de grafos 1 2 3 4 5 5 4 3 1 2
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Coloreado de grafos x[1]=1 x[1]=2 x[1]=3 x[2]=1 x[2]=2 x[2]=3 x[3]=1 x[3] =2 x[3]= 3
Coloreado de grafos algoritmo  m_col( ent  k:entero;  entsal  X:vector[1..n]de nat) {Se usa una variable global g de tipo grafo.} para  v:=1..m  hacer X[k]:=v si  completable(X,k)  entonces si  k=n  entonces  escribir(X) sino  m_col(k+1,X) fsi fsi fpara fin funcion  Completable( entsal  x:sol; ent  k:entero)  variables  b:booleano; j:entero b:=verdad; j:=1; mientras  (j<k)    b  hacer si  g[k,j]  y  (x[k]=x[j])  entonces   b:=falso sino  j:=j+1 fsi fmientras retorna (b)
Ciclos hamiltonianos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Ciclos hamiltonianos 8 1 2 3 4 5 6 7 5 1 2 3 4
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ciclos hamiltonianos
[object Object],[object Object],Ciclos hamiltonianos algoritmo  hamiltoniano( ent  k:entero; entsal  X:vector[1..n] de nat) {Se usa una variable global g de tipo grafo.} para  v:=1..n  hacer X[k]:=v; si  completable(k,X)  entonces si  k=n  entonces escribir(X) sino  hamiltoniano(k+1,X) fsi fsi fpara funcion  completable( ent  k:entero; ent  X:vector[1..n] de nat) b:=g[X[k-1],X[k]]; para  i:=1..k-1  mientras  b  hacer si  X[i]=X[k]  entonces  b:=falso  fsi fpara si  k=n      g[X[n],X[1]]  entonces b:=falso   fsi retorna  b x[1]:=1; hamiltoniano(2,x);
Atravesar un laberinto ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Atravesar un laberinto N M N N N N N N N N N N N N N N N N N N M M M M M M M M M M M M M M M M M N M N N M < < < < < < <
[object Object],[object Object],Atravesar un laberinto tipos   casilla = (libre,pared,camino,imposible)  laberinto =  vector [1..n,1..n]  de  casilla funcion  HayCamino( ent  x,y:entero; entsal  lab:laberinto) {Pre: Hemos encontrado un camino desde (1,1) hasta (x,y). Post: Devuelve cierto ssi se puede extender hasta (n,n)} ... HayCamino(1,1,lab) ...
Atravesar un laberinto funcion  HayCamino( ent  x,y:entero; entsal  lab:laberinto) {devuelve cierto ssi existe camino} si  (x<1)  (x>n)  (y<1)  (y>n)    lab[x,y]  libre  entonces   devuelve  falso sino lab[x,y]:=camino; si  (x=n)  (y=n)  entonces   escribir(lab); devuelve  cierto; sino b:= HayCamino(x+1,y,lab)     HayCamino(x,y+1,lab)   HayCamino(x-1,y,lab)   HayCamino(x,y-1,lab); si    b  entonces   lab[x,y]:= imposible; fsi devuelve  b; fsi fsi fin
El problema de la mochila 0-1 ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],El problema de la mochila 0-1 Elegimos ésta última representación. 1 x 1 =0 5 6 8 9 12 13 15 16 20 21 23 24 27 28 30 31 4 7 11 14 19 22 26 29 3 10 18 25 2 17 x 1 =1 x 2 =0 x 2 =1 x 2 =0 x 2 =1 x 3 =0 x 3 =1 x 3 =0 x 3 =1 x 3 =0 x 3 =1 x 3 =0 x 3 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1 x 4 =0 x 4 =1
[object Object],[object Object],[object Object],El problema de la mochila 0-1
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la mochila 0-1
El problema de la mochila 0-1 función  cota(benef,peso:vectReal; cap,ben:real; k:entero)  devuelve  real {cap=capacidad aún libre de la mochila; ben=beneficio actual; k=índice del primer objeto a considerar} principio si  k>n  or  cap=0.0 entonces   devuelve  ben sino si  peso[k]>cap  entonces dev  ben+cap/peso[k]*benef[k] sino   dev  cota(benef,peso,cap-peso[k], ben+benef[k],k+1) fsi fsi fin tipo  vectReal= vector [1..n]  de  real {Pre:   i  1..n:peso[i]>0, benef[i]>0,   i  1..n-1:benef[i]/peso[i]  benef[i+1]/peso[i+1]}
El problema de la mochila 0-1 tipo  solución= vector [1..n]  de  0..1 {variables globales:  benef,peso:vectReal; cap:real} algoritmo  búsqueda( ent  solAct:solución; ent  benAct,pesAct:real; ent  k:entero; e/s  sol:solución; e/s  ben:real) para  v:=1  hasta  0  hacer solAct[k]:=v; benAct:=benAct+v*benef[k]; pesAct:=pesAct+v*peso[k]; si  pesAct  cap     ben<cota(benef,peso, cap-pesAct,benAct,k+1)  entonces si  k=n  entonces   si  benAct>ben  entonces sol:=solAct; ben:=benAct fsi sino  búsqueda(solAct,benAct,pesAct, k+1,sol,ben) fsi fsi fpara fin
[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la mochila 0-1 algoritmo  mochila01( ent  benef,peso:vectReal; ent  cap:real; sal  sol:solución; sal  ben:real) variables  obj:entero; solAct:solución principio ben:=0.0; búsqueda(solAct,0.0,0.0,1,sol,ben) fin
[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la mochila 0-1 89 139 99 149 101 151 109 159 66 106 56 96 33 63 68 108 35 65 12 32 1 11 164.88 155.11 157.44 159.76 154.88 160.22 157.55 157.11 162.44 164.66 163.81 139 149 151 159 161.63 160.18 158 159.79 159.33 157.63 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 162 0 0 1 0 ben=159 sol=(1,1,1,0,1,1,0,0)
[object Object],[object Object],[object Object],[object Object],[object Object],El problema de la mochila 0-1
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Backtracking genérico para problemas de optimización
Backtracking genérico para problemas de optimización algoritmo  BackTracking( ent  k:entero;  entsal   X: vector [1..n] de  valor) {Pre: X[1..k-1] es completable, c’(X,k-1)<MS}   para todo  v  en  C i   hacer X[k]:=v; si  (completable(X,k)   c’(X,k)<MS)  entonces si  Sol(X,k)  entonces   MejorSol:= X; MS:= Coste(X) fsi ; si  k<n  entonces   BackTracking(k+1,X) fsi ; fsi fpara
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Mejoras al esquema de Backtracking
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Mejoras al esquema de Backtracking
N- reinas algoritmo  n-reinas( ent  k:entero; ent  L:dominios;  entsal  X:vector[1..n]de nat) {k: numero de variables asignadas, X: asignación actual L: valores compatibles con la  asignación actual} L2:=L i:=Seleccionar_Variable(X,L); {selección arbitraria} para  v    L[i]  hacer  {orden arbitrario} X[i]:=v; si  anticipación(X,i,v,L2)  entonces si  k=n  entonces  escribir(X) sino  n-reinas(k+1,L2,X) fsi fsi L2:=L;  fpara X[i]:=0; fin
[object Object],[object Object],[object Object],N- reinas funcion  anticipacion( ent  X:sol; ent  i,v:entero;  entsal  L2:dominios)  variables  b:booleano; j:entero b:=cierto; j:=1; mientras  (j<n+1)    b  hacer si  X[j]=0  entonces para  u  L[j]  hacer  si  u=v    |i-j|=|u-v|  entonces borrar(L[j],v) fpara b:=falso sino  j:=j+1 fsi fmientras retorna (b)

Contenu connexe

Tendances

Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaHéctor Estigarribia
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Ejercicios interbloqueo
Ejercicios interbloqueoEjercicios interbloqueo
Ejercicios interbloqueoEdgar Farias
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datosJosé Mendoza
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directatavo_3315_
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Juan Anaya
 
Ejercicio Práctico de Base de Datos
Ejercicio Práctico de Base de DatosEjercicio Práctico de Base de Datos
Ejercicio Práctico de Base de DatosPilar Pardo Hidalgo
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3eliezerbs
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasJuanMiguelCustodioMo
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 

Tendances (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Ejercicios interbloqueo
Ejercicios interbloqueoEjercicios interbloqueo
Ejercicios interbloqueo
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datos
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Ejercicio Práctico de Base de Datos
Ejercicio Práctico de Base de DatosEjercicio Práctico de Base de Datos
Ejercicio Práctico de Base de Datos
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y Desventajas
 
Programacion practica prolog
Programacion practica prologProgramacion practica prolog
Programacion practica prolog
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 

Similaire à Back Tracking

SISTEMA DE ECUACIONES CUADRATICAS
SISTEMA DE ECUACIONES CUADRATICAS SISTEMA DE ECUACIONES CUADRATICAS
SISTEMA DE ECUACIONES CUADRATICAS jacqueline llamuca
 
Algoritmos de vuelta atrás
Algoritmos de vuelta atrásAlgoritmos de vuelta atrás
Algoritmos de vuelta atrásBeat Winehouse
 
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...J. Rogelio Yoyontzin Perez Buendia
 
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfPRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfpumadesalvador
 
Presentación de Álgebra lineal Ingenia UNI
Presentación de Álgebra lineal Ingenia UNIPresentación de Álgebra lineal Ingenia UNI
Presentación de Álgebra lineal Ingenia UNIKevinMartnez508420
 
Practica tres Física
Practica tres Física Practica tres Física
Practica tres Física Leyo Herdoiza
 
Sistema de Ecuaciones diferenciales
Sistema de Ecuaciones diferencialesSistema de Ecuaciones diferenciales
Sistema de Ecuaciones diferencialesKike Prieto
 
Soluciones por series
Soluciones por seriesSoluciones por series
Soluciones por seriesKike Prieto
 
Metodos de eliminacion gaussiana
Metodos de eliminacion gaussianaMetodos de eliminacion gaussiana
Metodos de eliminacion gaussianawilfredguedez
 
Solución de ecuaciones de primer orden por series.pptx
Solución de ecuaciones de primer orden por series.pptxSolución de ecuaciones de primer orden por series.pptx
Solución de ecuaciones de primer orden por series.pptxsopitamani1
 
Estructuras algebraicas, vectores y espacios vectoriales(4)
Estructuras algebraicas, vectores y espacios vectoriales(4)Estructuras algebraicas, vectores y espacios vectoriales(4)
Estructuras algebraicas, vectores y espacios vectoriales(4)Jorge Garcia
 

Similaire à Back Tracking (20)

Sistema de ecuaciones lineales
Sistema de ecuaciones linealesSistema de ecuaciones lineales
Sistema de ecuaciones lineales
 
SISTEMA DE ECUACIONES CUADRATICAS
SISTEMA DE ECUACIONES CUADRATICAS SISTEMA DE ECUACIONES CUADRATICAS
SISTEMA DE ECUACIONES CUADRATICAS
 
Algoritmos de vuelta atrás
Algoritmos de vuelta atrásAlgoritmos de vuelta atrás
Algoritmos de vuelta atrás
 
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
 
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfPRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
 
Vuelta Atras
Vuelta AtrasVuelta Atras
Vuelta Atras
 
Teorema de fermat
Teorema de fermatTeorema de fermat
Teorema de fermat
 
Funcion cuadratic a
Funcion cuadratic aFuncion cuadratic a
Funcion cuadratic a
 
Ecuaciones Diferenciales Ordinarias
Ecuaciones Diferenciales OrdinariasEcuaciones Diferenciales Ordinarias
Ecuaciones Diferenciales Ordinarias
 
Presentación de Álgebra lineal Ingenia UNI
Presentación de Álgebra lineal Ingenia UNIPresentación de Álgebra lineal Ingenia UNI
Presentación de Álgebra lineal Ingenia UNI
 
Mr1i 753-2007-2
Mr1i 753-2007-2Mr1i 753-2007-2
Mr1i 753-2007-2
 
Practica tres Física
Practica tres Física Practica tres Física
Practica tres Física
 
Metodos deber
Metodos deberMetodos deber
Metodos deber
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Sistema de Ecuaciones diferenciales
Sistema de Ecuaciones diferencialesSistema de Ecuaciones diferenciales
Sistema de Ecuaciones diferenciales
 
Soluciones por series
Soluciones por seriesSoluciones por series
Soluciones por series
 
Teorema de kantorovich
Teorema de kantorovichTeorema de kantorovich
Teorema de kantorovich
 
Metodos de eliminacion gaussiana
Metodos de eliminacion gaussianaMetodos de eliminacion gaussiana
Metodos de eliminacion gaussiana
 
Solución de ecuaciones de primer orden por series.pptx
Solución de ecuaciones de primer orden por series.pptxSolución de ecuaciones de primer orden por series.pptx
Solución de ecuaciones de primer orden por series.pptx
 
Estructuras algebraicas, vectores y espacios vectoriales(4)
Estructuras algebraicas, vectores y espacios vectoriales(4)Estructuras algebraicas, vectores y espacios vectoriales(4)
Estructuras algebraicas, vectores y espacios vectoriales(4)
 

Plus de Salvador Fernández Fernández

Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónSalvador Fernández Fernández
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John DaniSalvador Fernández Fernández
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John DaniSalvador Fernández Fernández
 

Plus de Salvador Fernández Fernández (20)

Servicio web soap en java con net beans
Servicio web soap en java con net beansServicio web soap en java con net beans
Servicio web soap en java con net beans
 
Web services
Web servicesWeb services
Web services
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Práctica nominas
Práctica nominasPráctica nominas
Práctica nominas
 
Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra función
 
Ejemplo usopunteros
Ejemplo usopunterosEjemplo usopunteros
Ejemplo usopunteros
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 
Ejercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectoresEjercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectores
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Introducción a Enterprise Java Beans
Introducción a Enterprise Java BeansIntroducción a Enterprise Java Beans
Introducción a Enterprise Java Beans
 
Colorear fotografias en blanco y negro
Colorear fotografias en blanco y negroColorear fotografias en blanco y negro
Colorear fotografias en blanco y negro
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
 
Wallpaper natural
Wallpaper naturalWallpaper natural
Wallpaper natural
 
SQL
SQLSQL
SQL
 
Cableado Estructurado de Red
Cableado Estructurado de RedCableado Estructurado de Red
Cableado Estructurado de Red
 
Redes De Computadores UOC
Redes De Computadores UOCRedes De Computadores UOC
Redes De Computadores UOC
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 

Back Tracking

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Búsqueda con retroceso: Introducción algoritmo BackTracking( ent k:entero; entsal X: vector [1..n] de valor) {Pre: X[1..k-1] es completable}   variable v:valor para todo v en C i hacer X[k]:=v; si completable(X,k) entonces si Sol(X,k) entonces guardar(X,k) fsi ; si k<n entonces BackTracking(k+1,X) fsi ; fsi fpara La llamada inicial es: ... BackTracking(1,X); ...
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. El problema de la suma de subconjuntos algoritmo sumasub( ent s,k,r:entero; entsal X: vector[1..n]de nat) {k: siguiente variable a decidir Los w[j] están en orden creciente s= w[j]*x[j]; r= w[j] s+w[k]  M; s+ w[i]  M } X[k]:=1; si s+w[k]=M entonces escribir(X[1..k]) sino si s+w[k]+w[k+1]  M entonces sumasub(s+w[k],k+1,r-w[k],X) fsi fsi si (s+r-w[k]  M) y (s+w[k+1]  M) entonces X[k]:=0; sumasub(s,k+1,r-w[k],X) fsi fin
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Coloreado de grafos algoritmo m_col( ent k:entero; entsal X:vector[1..n]de nat) {Se usa una variable global g de tipo grafo.} para v:=1..m hacer X[k]:=v si completable(X,k) entonces si k=n entonces escribir(X) sino m_col(k+1,X) fsi fsi fpara fin funcion Completable( entsal x:sol; ent k:entero) variables b:booleano; j:entero b:=verdad; j:=1; mientras (j<k)  b hacer si g[k,j] y (x[k]=x[j]) entonces b:=falso sino j:=j+1 fsi fmientras retorna (b)
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Atravesar un laberinto funcion HayCamino( ent x,y:entero; entsal lab:laberinto) {devuelve cierto ssi existe camino} si (x<1)  (x>n)  (y<1)  (y>n)  lab[x,y]  libre entonces devuelve falso sino lab[x,y]:=camino; si (x=n)  (y=n) entonces escribir(lab); devuelve cierto; sino b:= HayCamino(x+1,y,lab)  HayCamino(x,y+1,lab)  HayCamino(x-1,y,lab)  HayCamino(x,y-1,lab); si  b entonces lab[x,y]:= imposible; fsi devuelve b; fsi fsi fin
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. El problema de la mochila 0-1 función cota(benef,peso:vectReal; cap,ben:real; k:entero) devuelve real {cap=capacidad aún libre de la mochila; ben=beneficio actual; k=índice del primer objeto a considerar} principio si k>n or cap=0.0 entonces devuelve ben sino si peso[k]>cap entonces dev ben+cap/peso[k]*benef[k] sino dev cota(benef,peso,cap-peso[k], ben+benef[k],k+1) fsi fsi fin tipo vectReal= vector [1..n] de real {Pre:  i  1..n:peso[i]>0, benef[i]>0,  i  1..n-1:benef[i]/peso[i]  benef[i+1]/peso[i+1]}
  • 37. El problema de la mochila 0-1 tipo solución= vector [1..n] de 0..1 {variables globales: benef,peso:vectReal; cap:real} algoritmo búsqueda( ent solAct:solución; ent benAct,pesAct:real; ent k:entero; e/s sol:solución; e/s ben:real) para v:=1 hasta 0 hacer solAct[k]:=v; benAct:=benAct+v*benef[k]; pesAct:=pesAct+v*peso[k]; si pesAct  cap  ben<cota(benef,peso, cap-pesAct,benAct,k+1) entonces si k=n entonces si benAct>ben entonces sol:=solAct; ben:=benAct fsi sino búsqueda(solAct,benAct,pesAct, k+1,sol,ben) fsi fsi fpara fin
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. Backtracking genérico para problemas de optimización algoritmo BackTracking( ent k:entero; entsal X: vector [1..n] de valor) {Pre: X[1..k-1] es completable, c’(X,k-1)<MS}   para todo v en C i hacer X[k]:=v; si (completable(X,k)  c’(X,k)<MS) entonces si Sol(X,k) entonces MejorSol:= X; MS:= Coste(X) fsi ; si k<n entonces BackTracking(k+1,X) fsi ; fsi fpara
  • 43.
  • 44.
  • 45. N- reinas algoritmo n-reinas( ent k:entero; ent L:dominios; entsal X:vector[1..n]de nat) {k: numero de variables asignadas, X: asignación actual L: valores compatibles con la asignación actual} L2:=L i:=Seleccionar_Variable(X,L); {selección arbitraria} para v  L[i] hacer {orden arbitrario} X[i]:=v; si anticipación(X,i,v,L2) entonces si k=n entonces escribir(X) sino n-reinas(k+1,L2,X) fsi fsi L2:=L; fpara X[i]:=0; fin
  • 46.