Lógica Difusa
Forfatter
Pedro PATLAN
Sidst opdateret
10 år siden
Licens
LaTeX Project Public License 1.3c
Resumé
Beamer - DICIS-UG
\documentclass{beamer}
\usepackage{listings}
\usepackage{ragged2e}
%
% Choose how your presentation looks.
%
% For more themes, color themes and font themes, see:
% http://deic.uab.es/~iblanes/beamer_gallery/index_by_theme.html
%
\mode<presentation>
{
\usetheme{Darmstadt} % or try Darmstadt, Madrid, Warsaw, ...
\definecolor{verde2}{rgb}{.537,.875,.223}
\usecolortheme[named=verde2]{structure} % or try albatross, beaver, crane, ...
\usefonttheme{serif} % or try serif, structurebold, ...
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{caption}[numbered]
}
\usepackage[spanish]{babel}
\usepackage[utf8x]{inputenc}
\title[Lógica Difusa]{IA: Lógica Difusa}
\author{\small{M. en I. Pedro Alfonso PATLAN-ROSALES}}
\institute{\small{Universidad de Guanajuato - DICIS}}
\date{4/07/2014}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
% Uncomment these lines for an automatically generated outline.
%\begin{frame}{Outline}
% \tableofcontents
%\end{frame}
\section{Introducción}
\begin{frame}{Introducción (1)}
\begin{alertblock}{Motivación}\justifying
``\emph{Una de las principales ventajas de la lógica difusa sobre la lógica convencional, es su habilidad para \textbf{lidiar} con la \textbf{ambig\"uedad, la imprecisión y la vaguedad}.}''\\[0.5 cm]
Usando lógica difusa se observa como esta herramienta puede ser usada para controlar cualquier tipo de variable física.
\end{alertblock}
\end{frame}
\begin{frame}{Introducción (2)}
\small
\begin{itemize}\justifying
\pause
\item La lógica difusa, es una técnica de computación flexible basada en observaciones relativas. Algunas expresiones como \textbf{``es mucho dinero'', ``es poco discreto''}, etc., no pueden ser comprendidas por la lógica convencional, pero están definidas de manera deterministica en la lógica difusa.
\pause
\item Ésta se basa en funciones de membresía que contienen etiquetas como: \textbf{``poco'', ``mucho'', ``ninguno''}, etc. En base a los valores arrojados por la funciones de membresía, se calculan las salidas del sistema difuso.
\pause
\item Debido a que en el mundo real, los número significan poco, pero las etiquetas significan mucho, la lógica difusa se adapta perfectamente a problemas de la vida real. La vaguedad y la ambig\"uedad no afectan a los sistemas de lógica difusa debido a la naturaleza de sus cálculos.
\pause
\item \textbf{Mamdani}, propuso una colección de reglas que son utilizadas ampliamente en sistemas de control difuso. Dichas reglas son AND (mínimo), OR (máximo) y NOT (1-x).
\end{itemize}
% Commands to include a figure:
%\begin{figure}
%\includegraphics[width=\textwidth]{your-figure's-file-name}
%\caption{\label{fig:your-figure}Caption goes here.}
%\end{figure}
\end{frame}
\section {Variables Ling\"uisticas}
\begin{frame}{Variables Ling\"uisticas}
\small
\begin{itemize}\justifying
\pause
\item Las características de algún objeto de estudio, pueden ser descritas en base a percepciones imprecisas como lo son la belleza, la inteligencia, la altura, entre otras.
\pause
\item Una variable ling\"uistica contiene etiquetas de dichas características como: ``fea'', ``feo'', ``atractiva''y ``atractivo''.
\pause
\item La variable ling\"uistica tiene un rango de valores definido por un experto en la aplicación del sistema difuso particular. Dicho rango está definido por curvas llamadas ``Funciones de Membresía''.
\end{itemize}
% Commands to include a figure:
%\begin{figure}
%\includegraphics[width=\textwidth]{your-figure's-file-name}
%\caption{\label{fig:your-figure}Caption goes here.}
%\end{figure}
\end{frame}
\section {Funciones de Membresía}
\begin{frame}{Funciones de Membresía}
\small
\begin{itemize}\justifying
\pause
\item Las funciones de membresía~\cite{FuzzyC03}, son curvas que definen el comportamiento de una etiqueta.
\pause
\item Las funciones sigmoidal positiva, sigmoidal negativa y curvas Gaussianas, son las curvas ideales para definir estas eqituquetas.
\pause
\item Sin embargo, funciones más sencillas han sido utilizadas para los mismos propósitos.
\pause
\item Los resultados del sistema utilizando funciones triangulares, trapezoidales positivas, trapezoidales negativas y trapezoidales comunes, han demostrado ser bastante buenos.
\end{itemize}
% Commands to include a figure:
\begin{figure}[!htpb]
\includegraphics[width=\textwidth]{ld1.eps}
\caption{\label{fig:ld1}Funciones básicas.}
\end{figure}
\end{frame}
\begin{frame}{Funciones de Membresía}\justifying
\small
Las funciones trapezoidales positiva y negativa, se definen con sus límites y puntos de quiebre, 3 puntos básicos son tomados: el límite inferior (Li), el punto de quiebre (Pq1) y el límite superior (Ls). La función triangular será definida por: Li, el centro de la triangular (Pq1) y Ls. Mientras que la trapezoidal está definida por: Li, punto de quiebre 1(Pq1), punto de quiebre 2 (Pq2) y Ls. Una representación gráfica de dichas funciones es mostrada en la Figura \ref{fig:ld2}, donde aparecen por orden de izquierda a derecha: una trapezoidal negativa, dos trapezoidales, una triangular, dos trapezoidales y por último una trapezoidal positiva.
% Commands to include a figure:
\begin{figure}[!htpb]
\includegraphics[width=\textwidth]{ld2.eps}
\caption{\label{fig:ld2}Puntos esenciales.}
\end{figure}
\end{frame}
\begin{frame}{Funciones de Membresía}\justifying
\small
El valor de una variable ling\"uistica, es calculado por diversos métodos entre los cuales, el método del centroide es uno de los más usados. Este método consiste en calcular el centroide de todas las funciones de membresía así como sus áreas, despúes se obtiene un centroide general el cuál es el valor de salida de dicha variable ling\"uistica.
% Commands to include a figure:
\begin{figure}[!htpb]
\includegraphics[width=0.4\textwidth]{ld3.eps}
\caption{\label{fig:ld3}Centroide.}
\end{figure}
\end{frame}
\begin{frame}{Funciones de Membresía - Método del centroide}\justifying
\small
% Commands to include a figure:
\begin{figure}[!htpb]
\includegraphics[width=0.6\textwidth]{ld5.eps}
\includegraphics[width=0.4\textwidth]{ld4.eps}
\caption{\label{fig:ld4}Centroide $z^\ast$.}
\end{figure}
\end{frame}
\section {BIOFAM}
\begin{frame}{BIOFAM \small{(Binary Input-Output Fuzzy Associative Memory)}}\justifying
\small
\begin{itemize}\justifying
\item También conocido como el algoritmo MIN-MAX, la BIOFAM es una serie de reglas que describen el comportamiento de la salida de un sistema difuso, en base a los valores de las variables ling\"uisticas.
\item Se construye una tabla para establecer una relación entre todos los posibles valores de cada variable ling\"uistica, entonces se aplica una regla donde se tomará el mínimo de los valores relacionados. Para ejemplificar mejor lo mencionado, se muestra el Cuadro \ref{TablabiofamPosicion}:
\end{itemize}
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Err/Acel &Pos & Cero & Neg\\
\hline
Pos & Neg & Neg & Cero \\
\hline
Cero & Neg & Cero & Pos \\
\hline
Neg & Cero & Pos & Pos \\
\hline
\end{tabular}
\caption{BIOFAM de error contra la aceleración, la salida es la velocidad.}
\label{TablabiofamPosicion}
\end{center}
\label{tb:boifam}
\end{table}
\end{frame}
\begin{frame}{BIOFAM \small{(Binary Input-Output Fuzzy Associative Memory)}}\justifying
\small
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Err/Acel &Pos & Cero & Neg\\
\hline
Pos & Neg & Neg & Cero \\
\hline
Cero & Neg & Cero & Pos \\
\hline
Neg & Cero & Pos & Pos \\
\hline
\end{tabular}
\end{center}
\end{table}
\begin{itemize}\justifying
\item Esta tabla rige el comportamiento del actuador (que en este caso es la velocidad de un motor), de esta manera el motor sabe qué hacer en cualquier condición de los parametros Err y Acel.
\item En muchos casos, dos o más condiciones son activadas en diferente medida. Por ejemplo, velocidad Pos en 0.1 y velocidad Neg en 0.5, en este caso de ambig\"uedad la BIOFAM no tiene conflictos ya que tomará ambos valores y calculará la salida en base al centroide de ambas etiquetas, unificando así las salidas en una salida única de velocidad.
\end{itemize}
\end{frame}
\section{Ejemplo 1}
\subsection{Control de Temperatura}
\begin{frame}{Control de Temperatura}\justifying
\small
\begin{alertblock}{Objetivo}\justifying
El objetivo es implementar un control de temperatura utilizando las técnicas de lógica difusa. Para esto, será necesario desarrollar las herramientas necesarias para la toma de decisiones en los procesos de control y evaluar el desempeño del sistema computacional.
\end{alertblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\small
\begin{exampleblock}{Planteamiento}\justifying
\begin{itemize}\justifying
\item El entorno en el que se pretende controlar la temperatura es un cuarto, los actuadores son un sistema de enfriamiento con aire acondicionado y un sistema de calefacción.
\pause
\item Ambos son controlados por un sistema regulador de potencia con 8 niveles. El sensor que nos indicará la temperatura es un circuito integrado lm35.
\pause
\item El sistema de control opera en un rango que va desde 0 hasta una temperatura máxima (Tmax) de 100$^o$C.
\pause
\item El tiempo de muestreo se fijó en 1 segundo debido a que la temperatura no varía demasiado rápido.
\end{itemize}
\end{exampleblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\small
\begin{exampleblock}{Tras un análisis, se seleccionaron las siguientes variables ling\"uisticas:}
\begin{itemize}\justifying
\item El error de la temperatura(Err).
\item El cambio de la Temperatura con el tiempo (dT).
\item La potencia del actuador (Acel).
\end{itemize}
\end{exampleblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\scriptsize
\begin{exampleblock}{Error de temperatura:}
\begin{itemize}\justifying
\item El error de la temperatura está definido como la temperatura obtenida del sensor(Tr) menos la temperatura deseada(Td) $Err = Tr - Td$.
\item El error tiene tres etiquetas que son: positivo (POS), negativo (NEG) y cero (Cero).
\item Éstas, están distribuidas en un rango de -Td a Tmax-Td.
\item La medida del error viene dada por las funciones de membresía mostradas en la Figura \ref{MErr} y cuyos parámetros se encuentran en el Cuadro \ref{TablaMerr}.
\end{itemize}
\end{exampleblock}
\begin{figure}[!htbp]
\begin{center}
\includegraphics[width=0.4\textwidth]{ld6.eps}
\caption{Funciones de membresía para el error}
\label{MErr}
\end{center}
\end{figure}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\small
\begin{exampleblock}{Error de temperatura:}
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
Funcion & Tipo & Li & Pq1 & Pq2 & Ls\\
\hline
NEG & Trpezoidal Negativa& -50.0& -10.0& 0.0& -0.2 \\
\hline
CERO & Triangular & -0.3& 0.0& 0.0& 0.3 \\
\hline
POS & Trapezoidal Negativa & 0.2& 10.0& 0.0& 50.0 \\
\hline
\end{tabular}
\caption{Parámetros de las funciones de membresía para el error.}
\label{TablaMerr}
\end{center}
\end{table}%
\end{exampleblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\scriptsize
\begin{exampleblock}{Cambio de temperatura en el tiempo:}
\begin{itemize}\justifying
\item La razón de cambio de temperatura contra el tiempo, nos proporciona el dato de inercia, el cual nos dictará qué es lo que se tiene que hacer cuando se tiene un error específico.
\item El cambio de la temperatura está definido como la temperatura leída en un instante anterior t-1, menos la temperatura leída en el instante actual t y dividido entre el tiempo de muestreo que es 1 segundo, ó, $dT = (T(t+1) - T(t))/t$.
\item Éste tiene también tres etiquetas que son: positivo (POS), negativo (NEG) y cero (Cero), distribuidas en un rango de -2 a 2$^o$C.
\end{itemize}
\end{exampleblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\scriptsize
\begin{exampleblock}{Cambio de temperatura en el tiempo:}\justifying
La medida del cambio de temperatura viene dada por las funciones de membresía mostradas en la Figura y cuyos parámetros se encuentran en el Cuadro.
\begin{figure}[htbp]
\begin{center}
\includegraphics[width=0.4\textwidth]{ld7.eps}
\label{MdT}
\end{center}
\end{figure}
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
Funcion & Tipo & Li & Pq1 & Pq2 & Ls\\
\hline
NEG & Trpezoidal Negativa& -2.0& -1.0& 0.0& -0.3 \\
\hline
CERO & Triangular & -0.5& 0.0& 0.0& 0.5 \\
\hline
POS & Trapezoidal Negativa & 0.3& 1.0& 0.0& 2.0 \\
\hline
\end{tabular}
\label{TablaMdT}
\end{center}
\end{table}%
\end{exampleblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\scriptsize
\begin{exampleblock}{Potencia del actuador:}\justifying
La potencia del actuador es en sus valores positivos, le intensidad de la calefacción, y para sus valores negativos, la intensidad del enfriador. Ésta es la variable ling\"uistica de salida, consta de 7 funciones de membresía distribuidas en un rango de -100\% a 100\% y se muentra en la Figura \ref{Mpot}.
\end{exampleblock}
\begin{figure}[htbp]
\begin{center}
\includegraphics[width=0.5\textwidth]{ld8.eps}
\label{Mpot}
\end{center}
\end{figure}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\scriptsize
\begin{exampleblock}{Potencia del actuador:}\justifying
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
Funcion & Tipo & Li & Pq1 & Pq2 & Ls\\
\hline
Enfriar Mucho & Trpezoidal Negativa& --100.0& -50.0& 0.0& -30.0 \\
\hline
Medio Enfriar & Trapezoidal & -50.0& -30.0& -15.0& -10.0 \\
\hline
Enfiriar Poco & Trapezoidal&-20.0& -10.0& -7.0& -5.0 \\
\hline
Cero& Triangular &-7.0& 0.0& 0.0& 7.0 \\
\hline
Calentar Poco & Trapezoida & 5.0& 7.0& 10.0& 20.0 \\
\hline
Medio Calentar& Trapezoidal &10.0& 20.0& 30.0& 50.0 \\
\hline
Calentar Mucho & Trapezoidal Positiva & 30.0& 50.0& 0.0& 100.0 \\
\hline
\end{tabular}
\label{Tablapot}
\end{center}
\end{table}
\end{exampleblock}
\end{frame}
\begin{frame}{Control de Temperatura}\justifying
\scriptsize
\begin{exampleblock}{Construcción de la BIOFAM:}\justifying
Dadas las características de potencia, error y velocidad, se construyo la tabla con la que se toman las decisiones para realizar el control. Ésta tiene como parámetros de entrada el error y el cambio de temperatura, mientras que a la salida nos arroja un valor de potencia que se ajusta a cualquiera de sus siete etiquetas. En el Cuadro \ref{tablaBIOFAM} se muestran los resultados del análisis del problema y de la experiencia para la toma de decisiones en éste control específico.
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Error/dT &Neg & Cero &Pos\\
\hline
Neg & Calentar Mucho& Cero & Enfriar Poco \\
\hline
Cero & Medio Calentar& Cero&Medio Enfriar \\
\hline
Pos & Calentar Poco & Cero &Enfiriar Mucho \\
\hline
\end{tabular}
\caption{\scriptsize BIOFAM de error contra la aceleración, la salida es la velocidad.}
\label{tablaBIOFAM}
\end{center}
\end{table}%
\end{exampleblock}
\end{frame}
\begin{frame}[allowframebreaks,fragile]{Control de Temperatura - Implementación}\justifying
\scriptsize
\begin{exampleblock}{Programación en C:}\justifying
Estructura para el Conjunto Difuso.\\
Para almacenar el conjunto difuso se creó la estructura FuzzyL, que contiene: El número de variables ling\"uisticas, el valor deseado, un puntero a la BIOFAM inicial, un puntero a la BIOFAM que se estará recalculando y un puntero a las variable ling\"uistica.
\begin{lstlisting}
typedef struct
{
VLing *Ling;
double *BIOFAM;
double *iBIOFAM;
double valDes;
int numvar;
}FuzzyL;
\end{lstlisting}
\end{exampleblock}
\end{frame}
\begin{frame}[allowframebreaks,fragile]{Control de Temperatura - Implementación}\justifying
\scriptsize
\begin{exampleblock}{Programación en C:}\justifying
Variable Ling\"uistica.\\
Ésta fue llamada Vling y se encarga de almacenar los datos pertenecientes a las diferentes variables ling\"uisticas, como son: número de funcion de membresía, un puntero para la funcione de membresía, un puntero a las etiquetas de los posibles valores de la variable, el nombre de la variable ling\"uistica y la cantidad de etiquetas.
\begin{verbatim}
typedef struct
{
int tam;
char *nom;
labels *ilab;
MFunc *Func;
int numFunc;
}VLing;
\end{verbatim}
\end{exampleblock}
\end{frame}
\begin{frame}[allowframebreaks,fragile]{Control de Temperatura - Implementación}\justifying
\scriptsize
\begin{exampleblock}{Programación en C:}\justifying
Funcion de Membresía.\\
La estructura que guarda los datos de las funciones de membresía se llama Mfunc; está diseñada para contener: el tipo de función, los parámetros xin(Li), xaf(Pq1), xaf2(Pq2) y xf(Ls). Estos parámetros son muy importantes para realizar los cálculos de centroides y áreas. Se muestra a continuación la estructura.
\begin{verbatim}
typedef struct
{
double xin;
double xaf;
double xaf2;
double xf;
char *type;
}MFunc;
\end{verbatim}
\end{exampleblock}
\end{frame}
\begin{frame}[allowframebreaks,fragile]{Control de Temperatura - Implementación}\justifying
\scriptsize
\begin{exampleblock}{Programación en C:}\justifying
Etiqueta\\
La estructura de etiqueta guarda el nombre y el valor de la etiqueta.
\begin{verbatim}
typedef struct
{
int value;
char *name;
}labels;
\end{verbatim}
El Centroide\\
La estructura centroide, sirve para regresar dos valores a través de la función que realiza el cálculo del centroide. Ya que se necesitan el área y el centroide en X de una figura determinada. La estructura es la siguiente.
\begin{verbatim}
typedef struct
{
double centroide;
double area;
}Cent;
\end{verbatim}
\end{exampleblock}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{thebibliography}{X}
\bibitem[Hung et. al., 03]{FuzzyC03} {\sc Hung T. Nguyen, Nadipuram R. Prasad, Carol L. Walker, Elbert A. Walker}, ``A First Course in Fuzzy and Neural Control'', {\it Chapman \& Hall/CRC}, 2003.
\bibitem[Hartmut et. al., 98]{HarJo98} {\sc Hartmut Surmann y J\"org Huser}, ``Automatic electropolishing of cobalt chromium dental castalloys with a fuzzy logic controller'', {\it Journal of Computers \& Chemical Engineering}, vol.{\bf 22}, págs. 1099--1111, 1998.
\end{thebibliography}
\end{document}