SlideShare una empresa de Scribd logo
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)

Más contenido relacionado

La actualidad más candente

Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtrackingWilmer Quintero
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
Israel Calderón de la Cruz
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacionjenny
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
Michael
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
Alejandro Salas Ledezma
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentes
Jefferson Guillen
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
Hugo Arturo Gonzalez Macias
 
Cuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iaCuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en ia
yorlys oropeza
 
Como funciona una maquina de turing
Como funciona una maquina de turingComo funciona una maquina de turing
Como funciona una maquina de turing
Jonathan Bastidas
 
Problemas de Satisfaccion de restricciones (PSR)
Problemas de Satisfaccion de restricciones (PSR)Problemas de Satisfaccion de restricciones (PSR)
Problemas de Satisfaccion de restricciones (PSR)
Héctor Estigarribia
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
Angel Vázquez Patiño
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
José Antonio Sandoval Acosta
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialJuank Grifin
 
Teoria de grafos. introducción
Teoria de grafos. introducciónTeoria de grafos. introducción
Teoria de grafos. introducción
Alejandra Guzman
 

La actualidad más candente (20)

Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtracking
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
 
Recorrido en árboles binarios
Recorrido en árboles binariosRecorrido en árboles binarios
Recorrido en árboles binarios
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentes
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Cuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iaCuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en ia
 
Búsqueda A*
Búsqueda A*Búsqueda A*
Búsqueda A*
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Como funciona una maquina de turing
Como funciona una maquina de turingComo funciona una maquina de turing
Como funciona una maquina de turing
 
Problemas de Satisfaccion de restricciones (PSR)
Problemas de Satisfaccion de restricciones (PSR)Problemas de Satisfaccion de restricciones (PSR)
Problemas de Satisfaccion de restricciones (PSR)
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Teoria de grafos. introducción
Teoria de grafos. introducciónTeoria de grafos. introducción
Teoria de grafos. introducción
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 

Similar a 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ás
Beat 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.pdf
pumadesalvador
 
Vuelta Atras
Vuelta AtrasVuelta Atras
Teorema de fermat
Teorema de fermatTeorema de fermat
Teorema de fermat
Ramiro Bautista A.
 
Funcion cuadratic a
Funcion cuadratic aFuncion cuadratic a
Funcion cuadratic a
Marijane Bogota
 
Ecuaciones Diferenciales Ordinarias
Ecuaciones Diferenciales OrdinariasEcuaciones Diferenciales Ordinarias
Ecuaciones Diferenciales Ordinarias
jorge luis ortega vargas
 
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
KevinMartnez508420
 
Practica tres Física
Practica tres Física Practica tres Física
Practica tres Física
Leyo Herdoiza
 
Metodos deber
Metodos deberMetodos deber
Metodos deber
Karen Carrion Claudio
 
Algoritmos
AlgoritmosAlgoritmos
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
 
Teorema de kantorovich
Teorema de kantorovichTeorema de kantorovich
Teorema de kantorovich
Jorge Salazar Cruz
 
Metodos de eliminacion gaussiana
Metodos de eliminacion gaussianaMetodos de eliminacion gaussiana
Metodos de eliminacion gaussiana
wilfredguedez
 
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
sopitamani1
 
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
 

Similar a 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)
 

Más de Salvador Fernández Fernández

Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
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ón
Salvador Fernández Fernández
 
Ejercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectoresEjercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectores
Salvador Fernández Fernández
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
Salvador Fernández Fernández
 
Colorear fotografias en blanco y negro
Colorear fotografias en blanco y negroColorear fotografias en blanco y negro
Colorear fotografias en blanco y negro
Salvador 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
 
SQL
SQLSQL
Cableado Estructurado de Red
Cableado Estructurado de RedCableado Estructurado de Red
Cableado Estructurado de Red
Salvador Fernández Fernández
 
Redes De Computadores UOC
Redes De Computadores UOCRedes De Computadores UOC
Redes De Computadores UOC
Salvador Fernández Fernández
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
Salvador Fernández Fernández
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
Salvador Fernández Fernández
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
Salvador Fernández Fernández
 

Más 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.