EstadoInicial=[1:NBE 0 NBE+1:2*NBE];
GrafoEscalera=[EstadoInicial 0]; MatrizMatlab=[];
while (EstadosPendientes ~= 0)
CEC=GrafoEscalera(:,end);
PosicionEstadoConCero=find(CEC==0);
if isempty(PosicionEstadoConCero)
[NuevaCopiaEC] = GrafoEscalera(PosicionEstadoConCero(1,1),1:end-1);
[MMatriz] = mover(NuevaCEC, 1);
[MatrizMatlab] = NodosVertices(NuevaCEC, MMatriz, MatrizMatlab);
[GrafoEscalera] = NuevoGrafo(MMatriz, GrafoEscalera);
[MMatriz] = mover(NuevaCEC, 2);
[MatrizMatlab] = NodosVertices(NuevaCEC, MMatriz, MatrizMatlab);
[GrafoEscalera] = NuevoGrafo(MMatriz, GrafoEscalera);
[SMatriz] = saltar(NuevaCEC, 1, NBE);
[MatrizMatlab] = NodosVertices(NuevaCEC, SMatriz, MatrizMatlab);
[GrafoEscalera] = NuevoGrafo(SMatriz, GrafoEscalera);
[SMatriz] = saltar(NuevaCEC, 2, NBE);
[MatrizMatlab] = NodosVertices(NuevaCEC, SMatriz, MatrizMatlab);
[GrafoEscalera] = NuevoGrafo(SMatriz, GrafoEscalera);
GrafoEscalera(PosicionEstadoConCero(1,1),end)=1;
[s,t] = IDNodos(GrafoEscalera, MatrizMatlab);
h = plot(G,'Layout','force','WeightEffect','direct');
function [MMatriz] = mover(MatrizB, lado)
if lado==1 && idx < B && idx > 1
elseif lado==2 && idx < B
function [SMatriz] = saltar(MatrizB, lado, NB)
MA=(1:NB);MB=(NB+1:NB*2);
BloqueDeSalto=MatrizB(idx-1);
if (ismember(Bloque,MA) && ismember(BloqueDeSalto,MB)) || (ismember(Bloque,MB) && ismember(BloqueDeSalto,MA))
elseif lado==2 && idx < B-2
BloqueDeSalto=MatrizB(idx+1);
if (ismember(Bloque,MA) && ismember(BloqueDeSalto,MB)) || (ismember(Bloque,MB) && ismember(BloqueDeSalto,MA))
function [MatrizMatlab] = NodosVertices(Matriz1, Matriz2, MatrizMatlab)
[A,~]=size(MatrizMatlab);Comparar=1;
if isequal(Matriz1, Matriz2)
Matriz3 = [Matriz1 Matriz2];
Matriz4 = [Matriz2 Matriz1];
if isequal(Matriz3, MatrizMatlab(j,:)) || isequal(Matriz4, MatrizMatlab(j,:))
MatrizMatlab=MatrizMatlab;
MatrizMatlab = cat(1,MatrizMatlab,Matriz3);
function [GrafoEscalera] = NuevoGrafo(Matriz1, Matriz2)
if isequal(Matriz1, Matriz2(j,1:end-1))
GrafoEscalera=cat(1,Matriz2,Matrizi);
function [s,t] = IDNodos(Matriz1, Matriz2)
Nodo = Matriz1(i,1:end-1);
if isequal(Nodo, Matriz2(j,1:C/2))
if isequal(Nodo, Matriz2(j,C/2+1:C))