0% encontró este documento útil (0 votos)
21 vistas4 páginas

Algoritmo Min-Max para Fechas de Vencimiento

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas4 páginas

Algoritmo Min-Max para Fechas de Vencimiento

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE PIURA

FACULTAD DE CIENCIAS
ESCUELA PROFESIONAL DE MATEMÁTICA

TRABAJO ENCARGADO:
Algoritmo min-max

GRUPO:

 Guevara Chunga, Diego Alain


 Juárez Espinoza, Emerson Marliñho
 Majuan López, Sarita Lucía
 Olarte Córdova, Giuliana Milenka

CURSO: ALGORITMOS DE BÚSQUEDA DE SOLUCIONES

TERCER CICLO

PIURA
Ejercicio propuesto: Crear un algoritmo para seleccionar dentro de 200 fechas de
vencimiento de diferentes productos la más próxima a vencerse

1. Primera parte del Algoritmo para crear aleatoriamente las matrices necesarias
function [M,D] = ejemplo(n)
M = randi([1,12],n,n);
m31 = [1,3,5,7,8,10,12];
m30 = [4,6,9,11];
D = zeros(n,n);
for i = 1:n
for j = 1:n
if ismember(M(i,j), m31)
D(i,j) = randi([1,31]);
else
if ismember(M(i,j), m30)
D(i,j) = randi([1,30]);
else
D(i,j) = randi([1,29]);
end
end
end
end
end

2. Algoritmo de selección de datos

% M contiene los numeros de los meses (1 a 12)


% D contiene los dias de vencimiento (1 a 28/29/30/31)

% La funcion ejemplo (archivo aparte) garantiza que las fechas sean


correctas
[M,D] = ejemplo(20);
disp(M)
disp(D)
% Inicializaciòn de vectores de salida
min_coords = zeros(2, 20); % Para almacenar las coordenadas (lote,
producto)
min_dates = zeros(2,20); % Para almacenar las fechas (dìa, mes)

% Iteraciòn sobre cada columna (producto)


for j = 1:20
% Combinar dìa y mes en una fecha ùnica para comparaciòn
fechas = datenum(2025, M(:, j), D(:, j)); % Convertir a nùmero de
fecha MATLAB
[min_fecha, row_idx] = min(fechas); % Encuentra la fecha mìnima y
su fila
min_coords(:, j) = [row_idx; j]; % Guarda la coordenada (lote,
producto)
min_dates(:, j) = [D(row_idx, j); M(row_idx, j)]; % Guarda la
fecha correspondiente (dìa, mes)
end

% Ahora encontramos la fecha mìnima de todas las columnas


[min_fecha_global, col_idx] = min(datenum(2025, min_dates(2, :),
min_dates(1, :)));
row_idx_global = min_coords(1, col_idx);

% Coordenada (lote, producto) correspondiente a la fecha mìnima global


global_min_coord = [row_idx_global; col_idx];

% Fecha mìnima global (dìa, mes)


global_min_date = [min_dates(1, col_idx); min_dates(2, col_idx)];

% Mostrar resultados
disp('Coordenadas (lote, producto) de la fecha mìnima de cada
columna:');
disp(min_coords);

disp('Fechas (dìa, mes) mìnimas de cada columna:');


disp(min_dates);

disp('Coordenada (lote, producto) de la fecha mìnima global:');


disp(global_min_coord);

disp('Fecha mÃnima global (dìa, mes):');


disp(global_min_date);

Ejecusiòn:
Meses:

Dias:

También podría gustarte