\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc} %linux
\usepackage[spanish, activeacute]{babel}
\usepackage{fancyhdr}

\pagestyle{fancy}
%\pdfpagewidth 5.5in
%\pdfpageheight 11in

%\pagestyle{fancy}
%\headheight 35pt

%\rhead{Right top}
%\chead{Middle top}
%\lhead{Left top}
%\rfoot{Right bottom}

%\cfoot{\thepage}
%\lfoot{Left bottom}

%\usepackage[latin1]{inputenc} %windows

%\usepackage[dvips]{epsfig}
%\usepackage{mathrsfs}
%\usepackage{amsmath}
%\usepackage{pst-all}
%\usepackage{amssymb}
%\usepackage{fullpage}
\usepackage{graphicx}
\usepackage{epstopdf}

\begin{document}

\fancyhf{}
\fancyhead[L]{\leftmark} %nombre de capítulo
\fancyhead[R]{RMES} % RMES
\fancyfoot[C]{
    Centro de Desarrollo de Gestión Empresarial.\\
    1 Oriente 1097 - Viña del Mar, Chile.\\
    Fono:(56) (32)688987 - Fax:(56) (32)2684079
    }
\fancyfoot[R]{\thepage} % la pagina

\renewcommand{\footrulewidth}{0.4pt}

\title{\textbf{
Filtro Importación de Datos\\
Software RMES\\
}}
\author{
    Centro de Desarrollo de Gestión Empresarial.\\
    1 Oriente 1097 - Viña del Mar, Chile.\\
    Fono:(56) (32)688987 - Fax:(56) (32)2684079\\
    empresa@mes.cl
    }
\date{Junio, 2010}

\maketitle

\abstract{El presente informe explicará la nueva implementación del Filtro de Tuplas para Importación con un leve enfoque informático y con diagramas explicativos del proceso de filtrado. Su enfoque está orientado a quiénes tengan conocimientos básicos del software RMES, Ingeniería en Mantención y jerga informática asociada al software.}

\newpage
\section{Introducción}
En RMES es necesario filtrar la tuplas que son importadas a los subsistemas debido a que estas no deben estar traslapadas, con la única excepción de equipos que deban ser tratados como plantas, en donde el filtro no debe aplicarse y los traslapes se deben permitir.

El nuevo filtro sigue la misma idea de implementación del proceso de propagación de fallas de RMES, el cual es particularmente eficiente ante traslapes masivos.

\section{Implementación}
Se crearon varias clases que apoyan el proceso de filtrado (ver figura \ref{fig:01}).

\begin{figure}[htp]
\centering
\includegraphics[scale=0.25]{img/diagrama.eps}
\caption{Diagrama de clases}
\label{fig:01}
\end{figure}


El filtro posee varios pasos y chequeos, por lo que a continuación se explicarán los más relevantes. En primer lugar, el filtro se aplica solamente si se la carga de datos se realiza sobre un subsistema o sobre un equipo que no deba ser tratado como planta. Además, para agilizar el caso más probable de carga de tuplas que es un ingreso de tuplas no traslapadas, se realiza un chequeo ''todos con todos'' de las tuplas ingresadas buscando si alguna traslapa con otra. Si esto no ocurre, el filtro retorna las mismas tuplas dado que no es necesario procesarlas.

Ahora bien, si lo anterior no fuese el caso, se procede con la creación de bloques de tuplas intersectadas, objetos informáticos llamados \textit{IITBlock}. Este objeto trabaja como un ''saco'' de tuplas y cada una de ellas esta traslapada con al menos otra tupla. Por definición, un bloque de tuplas al menos contiene una tupla y dos bloques no comparten tuplas traslapadas, es decir, son objetos que pueden ser trabajados de forma completamente independiente. La figura \ref{fig:02} representa un conjunto de tuplas a ser cargadas sobre un subsistema. Como se observa, existen traslapes por lo que el filtro debe ser aplicado.

\begin{figure}[htp]
\centering
\includegraphics[scale=0.25]{img/tuplas.eps}
\caption{Ejemplo de Importación de Tuplas}
\label{fig:02}
\end{figure}

La creación de bloques de tuplas simplemente une aquellas que estén traslapadas. Existe además un valor conocido como \textit{Tolerancia al Traslape} u \textit{overlapTolerance}, variable que define la distancia mínima de separación entre dos tuplas para ser consideradas como no traslapadas, o sea, es un TBF restrictivo.

\begin{figure}[htp]
\centering
\includegraphics[scale=0.3]{img/overlapTolerance.eps}
\caption{Tolerancia al Traslape}
\label{fig:03}
\end{figure}

El caso A de la figura \ref{fig:03} presenta dos tuplas no contiguas pero con una separacion menor a la Tolerancia, por lo que el algoritmo de filtrado las considerará traslapadas. En el caso B, la distancia entre ambas tuplas supera la Tolerancia por lo que no se consideran traslapadas.

Teniendo claro lo anterior, se puede continuar con la creación de bloques. La figura \ref{fig:04} representa los bloques creados.

\begin{figure}[htp]
\centering
\includegraphics[scale=0.25]{img/bloques.eps}
\caption{Bloques}
\label{fig:04}
\end{figure}

Luego, se continua con el procesamiento de los bloques, uno por uno. Cada bloque pasa por 3 procesos:
\begin{enumerate}
    \item \textbf{Corte}: implementado en la clase \textit{IITBlockSplitter}
    \item \textbf{Jerarquizacion}: implementado en la clase \textit{IITBlockHierarcher}
    \item \textbf{Juntado}: implementado en la clase \textit{IITBlockJoiner}
\end{enumerate}

El proceso de \textbf{Corte} guillotina todas las tuplas en base a todas las fechas de inicio y fin presentes en un bloque creando subbloques de fallas en donde todas ellas comparten la misma fecha de inicio y fin. La fecha inicio original y la duración original de cada tupla cortada no se modifica.

El proceso de \textbf{Jeraquizado} implementa los criterios de ''subida'' de tuplas, es decir, dentro del conjunto de tuplas presentes en un subbloque, elegir cual de ellas prevalecerá por sobre las otras. Además, la tupla que sea seleccionada ''absorve'' las órdenes de trabajo del resto de las tuplas, conteniendo todas aquellas que hayan existido en ese intervalo de tiempo. Los criterios a seguir dentro de un subbloque son los siguientes:
\begin{enumerate}
    \item Se elige la tupla que detenga el sistema. En caso de que varias detengan el sistema o ninguna detenga el sistema, se continua con el siguiente criterio.
    \item De las que han sido seleccionadas del criterio anterior, se selecciona aquella que tenga la fecha original más anterior. Si existen varias tuplas que cumplan con la condición, se continua con el siguiente criterio.
    \item De las que han sido seleccionadas del criterio anterior, se elige aquella que tenga la duración original mayor. Si existen varias tuplas que cumplan con la condición, se continua con el siguiente criterio.
    \item De las que han sido seleccionadas del criterio anterior, se ordenan por tipo de tupla y se elige la primera.
\end{enumerate}

La jerarquia de tipo de tuplas es la siguiente:
%\begin{itemize}
%    \item MCM  $\longrightarrow$ 8
%    \item MCE  $\longrightarrow$ 7
%    \item MCI  $\longrightarrow$ 6
%    \item MP   $\longrightarrow$ 5
%    \item DONP $\longrightarrow$ 4
%    \item DO   $\longrightarrow$ 3
%    \item ODNP $\longrightarrow$ 2
%    \item OD   $\longrightarrow$ 1
%\end{itemize}

\begin{center}
\begin{tabular}{|c|c|}
\hline
  Tipo & Jerarquia \\ \hline
  MCM & 8 \\ \hline
  MCE & 7 \\ \hline
  MCI & 6 \\ \hline
  MP & 5 \\ \hline
  DONP & 4 \\ \hline
  MDO & 3 \\ \hline
  ODNP & 2 \\ \hline
  OD & 1 \\ \hline
\end{tabular}
\end{center}

El proceso de \textbf{Juntado} una las tuplas contiguas que sean iguales. Dos tuplas procesadas son iguales si:
\begin{enumerate}
    \item Poseen el mismo tipo.
    \item Tienen el mismo impacto.
    \item Ambas detienen o no el sistema.
    \item Sus modos de falla son iguales.
\end{enumerate}

Además, las ordenes de trabajo de ambas tuplas se unen sin repetición.

La figura \ref{fig:05} muestra gráficamente el proceso completo.

\begin{figure}[htp]
\centering
\includegraphics[scale=0.25]{img/proceso.eps}
\caption{Resumen Proceso de Filtrado}
\label{fig:05}
\end{figure}

\end{document} 
