|
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: