Você está na página 1de 77

CT 720 Tópicos em Aprendizagem de Máquina e

Classificação de Padrões

2-Teoria Bayesiana de Decisão

ProfFernandoGomide DCA-FEEC-Unicamp
Conteúdo
1. Introdução
2. Teoria Bayesiana de decisão: atributos contínuos
3. Classificação com taxa de erro mínima
4. Funções de discriminação e classificadores
5. Densidade normal
6. Funções de discriminação para densidade normal
7. Teoria Bayesiana de decisão: atributos discretos
8. Redes Bayesianas
9. Resumo

ProfFernandoGomide DCA-FEEC-Unicamp
1-Introdução

 Teoria Bayesiana de decisão

– abordagem estatística para reconhecimento padrões


– assume problema de decisão formulado probabilisticamente
– todos valores relevantes de probabilidade conhecidos
– identificação de sequências DNA

 Este capítulo

– apresenta fundamentos da teoria


– teoria: formaliza procedimentos intuitivos

ProfFernandoGomide DCA-FEEC-Unicamp
 Previsão próximo tipo peixe?

ω = estado : variável aleatória


ω = ω1 sea bass
ω = ω2 salmon

 Assumindo

P(ω1): probabilidade a priori próximo tipo é sea bass


P(ω1): probabilidade a priori próximo tipo é salmon
P(ω1) + P(ω2) = 1

ProfFernandoGomide DCA-FEEC-Unicamp
 Decidir tipo próximo peixe

– classificação incorreta: mesmo custo


– informação disponíveis: somente P(ω1) e P(ω2)

 Regra de decisão

decidir ω1 se P(ω1) > P(ω2) ; caso contrário decidir ω2


– regra: mesma decisão, mesmo sabendo que existem 2 tipos
– desempenho depende da escolha de P(ω1) e P(ω2)

ProfFernandoGomide DCA-FEEC-Unicamp
 Na prática

– temos mais informação


– e.g. medida luminosidade (x)
– densidade probabilidade condicional de classe p(x/ω)
– função densidade de probabilidade de x dado estado ω
– p(x/ω1) e p(x/ω2) descrevem diferenças de luminosidade

ProfFernandoGomide DCA-FEEC-Unicamp
ProfFernandoGomide DCA-FEEC-Unicamp
 Supor que conhecemos:

– P(ω1) e P(ω2)
– p(x|ω1) e p(x|ω2)
– medida de luminosidade x

 Como x influencia a escolha correta do tipo?

– estimativa correta do estado ?


– como decidir o tipo (classe)

ProfFernandoGomide DCA-FEEC-Unicamp
 Classificação usando luminosidade como atributo

p ( ω j , x ) = P (ω j | x ) p ( x ) = p ( x | ω j ) P (ω j )

p ( x | ω j ) P (ω j )
P (ω j | x ) = Bayes
p ( x)
2
p( x) = ∑ p ( x | ω j ) P (ω j )
j =1

p (efeito / causa) P (causa)


P (causa / efeito) =
P (efeito)
likelyhood × prior
posterior =
evidence

ProfFernandoGomide DCA-FEEC-Unicamp
P(ω1) = 2/3
P(ω2) = 1/3

Regra de decisão de Bayes

decidir ω1 se P(ω1| x) > P(ω2| x) ; caso contrário decidir ω2 (*)

ProfFernandoGomide DCA-FEEC-Unicamp
 Regra de Bayes minimiza a probabilidade de erro

 P (ω1 | x) se decidimos ω2
P (error | x) = 
 P (ω2 | x) se decidimos ω1

– para uma observação x minimiza-se a probabilidade de erro:

decidindo ω1 se P(ω1| x) > P(ω2| x); ou ω2 caso contrário

– esta regra minimiza a probabilidade de erro para qualquer x, em média?

ProfFernandoGomide DCA-FEEC-Unicamp
– em média a probabilidade do erro é
∞ ∞
P (error ) = ∫ P(error , x)dx = ∫ P(error | x) p( x)dx
−∞ −∞

– logo a integral P(error) é mínima se P(error/x) é mínima, isto é, se

decidir ω1 se P(ω1| x) > P(ω2| x); caso contrário decidir ω2

– P(error/x) = min [P(ω1| x) , P(ω2| x) ]

 Regra de decisão de Bayes (alternativa)

decidir ω1 se p(x|ω1)P(ω1) > p(x|ω2) P(ω2); caso contrário decidir ω2

ProfFernandoGomide DCA-FEEC-Unicamp
2-Teoria Bayesiana de decisão: atributos contínuos

 Generalização

– uso de vários atributos


– mais de dois estados
– outras decisões e não só classificação
– critério mais geral que probabilidade de erro

ProfFernandoGomide DCA-FEEC-Unicamp
 Notação

x : atributo, x ∈ Rd
Rd : espaço (Euclideano) de atributos
{ω1, ..., ωc}: conjunto (finito) de c estados (categorias)
{α1, ..., αa}: conjunto (finito) de a decisões (ações)
λ(αi, ωj): loss function = custo decisão αi quando em ωj

 Regra de Bayes

p ( x | ω j ) P (ω j )
P (ω j | x ) =
p ( x)
c
p ( x) = ∑ p ( x | ω j ) P (ω j )
j =1

ProfFernandoGomide DCA-FEEC-Unicamp
– supor observação x e ação αi correspondente

– se estado verdadeiro é ωj, então custo associado é λ(αi, ωj)

– valor esperado do custo da ação αi será:

c
R (α i | x ) = ∑ λ ( α i | ω j ) P ( ω j | x ) Risco condicional
i =1

– dado x, que ação αi minimiza o risco condicional, ∀x ?

– solução (ótima): regra de Bayes !

ProfFernandoGomide DCA-FEEC-Unicamp
 Regra (estratégia) de decisão

– α(x): fornece a decisão para cada valor de x


– para cada x, α(x) assume um dos a valores α1, ..., αa
– risco global: risco associado com uma estratégia de decisão

R = ∫ R (α(x) | x) p (x) dx Risco global

– se α(x) é tal que o valor de R(αi(x)) é o menor possível ∀x,


então risco global é minimizado; isto motiva o seguinte:

ProfFernandoGomide DCA-FEEC-Unicamp
 Regra de Bayes

para minimizar risco global:

1 – calcular
c
R ( α i | x ) = ∑ λ ( α i | ω j ) P ( ω j | x ), i = 1,K, a
i =1

2 – selecionar ação αi que minimiza R(αi|x)

R* = risco de Bayes

ProfFernandoGomide DCA-FEEC-Unicamp
 Exemplo com duas classes

– α1 : decide que estado verdadeiro é ω1


– α2 : decide que estado verdadeiro é ω2
– λij = λ(αi, ωj) custo quando decisão ⇒ ωi mas verdadeiro é ωj

risco condicional

R(α1 | x) = λ11P (ω1 | x) + λ12 P(ω2 | x)


R(α 2 | x) = λ 21P (ω1 | x) + λ 22 P(ω2 | x)

decidir ω1 se R(α1|x) < R(α2|x)

ProfFernandoGomide DCA-FEEC-Unicamp
– alternativamente, em termos das probabilidades a posteriori

 decidir ω1 se (λ21 – λ11)P(ω1| x) > (λ12 – λ22) P(ω2| x)

– em geral λ21 > λ11 e λ12 > λ22

– utilizando Bayes, probabilidades a priori e densidades condicionais

P (x | ω1 ) (λ12 − λ 22 ) P (ω2 )
> Razão de verosimilhança
P (x | ω2 ) (λ 21 − λ11 ) P(ω1 )

ProfFernandoGomide DCA-FEEC-Unicamp
3-Classificação com taxa de erro mínima

0 i = j
λ (α i | ω j ) =  i, j = 1,K, c
1 i ≠ j

c
R (α i | x ) = ∑ λ ( α i | ω j ) P (ω j | x )
i =1
= ∑ P(ω j | x)
i≠ j
= 1 − P(ωi | x)

ProfFernandoGomide DCA-FEEC-Unicamp
 Regra Bayes para taxa de erro mínima

– minimizar risco: selecionar ação que minimiza risco condicional


– minimizar taxa de erro de classificação:

decidir ωi se P(ωi | x) > P(ωj | x) ∀ i, j (ver *)

ProfFernandoGomide DCA-FEEC-Unicamp
4-Funções discriminação e classificadores

 Função discriminação

gi(x), i = 1,..., c

classificador atribui classe ωi a x se gi(x) > gi(x) ∀ j ≠ i

Exemplos:

gi(x) = – R(αi|x) risco condicional mínimo

gi(x) = P(ωi | x) erro classificação mínimo

ProfFernandoGomide DCA-FEEC-Unicamp
Estrutura funcional de classificadores estatísticos

ProfFernandoGomide DCA-FEEC-Unicamp
 Propriedades

– funções discriminação não são únicas


– transformações: f(gi(x)), f monotônica crescente
– simplificação analítica e computacional
– exemplos de classificadores (erro classificação mínimo):

p( x | ωi ) P (ωi )
gi (x) = P (ωi | x) = c
∑ p ( x | ω j ) P (ω j )
j =1
gi (x) = p( x | ωi ) P (ωi )

gi (x) = ln p (x | ωi ) + ln P(ωi )

ProfFernandoGomide DCA-FEEC-Unicamp
– formas funções diferentes, mas regras de decisão equivalentes
– efeito: dividir o espaço de atributos em c regiões distintas
se gi(x) > gi(x) ∀ j ≠ i então x ∈ R i
– Ri∩ Rj = ∅
– R 1 ,..., R c formam uma partição do espaço de atributos

ProfFernandoGomide DCA-FEEC-Unicamp
– exemplo: duas categorias (classes)
atribuir ω1 a x se g1(x) > g2(x) ∀ j ≠ i
g (x) = g1(x) – g2(x)
atribuir ω1 a x se g(x) > 0 (***)

g (x) = P (ω1 | x) − P (ω2 | x)

p (x | ω1 ) P(ω1)
g (x) = ln + ln (**)
p (x | ω2 ) P(ω2 )
ProfFernandoGomide DCA-FEEC-Unicamp
5-Densidade normal
1  1 t −1 
p ( x) = exp −
 2 ( x − µ ) Σ ( x − µ ) 
(2π)d / 2 | Σ |1/ 2


µ = E[x] = ∫ x p(x)dx , µi = E[ xi ]
−∞


Σ = E[(x − µ)(x − µ) ] = t
∫ ( x − µ )( x − µ ) t
p (x)dx
−∞

[ ]
Σ = σij , σij = E[( xi − µi )( x j − µ j )], Σ > 0

ProfFernandoGomide DCA-FEEC-Unicamp
( x − µ)t Σ −1( x − µ) = cte

ProfFernandoGomide DCA-FEEC-Unicamp
λ2

γ1
γ2

µ
λ1

(x − µ)t Σ −1(x − µ) = 1

ProfFernandoGomide DCA-FEEC-Unicamp
 Transformações lineares

– combinações lineares de variáveis aleatórias normais são normais


µ, ∑)
p(x) = N(µ
A (d × k)
y = Atx (k × 1)
p(y) = N(Atµ, At∑A)

– se A = a (d × 1), k = 1, ||a|| = 1 então


y = atx (escalar que representa projeção de x ao longo de a)
at ∑a variância da projeção de x ao longo de a

ProfFernandoGomide DCA-FEEC-Unicamp
ProfFernandoGomide DCA-FEEC-Unicamp
 Observações

r 2 = (x − µ)t Σ −1( x − µ) Distância de Mahalanobis

V = Vd | Σ |1/ 2 r d Volume hiperelipsóide

πd / 2 /(d / 2)! d par


Vd =  d ( d −1) / 2 Volume hiperesfera
2 π (d − 1 / 2)!/ d! d impar

ProfFernandoGomide DCA-FEEC-Unicamp
6-Funções discriminação p/ densidade normal

gi (x) = ln p (x | ωi ) + ln P (ωi )

p (x | ωi ) ~ N (µi , Σi )

1 d 1
gi (x) = − (x − µ)t Σ −1 (x − µ) − ln 2π − ln | Σi | + ln P(ωi )
2 2 2
 Caso 1: ∑i = σ2I

2
x − µi
g i ( x) = − + ln P (ωi )
2σ 2

1
g i ( x) = − [ x t
x − 2µ t
x + µ i µ i ] + ln P (ωi )
t
2σ 2

termo quadrático é o mesmo ∀ i

gi (x) = w ti x + wio Máquina linear

1 −1
wi = µ ,
2 i
wio = µ t
2 i i
µ + ln P(ωi )
σ 2σ

Limiar (bias) para i-ésima classe


g i ( x) − g j ( x) = 0

w t (x − xo ) = 0 Hiperplano separa R i e R j
passa por xo e é ortogonal
w = µi − µ j à reta que une as médias

1 σ2 P(ωi )
xo = (µi + µ j ) − 2
ln (µ i − µ j )
2 µi − µ j P (ω j )

1
P (ωi ) = P (ω j ) ⇒ xo = (µi + µ j )
2
P(ωi) ≠ P(ωj)

xo se afasta da média mais provável

P(ωi) = P(ωj), ∀i, j termo ln P(ωi) irrelevante

2
g i ( x) = x − µ i Classificador distância mínima
 Caso 2: ∑i = ∑
independente de i

1 d 1
gi (x) = − ( x − µ)t Σ −1( x − µ) − ln 2π − ln | Σi | + ln P(ωi )
2 2 2

1
gi (x) = − ( x − µ)t Σ −1( x − µ) + ln P (ωi )
2

se P(ωi) = P(ωj), ∀i, j termo ln P(ωi) irrelevante, logo:

1
gi (x) = (x − µ)t Σ −1( x − µ) Classificador distância (Mahalanobis) mínima
2
1 d 1
gi (x) = − (x − µ)t Σ −1 (x − µ) − ln 2π − ln | Σi | + ln P(ωi )
2 2 2

eliminando xt ∑–1x da expansão de (x – µ)t ∑–1 (x – µ) (independe de i)

gi (x) = w ti x + wio Máquina linear

1
w i = Σ −1µi wio = − µti Σ −1µi + ln P(ωi )
2
se R i e R j são contíguas, a superfície de decisão é um hiperplano

w t (x − xo ) = 0

w = Σ −1 (µi − µ j )

1 ln[ P (ωi ) / P (ω j )]
xo = (µi + µ j ) − t −1
(µi − µ j )
2 (µi − µ j ) Σ (µi − µ j )

– hiperplano separa R i e R j não é ortogonal à reta que une as médias


– hiperplano intercepta esta reta em xo
– se P(ωi) = P(ωj), ∀i, j então está no meio das médias
– se P(ωi) ≠ P(ωj), então hiperplano se afasta da média mais provável
 Caso 3: ∑i = arbitrária
único termo independente de i

1 d 1
gi (x) = − ( x − µ)t Σ −1( x − µ) − ln 2π − ln | Σi | + ln P(ωi )
2 2 2

expandindo

gi (x) = xt Wi x + w ti x + wio Classificador quadrático

1
Wi = − Σi−1 w i = Σi−1µi
2

1 1
wio = − µti Σi−1µi − ln | Σi−1 | + ln P (ωi )
2 2
– caso com duas classes
– superfícies de decisão são hiperquadráticas
• hiperplanos
• hiperesferas
• hiperelipsóides
• hiperparabolóides
– regiões (decisão) não necessariamente conectadas
Quatro classes
 Exemplo: região de decisão, dados Gaussianos
x2
 3 1 / 2 0
10 µ1 =   Σ1 =  
8
 
6  0 2 

µ1
6 3 2 0
µ2 =   Σ2 =  
4  − 2 0 2
2
P(ω1) = P(ω2 ) = 0.5
-2 2 4 6 8 10 x1
-2 µ2 g1 (x) = xt W1x + w1t x + w10

g1 (x) = xt W1x + w1t x + w10

g1 (x) = g 2 (x)
x2

10

8 x2 = 3.514 − 1.125 x1 + 0.1875 x12


6 µ1

-2 2 4 6 8 10 x1
-2 µ2
7-Teoria Bayesiana de decisão: atributos discretos

x ∈ {v1, ...., vm}

P ( x | ω j ) P (ω j )
P (ω j | x ) = Regra de Bayes
P ( x)

c
P ( x) = ∑ P ( x | ω j ) P (ω j )
j =1

α* = arg min R (αi | x) Regra de decisão mínimo risco


i
Regra de Bayes para taxa de erro mínima

decidir ωi se P(ωi | x) > P(ωj | x) ∀ i, j (ver *)

Funções de discriminação

P( x | ωi ) P(ωi )
gi (x) = P (ωi | x) = c
∑ P ( x | ω j ) P (ω j )
j =1
gi (x) = P (x | ωi ) P (ωi )

gi (x) = ln P (x | ωi ) + ln P(ωi )
 Exemplo: atributos binários independentes

– duas categorias (classes)


– cada componente é um valor binário
– componentes são independentes

x = ( x1,K, xd )t , xi ∈{0,1}

pi = Pr[ xi = 1 | ω1 )

qi = Pr[ xi = 1 | ω2 )

d
P(x | ω1 ) = ∏ pixi (1 − pi )1− xi
i =1

d
P(x | ω2 ) = ∏ qixi (1 − qi )1− xi
i =1
– Razão de verosimilhança

xi 1− xi
P (x | ω1 ) d  pi   1 − pi 
= ∏    
P (x | ω2 ) i =1  qi   1 − qi 

P ( x | ω1 ) P (ω1 )
g (x) = ln + ln (**)
P ( x | ω2 ) P (ω2 )

d  p 1 − pi  P (ω1)
g (x) = ∑  xi ln i + (1 − xi ) ln + ln Linear em xi
i =1  qi 1 − qi  P (ω2 )
d
g (x) = ∑ wi xi + w0
i =1

pi (1 − qi )
wi = ln , i = 1,K, d
qi (1 − pi )

d (1 − qi ) P (ω1 )
w0 = ∑ ln + ln
i =1 (1 − pi ) P (ω2 )

lembrar: decidir ω1 se g(x) > 0 e ω2 se g(x) ≥ 0 (***)


 Análise

– g(x) é uma combinação linear (ponderada) das componentes de x


– valor de wi é a relevância de uma resposta xi = 1 na classificação
– se pi = qi então valor de xi é irrelevante (wi = 0)
– se pi > qi então (1 – pi) < (1 – qi), wi > 0 e xi = 1 ⇒ wi votos para ω1
– se pi < qi então (1 – pi) > (1 – qi), wi < 0 e xi = 1 ⇒ |wi|votos para ω2
 Exemplo: dados binários 3-d

– duas categorias (classes)


– cada componente é um valor binário
– componentes são independentes

P(ω1 ) = P(ω2 ) = 0.5

pi = 0.5, qi = 0.8, i = 1,2,3

pi (1 − qi ) 0.8(1 − 0.5)
wi = ln , i = 1,K, d wi = ln = 1.3863 i = 1,K,3
qi (1 − pi ) 0.5(1 − 0.8)

d (1 − qi ) P (ω1 ) 3 (1 − 0.8) 0.5


w0 = ∑ ln + ln w0 = ∑ ln + ln = −1.75
i =1 (1 − pi ) P (ω2 ) i =1 (1 − 0.5) 0.5
x3 x3

0 0

1 1
1 1

x2 x2

0 0
0 1 0 1
x1 x1

pi = 0.8 qi = 0.5 pi = 0.8 qi = 0.5, i = 1,2


i = 1,2,3 p3 = q3
8-Redes Bayesianas

 Conhecimento sobre distribuições

– parâmetros de distribuições
– dependência/independência estatística
– relações causais entre variáveis

 Redes Bayesianas

– explora informação estrutural no raciocínio com variáveis


– usa relações probabilísticas entre variáveis
– assume relações causais
estados de A {a1, a2,...} ≡ a

P(a) A B P(b) estados de B {b1, b2,...} ≡ b

arco

P(d|a,c) D C P(c|b)
pai

E P(e|d)
filho

Regra de Bayes + probabilidades condicionais



probabilidade conjunta de qualquer configuração de variáveis
P(a) P(b)
a1 = winter
P(a1) P(a2) P(a3) P(a4) a2 = spring A B b1 = north Atlantic P(b1) P(b2)
0.25 0.25 0.25 0.25 a3 = summer season locale b2 = south Atlantic 0.6 0.4
a4 = autumn

P(x1|ai,bj) P(x2|ai,bj)
a1, b1 0.5 0.5
a1, b2 0.7 0.3
a2, b1 0.6 0.4 X x1 = salmon
P(x|a,b) a2, b2 0.8 0.2 fish x2 = sea bass
a3, b1 0.4 0.6
a3, b2 0.1 0.9
a4, b1 0.2 0.8
a4, b2 0.3 0.7

P(c|x) P(d|x)
P(c1|xk) P(c1|xk) P(c1|xk) P(d1|xk) P(d2|xk)
c1 = light C D d1 = wide
x1 0.6 0.2 0.2 c2 = medium x1 0.3 0.7
c3 = dark light tick d2 = thin
x2 0.6 0.4
x2 0.2 0.3 0.5

P(a3 , b1, x2 , c3 , d 2 ) = P(a3 ) P (b1 ) P( x2 | a3 , b1 ) P(c3 | x2 ) P(d 2 | x2 ) = 0.25 × 0.6 × 0.4 × 0.5 × 0.4 = 0.012
 Redes Bayesianas formalmente

– grafo acíclico
– nó: variável aleatória (atributo)
– arco: efeito, causa (A afeta B → B condicionado a A)
– cada nó condicionalmente independente dos não descendentes
– representa probabilidade conjunta das variáveis

x1 x2
P(xi|x1,x2)

x3 xi n
P( x1,K, xn ) = ∏ P( xi | PaiDe( xi ))
i =1
xj
xn
 Exemplo

P(a) P(b|a) P(c|b) P(d|c)


A B C D

P(a, b, c, d) = P(a) P(b | a) P(c | b) P(d | c)


P(d) = ∑ P(a, b, c, d)
a,b,c
= ∑ P(a) P(b | a) P(c | b) P(d | c)
a,b,c
= ∑ P(d | c)∑ P(c | b)∑ P(b | a) P(a)
c b a

P(b)

P(c)

P(d)
– em geral: dados os valores de algumas variáveis (evidência: e)
qual é o valor de uma configuração das outras variáveis (x) ?

P(x, e)
P ( x | e) = = αP (x, e)
P(e)

 Exemplo: salmon and sea bass

– probabilidade peixe veio do Atlântico Norte (b1)


– sabendo que é primavera (spring a2)
– peixe é salmão (salmon x1) claro (light c1)

P(b1 | a2 , x1, c1 ) ?
 Em classificação (erro mínimo): salmon or sea bass ?

– sabe-se que
• peixe é claro (c1)
• origem é Atlântico Norte (b2)
– não se sabe:
• estação do ano
• espessura
– problema de classificação:
P( x1 | c1, b2 ) ?

P( x2 | c1, b2 ) ?
P( x1, c1, b2 )
P( x1 | c1, b2 ) = = α ∑ P( x1, a, b2 , c1, d)
P (c1, b2 ) a,d

= α ∑ P (a) P (b2 ) P ( x1 | a, b2 )P(c1 | x1 ) P(d | x1 )


a,d

  
= αP(b2 ) P(c1 | x1 ) ∑ P (a) P( x1 | a, b2 ) ∑ P(d | x1 )
a  d 
= αP(b2 ) P(c1 | x1 )
× [ P(a1 ) P( x1 | a1, b2 ) + P(a2 ) P( x1 | a2 , b2 )
+ P (a3 ) P ( x1 | a3 , b2 ) + P (a4 ) P( x1 | a4 , b2 )]
× [ P(d1 | x1 ) + P (d 2 | x1 )]

=1
P( x1 | c1, b2 ) = α(0.4)(0.6)[(0.25)(0.7) + (025)(0.8)
+ (0.25)(0.1) + (0.25)(0.3)]1.0
P( x1 | c1, b2 ) = α 0.114

P( x2 | c1, b2 ) = α 0.066

classificação: salmon !
 Naive Bayes

– relações de dependência entre atributos desconhecidas


– neste caso assume-se independência condicional

P ( x | a, b ) = P ( x | a ) P ( x | b )
9-Resumo
 Teoria Bayesiana de decisão é simples
 Regras de decisão
– minimizar risco: ação que minimiza risco condicional
– minimizar Pr[erro]: estado que maximiza densidade a posteriori P(ωj |x)
 Superfícies decisão hiperquadráticas no caso Gaussiano
 Redes: relações dependência/independência entre variáveis
Observação

Este material refere-se às notas de aula do curso CT 720 Tópicos Especiais


em Aprendizagem de Máquina e Classificação de Padrões da Faculdade de
Engenharia Elétrica e de Computação da Unicamp e do Centro Federal de
Educação Tecnológica do Estado de Minas Gerais. Não substitui o livro
texto, as referências recomendadas e nem as aulas expositivas. Este material
não pode ser reproduzido sem autorização prévia dos autores. Quando
autorizado, seu uso é exclusivo para atividades de ensino e pesquisa em
instituições sem fins lucrativos.

ProfFernandoGomide DCA-FEEC-Unicamp

Você também pode gostar