Você está na página 1de 46

História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Interface entre Matemática Aplicada e Ciência da


Computação.
“A equação me propõe, computador me resolve.”
– Dois mil e um, Tom Zé.

Luiz Fernando Ramos Lemos

III Semana de Engenharia de Software e Ciência da Computação - UFC Campus Russas

20 de Outubro, 2017

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 1 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Sumário

1 Breve história da relação entre Matemática e Computação.


2 Computação Científica e Ciência da Computação
3 Matemática a serviço da Computação
4 Computação a serviço da Matemática
5 Comentários Finais
6 Referências
7 FIM

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 2 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Antes da Computação Automatizada

Algoritmos são presentes na matemática a milhares de anos, como por


exemplo o Algoritmo de Euclides para o cálculo do Máximo Divisor
Comum, datado de por volta de 300 a.c., já o Método Babilônico para
o cálculo da raiz quadrada teve sua primeira descrição precisa por volta do
ano de 30 a.c., embora já fosse conhecido anteriormente.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 3 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Computação Mecânica

Já na biblioteca de Alexandria, havia registros de como se fazer cálculo me-


cânicamente. Porém, a automação por meio dos computadores diferenciais
de caráter mecânico, com capacidade de se executar um algoritmo, tornou
mais próxima, ou praticamente inaugurou, a computação que conhecemos
hoje com o primeiro programa para ser executado por uma máquina: O
algoritmo de Ada Lovelace para o cálculo de números de Bernoulli na
máquina analítica de Charles Babbage no século XIX.

Ada Lovelace Máquina Analítica

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 4 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Começo do Século XX

No começo do século XX, com o advento da guerra, se desenvolveu muito


a teoria da computação, que teve como expoente Alan Turing. Assim como
métodos matemáticos computacionais, tais como o Método Simplex para
resolução de problemas de Programação Linear, uma modelagem econômica
inicialmente proposta pelo matemático Soviético Leonid Kantorovich, em
1939, e com método computacional de solução pelo americano George
Dantizig entre 1939 e 1947.

Leonid Vitaliyevich Kantorovich


George Dantig
(1975)
(∼1950)

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 5 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Transição para o Transistor

Ainda no começo do século XX a computação era prioritariamente manual,


ou por máquinas diferenciais, apenas depois da década de 50 com a popula-
rização do transistor que os computadores tomaram forma que conhecemos
hoje, máquinas eletrônicas.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 6 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Desenvolvimento das Linguagens de Programação

Com a eletrônica as linguagens de programação prosperaram, primeiramente


eram quese equivalentes ao manuseio direto dos componentes eletrônicos.
Então, em 1954, uma equipe de 10 pesssoas trabalhando para a IBM de-
senvolveram o FORTRAN (Formula Translation) como primeira linguagem
de alto nível, já voltada para a matemática , sendo o primeiro analisador
sintático de expressões aritimética desenvolvido pela cientista Lois Haibt.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 7 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Divisão das áreas

Ciências da Computação É a ciência que tem por objeto de estudo os


processos computacionais.

Computação Científica É o uso e estudo de ferramentas computacionais


para aplicações científicas.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 8 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

IMECC - Unicamp
Sigla: Instituto de Matemática, Estatística e Computação Científica.
No Departamento de Matemática Aplicada existem os seguintes grupos de
pesquisa:

• Física Matemática

• Análise Aplicada • Fundamentos Matemáticos da Teoria


Quântica
• Análise Numérica
• Geofísica Computacional
• Biomatemática
• Inteligência Computacional, Análise e
• Combinatória e Teoria dos Números Processamento de Imagens
• Epidemiologia e Fisiologia Matemáticas • Métodos Computacionais de Otimização
• Pesquisa Operacional

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 9 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplo de áreas

• Lógica.
• Álgebra Linear.
• Cálculo.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 10 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Lógica

O estudo de lógica booleana é a base da computação transistorada e fun-


damenta teoricamente a construção de algoritmos e linguagens e o próprio
conceito de Máquina de Turing.
Um exemplo do uso de lógica que utiliza conhecimentos diversas áreas é a
abordagem de problemas por Programação Linear Inteira.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 11 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Programação Linear Inteira.

A Programação Linear trata de resolver problemas com uma função obje-


tivo linear, e restrições lineares permitindo desigualdades. Quando exigimos
que a solução seja inteira, temos um Problema Linear Inteiro. Podemos
representar um problema linear da seguinte forma:

min cT x
s.a Ax = b
Ux ≤ u
Lx ≥ l
lb ≤ x ≤ ub

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 12 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplos de conversões lógicas:


“E”.

Se x1 , x2 são proposições quaisquer, então a proposição:

x1 ∧ x2
É equivalente a outra proposição:

x1 + x2 = 2, x1 , x2 ∈ {0, 1}

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 13 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplos de conversões lógicas:


“E” (n variáveis).

E temos o mesmo para n variáveis:

x1 ∧ x2 ∧ . . . ∧ xn

n
X
xk = n, xk ∈ {0, 1}.
k=1

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 14 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplos de conversões lógicas: “Ou exclusivo”.

x1 ∨ x2

x1 + x2 = 1, x1 , x2 ∈ {0, 1}

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 15 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplos de conversões lógicas:


“Ou exclusivo” (n variáveis).

x1 ∨ x2 ∨ . . . ∨ xn
⇔d
n
X
xk = 1, xk ∈ {0, 1}.
k=1

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 16 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplos de conversões lógicas: “Ou”.

x1 ∨ x2

x1 + x2 ≥ 1, x1 , x2 ∈ {0, 1}

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 17 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplos de Conversões Lógicas:


“Ou” (n Variáveis).

E temos o mesmo para n variáveis:

x1 ∨ x2 ∨ . . . ∨ xn

n
X
xk ≥ 1, xk ∈ {0, 1}.
k=1

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 18 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Construindo as Restrições:
Ocupação de Todos os Professores.

Garantia que todo professor lecione uma ou mais disciplinas. Dados um


professor pf fixo, D o conjunto das disciplinas oferecidas, S o conjunto
dos dias da semana letivos e H o conjunto dos horários permitidos,
temos: X X X
x(pf , di, ds, hr ) ≥ 1.
di∈D ds∈S hr ∈H
Já aqui, exigimos que a soma de todos os eventos associados a um
professor seja maior que 1. Esta restrição é válida se uma ou mais
ocorreu (“ou” simples).

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 19 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Construindo as Restrições:
Garantia de Oferecimento Único.

Temos que garantir que toda disciplina seja oferecida, porém associada
à apenas um professor dia e horário. Dado uma disciplina di fixa e P o
conjunto dos professores disponíveis, S o conjunto dos dias da semana
letivos e H o conjunto dos horários possíveis, temos:
X X X
x(pf , di, ds, hr ) = 1.
pf ∈P ds∈S hr ∈H

Onde temos a soma de todas as associações para uma disciplina di fixa


condicionada a ser igual a 1 . Esta restrição é válida se, e somente se,
ocorre apenas um dos eventos (“ou” exclusivo). Deve ser criada uma
restrição para cada disciplina.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 20 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Construindo as restrições:
Inibição de choque de de horário.

Afim de evitar choques de horário vamos definir uma restrição linear


que impede de ocorrer duas associações entre professor e disciplina
ocorram em um mesmo dia e horário. Dados um dia da semana ds e
horário hr , P o conjunto dos professores disponíveis, D o conjunto das
disciplinas oferecidas temos:
X X
x(pf , di, ds, hr ) ≤ 1.
pf ∈P di∈D

Que é a soma de todas as variáveis associadas ao dia e horário fixados


condicionada a ser menor ou igual a 1. Esta restrição é válida se
nenhuma associação ocorre (“e” para a negação dos eventos) ou se
ocorre apenas uma associação (“ou” exclusivo).

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 21 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Álgebra Linear

Muito além da aplicação apresentada anteriormente, a Álgebra Linear tem


amplas aplicações, como a construção de medidas de similaridade para
mecanismos de buscas e processamento de imagens.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 22 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplo: Simulação por medidas de similaridade

Simulações econômicas feitas utilizando as medidas de similaridade por


norma e por cossenos.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 23 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Compressão de imagens por SVD

SVD é uma decomposição matricial utilizada para a compressão de ima-


gens com perdas.

Imagem original. Imagem com 20% do número


de bytes da original.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 24 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Cálculo diferencial e integral

O cálculo diferencial e integral é frequentemente utilizado para modelar


sistemas físicos, o que já implica em ampla aplicação na robótica, além
disso é de extrema importância no processamento de imagens.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 25 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Imagem por tomografia

A Transformada de Radon nos permitem ver dentro de um objeto sem


precisar abri-lo! (O que é muito importante quando o objeto é sua cabeça!)
n R∞ R∞
Transformada: φ(ρ, θ) = −∞ −∞ f (x1 , x2 ) · δ (ρ − x1 cos(θ) − x2 sin(θ)) dx1 dx2


 γ(ρ, θ) = ∂ φ(ρ, θ)


 ∂ρ
Transformada Inversa:  
1 Rπ R∞ γ(ρ,θ)
 f (x1 , x2 ) = R−1 {φ(ρ, θ)} = −

−∞ ρ − x1 ·cos(θ) − x2 ·sin(θ) dρ dθ

2π 2 0

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 26 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

• Pacotes e linguagens.
• Ferramentas para o ensino.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 27 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Linguagens de Programação

Com a eletrônica as linguagens de programação prosperaram, primeiramente


eram quese equivalentes ao manuseio direto dos componentes eletrônicos.
Então, em 1954, uma equipe de 10 pesssoas trabalhando para a IBM de-
senvolveram o FORTRAN (Formula Translation) como primeira linguagem
de alto nível, já voltada para a matemática, sendo o primeiro analisador
sintático de expressões aritimética desenvolvido pela cientista Lois Haibt.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 28 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Pacotes e padronização:
BLAS, LINPACK, EISPACK, LAPACK

Para evitar trabalhos recriados, facilitar a pesquisa e favorecer a eficiência


a comunidade cientifica convergiu para o uso de determinadas convenções
e pacotes de operações matemáticas:
BLAS: Subrotinas Básicas de Algebra Linear (Basic Linear Algebra Su-
broutines), se trata de especificação de operações básicas com matrizes
e vetores.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 29 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Pacotes e padronização:
BLAS, LINPACK, EISPACK, LAPACK

Implementações para FORTRAN:


LINPACK: Pacote com implementações das BLAS.
MINPACK: Pacote para otimização não-linear, baseado em minimi-
zação por Quadrados Mínimos.
EISPACK: Pacote para cálculos envolvento autovetores e autovalo-
res.
LAPACK: Modernização em FORTRAN 90 dos 3 pacotes
citados acima.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 30 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Matlab (Matrix Laboratory) e Octave

O Matlab é um programa comercial desenvolvido no fim da década de 70


para facilitar o acesso das funções dos pacotes citados anteriormente. Utiliza
uma linguagem de programação estruturada, de script interpretado, com
diversas funções e kit implementados para a área de matemática computa-
cional. Trabalharemos com um programa similar, porém de código aberto,
o GNU Octave.

Logotipo do Matlab.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 31 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

GNU Octave

O GNU Octave é um software livre, iniciado em 1988, mantido pela


comunidade do GNU Project que foca em ser uma alternativa gratuita
com grande compatibilidade de código com o Matlab.
Atualmente se encontra em um estágio maduro de desenvolvimento com
versões para Android, iOS, Linux, Windows, macOS. As versões para PC
além do terminal, possuem interface com editor integrado, navegador de
arquivos e acesso à documentação.

Logotipo do Octave.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 32 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Apresentação

O aplicativo foi construído em linguagem C++ e reaproveita varias bibli-


otecas e aplicativos de código aberto como o OpenGL, para construção
gráfica e o glpk para solução de problemas lineares. Porém, por se tratar
de uma linguagem de alto nível e interpretada sua eficiência não é alta,
sua vantagem é a facilidade.
Tem grande semelhança com a linguagem C e suporta divesas funções da
Biblioteca Padrão da Linguagem C.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 33 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Instalação

A instalação para diversos sistemas pode ser obtida gratuitamente no site


https://www.gnu.org/software/octave/.
Para celulares existem versões não oficiais no Google Play e App Store.

Página de download do Octave.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 34 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Computação e o ensino:
Teoria dos Registros de Representação Semiótica. (TRRS)

A Teoria dos Registros de Representação Semiótica, uma área de


pesquisa dentro da Educação Matemática, alega que o conhecimento ma-
temático é acessado por meio de suas representações, sendo que cada
representação guarda características próprias, vantagens e limitações, em
relação ao acesso de um conceito.
Esse trabalho foi iniciado pelo filósofo e psicólogo frânces Raymond Duval.

Raymond Duval

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 35 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Acesso ao conhecimento Matemático

Cardoso (2013, p. 71), “[...] é a articulação dos registros que constitui


uma condição de acesso à compreensão matemática, e não o inverso, qual
seja, o enclausuramento em cada registro. Como cada registro de repre-
sentação possui elementos distintos a ser analisado, quanto mais o aluno
passa a conhecer e compreender as diversas representações semióti-
cas de um mesmo objeto [matemático], mais ele irá compreender o
significado, conceitos e propriedades envolvidas no processo para um
dado conteúdo”

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 36 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Ferramentas computacionais para o ensino de Matemática

Assim a computação, sobretudo a computação gráfica, constitui uma pode-


roza ferramenta para o ensino de Matemática.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 37 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

O GeoGebra:

GeoGebra é um software de código aberto para representações algébricas


de formas gráficas, e vice-versa. Seu nome vem da junção das palavras
Álgebra e Geometria.
Existem versões para Linux, Windows, macOS, iOS e Android.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 38 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Exemplo: Geogebra no Android.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 39 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Conhecimento é único ou
compartimentado?

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 40 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

É dialético, material e histórico!

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 41 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

“Os homens fazem a sua própria história, mas não a fazem segundo a sua
livre vontade; não a fazem sob circunstâncias de sua escolha e sim sob
aquelas com que se defrontam diretamente, legadas e transmitidas pelo
passado. A tradição de todas as gerações mortas oprime como um pesadelo
o cérebro dos vivos.”
Karl Marx, O 18 de Brumário de Luís Bonaparte.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 42 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

A organização do conhecimento evidentemente tem nuances em seus limites,


é dependente de diversos fatores, inclusive políticos econômicos e estes são
dependentes de sua história. Porém, frequentemente, “tudo que é sólido
se desmancha no ar”, os limites se exaurem e as revoluções dos conceitos
acontencem nas interfaces do conhecimento.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 43 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

A Computação é uma ciência de interface, com raízes na Matemática,


certamente aqueles que dominarem para além do conhecimento de específico
de seu curso terá muito mais chances de inovar, e terá vantagens tanto na
Academia quanto em qualquer outra ocupação.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 44 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

Referências

Daniel Cordeiro de Morais Filho.


Um convite à Matemática.
SBM, 2012.

Mokhtar S Bazaraa, John J Jarvis, and Hanif D Sherali.


Linear programming and network flows.
John Wiley & Sons, 2011.

Dimitris Bertsimas and Robert Weismantel.


Optimization over integers.
Dynamic Ideas Belmont, 2005.

Gene H Golub and Charles F Van Loan.


Matrix computations.
JHU Press, 2012.

Stanley R Deans.
The Radon transform and some of its applications.
Courier Corporation, 2007.

Raymond Duval.
Registros de representações semióticas e funcionamento cognitivo da compreensão em
matemática.
Aprendizagem em matemática: registros de representação semiótica. Campinas: Papirus, pages
11–33, 2003.

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 45 / 46


História Divisão das áreas Matemática para computação Computação para matemática Comentários finais Referências FIM

FIM

Luiz Fernando Ramos Lemos UFC Matemática e Computação 20 de Outubro, 2017 46 / 46

Você também pode gostar