Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-angg "LATEX/2010reducao.tex") % (find-dn4ex "edrx08.sty") % (find-angg ".emacs.templates" "s2008a") % (defun c () (interactive) (find-zsh "cd ~/LATEX/ && ~/dednat4/dednat41 2010reducao.tex && latex 2010reducao.tex")) % (defun c () (interactive) (find-zsh "cd ~/LATEX/ && ~/dednat4/dednat41 2010reducao.tex && pdflatex 2010reducao.tex")) % (eev "cd ~/LATEX/ && Scp 2010reducao.{dvi,pdf} edrx@angg.twu.net:slow_html/LATEX/") % (defun d () (interactive) (find-dvipage "~/LATEX/2010reducao.dvi")) % (find-dvipage "~/LATEX/2010reducao.dvi") % (find-pspage "~/LATEX/2010reducao.ps") % (find-pspage "~/LATEX/2010reducao.pdf") % (find-xpdfpage "~/LATEX/2010reducao.pdf") % (find-zsh0 "cd ~/LATEX/ && dvipdf 2010reducao.pdf 2010reducao.dvi") % (find-zsh0 "cd ~/LATEX/ && dvips -D 300 -o 2010reducao.ps 2010reducao.dvi") % (find-zsh0 "cd ~/LATEX/ && dvips -D 600 -P pk -o 2010reducao.ps 2010reducao.dvi && ps2pdf 2010reducao.ps 2010reducao.pdf") % (find-zsh0 "cd ~/LATEX/ && dvips -D 300 -o tmp.ps tmp.dvi") % (find-pspage "~/LATEX/tmp.ps") % (ee-cp "~/LATEX/2010reducao.pdf" (ee-twupfile "LATEX/2010reducao.pdf") 'over) % (ee-cp "~/LATEX/2010reducao.pdf" (ee-twusfile "LATEX/2010reducao.pdf") 'over) % (find-twusfile "LATEX/" "2010reducao") % http://angg.twu.net/LATEX/2010reducao.pdf \documentclass[oneside]{book} \usepackage[latin1]{inputenc} \usepackage{edrx08} % (find-dn4ex "edrx08.sty") %L process "edrx08.sty" -- (find-dn4ex "edrx08.sty") \input edrxheadfoot.tex % (find-dn4ex "edrxheadfoot.tex") \begin{document} \input 2010reducao.dnt %* % (eedn4-51-bounded) %Index of the slides: %\msk % To update the list of slides uncomment this line: %\makelos{tmp.los} % then rerun LaTeX on this file, and insert the contents of "tmp.los" % below, by hand (i.e., with "insert-file"): % (find-fline "tmp.los") % (insert-file "tmp.los") \def \str#1{\ensuremath{\text{``{\tt #1}''}}} \def\mstr#1{\ensuremath{\text{``$#1$''}}} Em Matemática Discreta nós muitas vezes vamos ter que falar sobre {\sl expressões}, e vamos distinguir uma expressão do seu {\sl valor}... Vamos usar aspas quando quisermos enfatizar que estamos falando de expressões: $2·3+4·5 = 6+20$, mas $\mstr{2·3+4·5} \neq \mstr{6+20}$. Computadores vêem expressões como seqüências de caracteres (``strings''), e o valor de um string é o próprio string; a operação que interpreta um string como uma expressão e calcula o valor desta expressão se chama ``avaliação'' (em inglês ``evaluation'', tradicionalmente abreviado para ``eval'' em linguagens de programação). Um exemplo em Lua: {\myttchars \footnotesize \begin{verbatim} Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio > function eval (str) return assert(loadstring("return "..str))() end > print(2*3+4*5) 26 > print("2*3+4*5") 2*3+4*5 > print(type(2*3+4*5)) number > print(type("2*3+4*5")) string > print(eval("2*3+4*5")) 26 > print( 2*3+4*5 == 26) true > print("2*3+4*5" == "26") false > print("2*3+4*5" == 26) false > \end{verbatim} } % (Vou exemplos em Scheme, Guile, Emacs Lisp, SBCL, Python e PERL % depois). Expressões em ``matematiquês'' podem ter subscritos, superscritos, fontes diferentes, e símbolos que são difíceis de representar em ASCII. Nas notas de aula em \LaTeX{} eu às vezes vou usar uma fonte diferente (``typewriter'') pra indicar expressões em ASCII: $$\begin{array}{ll} \mstr{2·3+4·5} & \str{2*3+4*5} \\ \mstr{2+\sqrt{3}} & \str{2+sqrt(3)} \\ \mstr{\sin \frac{\pi}{3}} & \str{sin(pi/3)} \\ \mstr{2^{100}-2^{99}} & \catcode`^=12 \str{2^100-2^99} \\ \end{array} $$ A noção de ``redução'' que vamos usar durante o curso pode ser formalizada matematicamente como uma {\sl relação} (sec.\ 11 do Scheinerman) sobre um {\sl conjunto} (sec.\ 8) de expressões; e podemos definir que as nossas expressões em ASCII são simplesmente uma notação conveniente para {\sl listas} (sec. 6) de números: $$\str{2*3+4*5} = (50, 42, 51, 43, 52, 42, 53)$$ O diagrama de reduções abaixo à esquerda pode ser visto como uma notação convenient para o ``grafo direcionado'' à direita dele: %L forths["~>"] = function () pusharrow("~>") end %D diagram reds %D 2Dx 100 +45 +40 +45 %D 2D 100 A B a b %D 2D %D 2D +20 C D c d %D 2D %D 2D +20 E e %D 2D %D (( A .tex= 2·3+4·5 a .tex= \str{2*3+4*5} %D B .tex= 2·3+20 b .tex= \str{2*3+20} %D C .tex= 6+4·5 c .tex= \str{6+4*5} %D D .tex= 6+20 d .tex= \str{6+20} %D E .tex= 26 e .tex= \str{26} %D A B ~> A C ~> B D ~> C D ~> D E ~> %D a b -> a c -> b d -> c d -> d e -> %D )) %D enddiagram %D $$\diag{reds}$$ \def*{\ensuremath{\bullet}} O livro não define explicitamente grafos direcionados, mas quase... veja: * Ilustração de relações: p.83. * Diagrama de Hasse: p.454. O grafo direcionado acima pode ser representado como conjunto de pares como: $$\begin{array}{l} \llap{\{\;} (\str{2*3+4*5},\str{2*3+20}), \\ (\str{2*3+4*5},\str{6+4*5}), \\ (\str{2*3+20},\str{6+20}), \\ (\str{6+4*5},\str{6+20}), \\ (\str{6+20},\str{26}) \;\} \\ \end{array} $$ % (find-scheinermanpage (+ -10 83) "Ilustração de relações") % (find-scheinermanpage (+ -115 454) "diagrama de Hasse") Repr para relações como conjuntos de pares Interpretar um diagram Interpretar o conjunto de todas as reduções Falar de fecho transitivo Apontar para alfabetos e linguagens no Hopcropt/Ullman/Motwani Falar de uma relação de equivalência que nao sabemos calcular - valor de expressões numéricas Falar de igualdades que são óbvias, e do que séries de igualdades querem dizer, e como elas provam coisas que não queremos calcular Mais geral: caso do n %* \end{document} * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) function eval (str) return assert(loadstring("return "..str))() end print(2*3+4*5) print("2*3+4*5") print(type(2*3+4*5)) print(type("2*3+4*5")) print(eval("2*3+4*5")) print(2*3+4*5 == 26) print("2*3+4*5" == "26") print("2*3+4*5" == 26) seqü % Local Variables: % coding: raw-text-unix % ee-anchor-format: "«%s»" % End: