Red de conocimiento informático - Computadora portátil - Código fuente de Matlab de un algoritmo

Código fuente de Matlab de un algoritmo

El siguiente párrafo es el proceso de encontrar K conjuntos de elementos frecuentes a partir de 2 conjuntos de elementos frecuentes en el algoritmo a priori. Hay dos problemas en el programa:

1. Parece que k del bucle while siempre es fijo, que es el número de conjuntos de 2 elementos frecuentes. ¿No tiene que cambiar el número de k después de obtener conjuntos frecuentes de 3 elementos? ¿Cómo manifestarlo?

2. Hay dos bucles for grandes en el programa, pero se descubrió que el segundo bucle for finalizará siempre que encuentre un conjunto frecuente de 3 elementos, pero debería haber otros 3 frecuentes. -conjuntos de elementos. ¿No debería ejecutarse el bucle for incondicionalmente hasta el final del parámetro K? En ese momento, el valor de k era 15, pero al final del programa, i = 2, j = 3, y luego J no ejecutó la parte 4 hasta k. Por favor dame algún consejo. Esto es urgente...

mientras(k>0)

le = longitud(candidato{1});

num = 2;

nl = 0;

Para i=1:k-1

Para j=i+1:k

x 1 = Candidato { I }; el valor inicial de %candidate es el conjunto frecuente de 2 elementos, que representa el elemento I del conjunto de elementos frecuentes.

x2 = candidato { j };

c = intersección(x1, x2

m = 0

r =; 1;

nn = 0;

l 1 = 0

si (longitud (c) = = le-1)& (suma( c = = x 1(1:le-1))= = le-1)

Huxuan=union(x1(1:le),x2(le));

% Poda de árboles, si un subconjunto de los elementos K-1 del candidato es poco frecuente, se podará.

sub_set=subset(Huxuan);

% genera todos los subconjuntos K-1 de este candidato.

NN = longitud (sub_set);

% determina si estos elementos K-1 son frecuentes.

Y (r & ampM & ltNN)

M = M+1;

r=in(sub_set{M}, candidato);

Fin

Si M==NN

nl = nl+1;

% k conjuntos de elementos candidatos

cand { nl } =houxuan;

%Registre el número de apariciones de cada conjunto de elementos K candidatos.

le = length(cand { 1 });

Porque i=1:m

s = cand { nl }; >x=X(i,);

si suma(x(s))==le

nn = nn+1;

Fin p>

Fin

Fin

Fin

% Encuentra conjuntos de elementos frecuentes del conjunto candidato

Si nn y gt =th

ll = ll+1;

candmid { nl } = cand { nl }

pfxj(nl). elemento = cand { nl };

pfxj(nl). Time = nn

Disp('Obtener conjuntos de elementos frecuentes:')

Resultado=(cand mid { nl });

disp(resultado);

Fin

Fin

Fin

Fin