Siguiendo con la entrada dedicada al método PFA de ordenación de células en un proceso productivo, que podéis visitar aquí: http://cypascal.blogspot.com.es/2015/03/metodo-pfa-para-celulas-de-fabriacion.html
Publicamos ahora una nueva entrada dedicada a un método cuyo objetivo es el mismo, pero con un procedimiento diferente. La programación también se realiza en MatLab. El método se denomina ROC (Rank Order Clustering)
Lo que se persigue es diagonalizar la matriz pero din duplicar las máquinas que participan en el proceso. Por lo que en la distribución que se obtenga finalmente, solo habra una máquina de cada tipo. Será trabajo vuestro el decidir que máquinas duplicar para mejorar la distribución.
Este algoritmo de ordenación de células de manufactura es mucho más sencillo que el PFA. Simplemente hay que tomar las filas y columnas de 1 y 0, como si fueran números binarios, y ordenar filas y columnas, de mayor a menor, de derecha a izquierda y de arriba a abajo.
El algoritmo escrito en MatLab es el siguiente;
M=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43;
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0;
2 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0;
3 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0;
4 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
5 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1;
6 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1;
7 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
8 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1;
9 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0;
10 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0;
11 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
12 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
13 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0;
14 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
15 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0;
16 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1;
];
fil = 16+1;
col = 43+1;
cambios = 1;
while cambios
cambios = 0;
AuxFil=zeros(fil,1);
AuxCol=zeros(col,1);
%Calcula valores Filas
for i = 2:fil
AuxFil(i)=0;
for j = 2:col
AuxFil(i)=AuxFil(i)+M(i,j)*2^(col+1-j);
end
end
%Ordena Filas
max(1)=0;
max(2)=0;
for i = 2:fil
%Se calcula el máximo
for j = i:fil
if AuxFil(j)>max(1)
max(1)=AuxFil(j);
max(2)=j;
end
end
%Se intercambia posición
if max(2) ~= i
cambios = 1;
for j = 1:col
aux=M(i,j);
M(i,j)=M(max(2),j);
M(max(2),j)=aux;
end
end
max(1)=0;
max(2)=0;
end
%Calcula valores Columnas
for j = 2:col
AuxCol(j)=0;
for i = 2:fil
AuxCol(j)=AuxCol(j)+M(i,j)*2^(fil+1-i);
end
end
%Ordena Columnas
max(1)=0;
max(2)=0;
for j = 2:col
%Se calcula el máximo
for i = j:col
if AuxCol(i)>max(1)
max(1)=AuxCol(i);
max(2)=i;
end
end
%Se intercambia posición
if max(2) ~= j
cambios = 1;
for i = 1:fil
aux=M(i,j);
M(i,j)=M(i,max(2));
M(i,max(2))=aux;
end
end
max(1)=0;
max(2)=0;
end
end
Resolución de distintos problemas en el ámbito de la ingenieria mediante el uso de la programación. Los programas abarcan todos los niveles de dificultad, así como la mayoría de las herramintas con las que contamos al programar. Si tienes cualquier duda a cerca de un programa, o quieres proponer alguna nueva entrada, no dudes en contactar escribiendo en cualquiera de las entradas del blog ¡Bienvenido!
lunes, 16 de marzo de 2015
Método ROC de ordenación de células de fabricación
Etiquetas:
#MatLab,
células de fabricación,
manufactura,
manufacturing cell,
PFA,
ROC
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario