\section*{Outline} \frame{\tableofcontents[pausesections]} \section{Introdução} \subsection{Definições} \frame{ \frametitle{Sistemas Complexos} \begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Sistemas Complexos}} \begin{itemize}[<+-| alert@+>] \item Sistema com um grande número de constituintes ou partes, que interagem entre si. \item Aparece um comportamento coletivo complexo. \item As interações são conflitantes mas não são complicadas. \item O comportamento do todo é diferente da soma das partes. \end{itemize} \end{beamerboxesrounded} } \frame{ \frametitle{Mini Vocabulário} \begin{itemize}[<+-| alert@+>] \item Elementos, partes, componentes, \item Interações, conexões, relacionamentos, redes, \item Emergência - não linearidade, escalas, \item Padrões, descrição, informação, \item Dinâmica, resposta, feedback, homeostase, controle \item Adaptação, evolução, organização, auto-organização, \item Conflito, satisfação, frustração, otimização \item História, diversidade, sensibilidade às condições iniciais \item Complexidade, descrição do sistema, entropia \end{itemize} } \subsection{Motivação} \frame{ \frametitle{Como Estudar Sistemas Complexos ?} \begin{itemize}[<+-| alert@+>] \item Macroscópico $\longleftrightarrow$ Microscópico \item Termodinâmica $\longleftrightarrow$ Mecânica Estatística \item Escalas, frustração $\longleftrightarrow$ Transições de Fase \item Interações assimétricas, metaestabilidade, flutuações \item Simulações Computacionais eficientes \item Monte Carlo, automata celulares, simulated annealing, amostragem entrópica \item Tamanho finito, multigrid \end{itemize} } \frame{ \frametitle{Simulações} \pgfdeclareimage[interpolate=true,width=\textwidth]{landau}{landau} \pgfuseimage{landau} } \section{Sistemas Binários} \subsection{Álgebra de Boole} \frame{ \frametitle{Sistemas Booleanos} Propósito: simplificação \only<2->{Adequado para implementação em computadores digitais} \only<3->{Fácil paralelização} \pgfdeclareimage[interpolate=true,width=2.5cm]{boole}{Boole} \only<4->{ \begin{columns} \begin{column}[c]{2.8cm} \pgfuseimage{boole} \end{column} \begin{column}[c]{7cm} \textbf{Boole, George (1815-1864)} \only<5-> { \begin{itemize}[<+-| alert@+>] \item Criador da Lógica Matemática \item The Mathematical Analysis of Logic (1847) \item Operações Básicas: AND $\bigwedge$, OR $\bigvee$ e NOT ! \item particular: álgebra de ordem 2 (0 e 1) \end{itemize} } \end{column} \end{columns} } } % end frame \frame{ \frametitle{Operações Booleanas} \pgfdeclareimage[interpolate=true,height=4cm]{AND}{boolean-and} \pgfdeclareimage[interpolate=true,height=4cm]{OR}{boolean-or} \pgfdeclareimage[interpolate=true,height=4cm]{NOT}{boolean-not} \begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Operação AND $\bigwedge$}} \begin{center} \pgfuseimage{AND} \end{center} \end{beamerboxesrounded} } %slide 1 \frame{ \frametitle{Operações Booleanas} \begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Operação OR $\bigvee$}} \begin{center} \pgfuseimage{OR} \end{center} \end{beamerboxesrounded} } %slide 2 \frame{ \frametitle{Operações Booleanas} \begin{beamerboxesrounded}[shadow=true]{\color{yellow}{Operação NOT ! }} \begin{center} \pgfuseimage{NOT} \end{center} \end{beamerboxesrounded} } %slide 3 \frame{ \frametitle{Tabela Verdade} \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Operações Booleanas}} \begin{table}[htbp] \centering \begin{tabular}{|c|c|c|c|} \hline & AND & OR & XOR \cr \hline 00 & 0 & 0 & 0 \cr 01 & 0 & 1 & 1 \cr 10 & 0 & 1 & 1 \cr 11 & 1 & 1 & 0 \cr \hline \end{tabular} \end{table} \end{beamerboxesrounded} \only<2->{ P: Quantas operações binárias existem ? } } % end frame \frame{ \frametitle{Diagrama de Conjuntos} \pgfdeclareimage[interpolate=true,height=4cm]{venn}{booleanvenn} \pgfuseimage{venn} } % end frame \frame{ \frametitle{Propriedades} \only<2->{ Idempotente: $$ a \vee a = a \wedge a = a $$} \only<3->{ Comutativa: \begin{eqnarray*} a \vee b &= b \vee a \\ a \wedge b &= b \wedge a \end{eqnarray*}} \only<4->{ Associativa: \begin{eqnarray*} a \vee ( b \vee c ) &= ( a \vee b ) \vee c \\ a \wedge ( b \wedge c ) &= ( a \wedge b ) \wedge c \end{eqnarray*}} } \frame{ \frametitle{Problema 1} \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Escreva}} \begin{itemize} \item AND em termos de OR e NOT \item OR em termos de NOT e AND \item AND em termos de NAND (NOT AND) \item XOR em termos de AND, OR e NOT \item XOR em termos de NAND e NOT \item XNOR (NOT XOR) em termos de AND, OR e NOT \end{itemize} \end{beamerboxesrounded} } % end frame %\frame{ % \frametitle{Bits} % como lidar com os bits % \movie[externalviewer]{Random Walk}{rw.mpg} %} \subsection{Números inteiros} \frame{ \frametitle{Bits \& Bytes} \only<1->{Os computadores lidam com números inteiros e de ponto flutuante.} \only<2->{Operações com inteiros são mais eficientes: não tem expoentes.} \only<3->{Números inteiros são restritos a uma faixa ([$-2^{31},2^{31}-1$] para 32 bits).} \only<4->{Operações de aritmética devem ser escritas em termos das funções anteriores.} \only<5->{C possui \texttt{unsigned long int}.} } \frame{ \frametitle{Representação dos inteiros} \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Números de 3 bits}} \begin{eqnarray*} 0 & = & 000_2 \equiv 0 \\ 1 & = & 001_2 \equiv 1 \\ 2 & = & 010_2 \equiv 2 \\ 3 & = & 011_2 \equiv 3 \\ 4 & = & 100_2 \equiv -4\\ 5 & = & 101_2 \equiv -3\\ 6 & = & 110_2 \equiv -2\\ 7 & = & 111_2 \equiv -1\\ \end{eqnarray*} \only<2->{Complemento de 2 ( $-Y = 2^B -Y $) } \end{beamerboxesrounded} } \subsection{Operações com Inteiros} \frame{ \frametitle{Operações Básicas} \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Soma}} \begin{center} \begin{tabular}{rccccc} & \only<2->{6} & & &\only<2->{$110_2$} \\ + & \only<3->{3} & $\equiv$ & + &\only<3->{$011_2$} \\ \cline{1-2} \cline{4-5} & \only<5->{1} & & &\only<4->{$001_2$} \\ % $6+3 = 110_2 + 011_2 = 001_2 =1$ \end{tabular} \only<6->{Overflow!!! Carry !!! } \end{center} \end{beamerboxesrounded} } \frame{ \frametitle{Operações Básicas} \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Multiplicação por $2^n$}} \begin{center} \begin{tabular}{rccccc} & \only<2->{3} & & &\only<2->{$011_2$} \\ + & \only<3->{3} & $\equiv$ & + &\only<3->{$011_2$} \\ \cline{1-2} \cline{4-5} & \only<5->{6} & & &\only<4->{$110_2$} \\ % $6+3 = 110_2 + 011_2 = 001_2 =1$ \end{tabular} \only<6->{$\times e \div$ por potências de 2 correspondem a deslocamentos (``shifts'') } \only<7->{Também podem levar a overflow} \only<8->{Note que esta representação funciona para a multiplicação} \only<9->{É imediato a adaptação para mais bits ;) } \end{center} \end{beamerboxesrounded} } \frame[containsverbatim]{ \frametitle{Problema 2} \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Escreva um programa para }} a soma de dois números inteiros, só utilizando as funções binárias \begin{verbatim} FORTRAN C integer*4 a,b unsigned int a,b; write(*,*) iand(a,b) printf(``%d\n'',a&b); write(*,*) ior(a,b) printf(``%d\n'',a|b); write(*,*) ieor(a,b) printf(``%d\n'',a^b); write(*,*) ishft(a,1) printf(``%d\n'',a<<1); write(*,*) ishft(a,-1) printf(``%d\n'',a>>1); write(*,*) not(a) printf(``%d\n'',~a); \end{verbatim} \end{beamerboxesrounded} } % end frame \frame{ \begin{beamerboxesrounded}[shadow=true,schema=alert]{\color{yellow}{Potências de 2}} \only{\href{run:./potencia.sh}{Clique aqui}} \only<2->{Tente descobrir $2^n$-1} \only<3->{Tente descobrir o $i^o$ bit} \only<4->{Como setar um bit ?} \only<5->{Como resetar um bit ?} \only<6->{Como inverter um bit ?} \only<7->{Como fazer um shift circular ?} \end{beamerboxesrounded} }