matemática discreta - aula 14

10
1 FACULDADE DE COMPUTAÇÃO E INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO, SISTEMAS DE INFORMAÇÃO E TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LICENCIATURA EM MATEMÁTICA Matemática Discreta – Aula 14 – 2º SEMESTRE/2014 TEORIA: FUNÇÕES DISCRETAS (PARTE I) Nossos objetivos nesta aula são: Conhecer o conceito de função parcial Reaplicar classificações conhecidas de relações (injetora, sobrejetora,...) para funções parciais Aplicar funções parciais para modelagem de Autômatos Finitos Aplicar funções parciais para operações em Processamento de Imagens Binárias Para esta aula, usamos novamente as seções 5.1 (Função Parcial) e 5.2 (Autômato Finito) do nosso livro da referência básica: MENEZES, P.B. Matemática Discreta para Computação e Informática. 4.ed. Bookman: Porto Alegre, 2013. Não deixem de ler estas seções depois desta aula! FUNÇÕES PARCIAIS Uma função parcial ⊆A×B é uma relação funcional (*) entre A e B, ou seja, cada elemento do domínio (pode sobrar elemento em A) está relacionando com, no máximo, um elemento do contradomínio. Uma função parcial, geralmente, é indicada por : ↛ , onde o sinal de corte na flecha denota a propriedade de parcialidade. Dizemos que uma função parcial é discreta quando o conjunto subjacente à função for discreto, ou seja, se o conjunto de pares {〈, ()〉 } for discreto. (*) a A, b1, b2 B, (a f b1 a f b2) b1 = b2 não ocorre A B

Upload: gustavo-alves

Post on 31-Jan-2016

269 views

Category:

Documents


0 download

DESCRIPTION

Conceitos de indução para matemática discreta com exercicios de fixação ao final do documento para aplicação do conteúdo abordado

TRANSCRIPT

Page 1: Matemática Discreta - Aula 14

1

FACULDADE DE COMPUTAÇÃO E INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO, SISTEMAS DE INFORMAÇÃO E

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LICENCIATURA EM MATEMÁTICA

Matemática Discreta – Aula 14 – 2º SEMESTRE/2014

TEORIA: FUNÇÕES DISCRETAS (PARTE I)

Nossos objetivos nesta aula são:

Conhecer o conceito de função parcial Reaplicar classificações já conhecidas de relações

(injetora, sobrejetora,...) para funções parciais Aplicar funções parciais para modelagem de Autômatos

Finitos Aplicar funções parciais para operações em

Processamento de Imagens Binárias

Para esta aula, usamos novamente as seções 5.1 (Função Parcial) e 5.2 (Autômato Finito) do nosso livro da referência básica: MENEZES, P.B. Matemática Discreta para Computação e Informática. 4.ed. Bookman: Porto Alegre, 2013.

Não deixem de ler estas seções depois desta aula!

FUNÇÕES PARCIAIS

Uma função parcial 𝑓 ⊆ A × B é uma relação funcional (*) entre A e B, ou seja, cada elemento do domínio (pode sobrar elemento em A) está relacionando com, no máximo, um elemento do contradomínio.

Uma função parcial, geralmente, é indicada por 𝑓: 𝐴 ↛ 𝐵, onde o sinal de corte na flecha denota a propriedade de parcialidade.

Dizemos que uma função parcial é discreta quando o conjunto subjacente à função for discreto, ou seja, se o conjunto de pares {⟨𝑎, 𝑓(𝑎)⟩ } for discreto.

(*) a A, b1, b2 B, (a f b1 a f b2) b1 = b2 não ocorre

A B

A

Page 2: Matemática Discreta - Aula 14

2

EXERCÍCIO COM DISCUSSÃO EM DUPLAS

Sejam 𝐴 = {𝑎}, 𝐵 = {𝑎, 𝑏} 𝑒 𝐶 = {0, 1, 2}.

(a) Mostre que as relações abaixo são funções parciais e as classifique em injetora, sobrejetora, bijetora ou em nenhum destes tipos:

a. 𝑓: 𝐵 ↛ 𝐵, 𝑓(𝑎) = 𝑏 𝑒 𝑓(𝑏) = 𝑎

b. 𝑔: 𝐴 ↛ 𝐵, 𝑔(𝑎) = 𝑏

c. ℎ: 𝐶 ↛ 𝐵, ℎ(0) = 𝑎, ℎ(1) = 𝑎 𝑒 ℎ(2) = 𝑏

(b) Calcule a função parcial composta 𝑓 ⋄ 𝑔. Deixe bem claro qual é o domínio e o contradomínio desta função parcial.

(c) Mostre, através de um contra-exemplo, que o produto cartesiano entre A e B não é uma função parcial.

Page 3: Matemática Discreta - Aula 14

3

PRIMEIRA APLICAÇÃO DE FUNÇÃO PARCIAL: AUTÔMATOS FINITOS

Um autômato finito é uma máquina de estados, que permite transições de estados através

da leitura de símbolos (definidos em um alfabeto) de um entrada. A figura abaixo ilustra um autômato finito cujo alfabeto é o conjunto Σ = {a, b} e as

transições de estado na leitura da entrada abba:

Para este autômato, podemos definir dois conjuntos: conjunto de estados Q = {q0, q1, q2, qf} e o alfabeto de entrada Σ = {𝑎, 𝑏}. Assim, as transições possíveis dentro deste autômato podem ser especificados pela seguinte função parcial discreta (função programa) 𝛿: 𝑄 ×Σ ⟶ 𝑄, chamada função de transição do autômato, onde:

o 𝛿(𝑞0, 𝑎) = 𝑞1 o 𝛿(𝑞0, 𝑏) = 𝑞2 o 𝛿(𝑞1, 𝑎) = 𝑞𝑓

o 𝛿(𝑞1, 𝑏) = 𝑞2 o 𝛿(𝑞2, 𝑎) = 𝑞1 o 𝛿(𝑞2, 𝑏) = 𝑞𝑓

o 𝛿(𝑞𝑓 , 𝑎) = 𝑞𝑓

o 𝛿(𝑞𝑓 , 𝑏) = 𝑞𝑓

Vamos denotar por Σ∗ o conjunto de todas as sequências possíveis de símbolos de Σ. Estas

sequencias são chamadas de palavras (ou strings) sobre o alfabeto Σ. No nosso exemplo anterior:

Σ∗ = {𝜖, 𝑎, 𝑏, 𝑎𝑎, 𝑏𝑏, 𝑎𝑏, 𝑏𝑎, 𝑎𝑎𝑎, 𝑎𝑎𝑏, 𝑎𝑏𝑏𝑎, …}

O símbolo ϵ indica a palavra-vazia, isto é, a palavra que não possui símbolos.

Page 4: Matemática Discreta - Aula 14

4

Utilizando o conjunto Σ∗, podemos estender a função de transição para que possa operar sobre as palavras, ou seja, teremos uma função de transição estendida

𝛿∗: 𝑄 × Σ∗ ⟶ 𝑄 tal que:

o 𝛿∗(𝑞, 𝜖) = 𝑞 e

o 𝛿∗(𝑞, 𝑎𝜔) = 𝛿∗(𝛿(𝑞, 𝑎), 𝜔), 𝑝𝑎𝑟𝑎 𝑎 ∈ Σ 𝑒 𝜔 ∈ Σ∗

Esta extensão diz, essencialmente, o seguinte:

o se não lermos nenhum símbolos, então ficamos no mesmo estado

o ao lermos uma palavra, a transição total sobre o autômato é uma composição das transições provocadas pela leitura de cada símbolo da palavra.

EXERCÍCIO TUTORIADO

Considere novamente o autômato finito mostrado na página anterior:

Mostre a sequência de composições de transições (funções) para que o autômato leia (ou soletre, como na designação dos autômatos) a entrada abba a partir do estado inicial do autômato (𝑞0).

Page 5: Matemática Discreta - Aula 14

5

EXERCÍCIO COM DISCUSSÃO EM DUPLAS

Considere o autômato finito mostrado abaixo:

(a) Identifique os conjuntos de estados e do alfabeto.

(b) Construa a função de transição deste autômato.

(c) Utilizando a definição de função de transição estendida, mostre a sequencia de composição de transições para soletrar a entrada 001101.

Page 6: Matemática Discreta - Aula 14

6

SEGUNDA APLICAÇÃO DE FUNÇÃO PARCIAL: PROCESSAMENTO DE IMAGENS BINÁRIAS

Uma imagem binária, ou imagem em preto-e-branco, pode ser vista como uma função

discreta parcial 𝐼(𝑥, 𝑦): ℤ × ℤ ↛ {0,1}. Os valores 0 e 1 indicam, respectivamente, as cores preto e branco.

A função discreta parcial de uma imagem binária pode ser vista como uma matriz:

𝐼(𝑥, 𝑦) = [𝐼(0,0) ⋯ 𝐼(0, 𝑚)

⋮ ⋱ ⋮𝐼(𝑛, 0) ⋯ 𝐼(𝑛, 𝑚)

]

EXERCÍCIO TUTORIADO

Obtenha a função discreta parcial da imagem binária abaixo, representando-a como uma matriz:

Page 7: Matemática Discreta - Aula 14

7

A partir da matriz que representa a função parcial discreta de uma imagem binária, podemos aplicar vários operadores de Processamento de Imagens Binárias, chamados operadores morfológicos. Cada operador também é uma função parcial discreta que recebe, como entrada, uma imagem (função) e devolve outra imagem (função).

Um operador morfológico bastante importante é a dilatação, que permite “engordar” os

contornos de imagem binária através de um elemento estruturante. Formalmente, a dilatação de uma imagem binária 𝐼(𝑥, 𝑦) por um elemento estruturante 𝐵(𝑥, 𝑦) é o conjunto:

𝐼(𝑥, 𝑦)⨁𝐵(𝑥, 𝑦) = {(𝑑𝑥, 𝑑𝑦) ∈ ℤ × ℤ | 𝐵(𝑑𝑥,𝑑𝑦)(𝑥, 𝑦) ∩ 𝐼(𝑥, 𝑦) ⊆ 𝐼(𝑥, 𝑦)}

onde 𝐵(𝑑𝑥,𝑑𝑦)(𝑥, 𝑦) denota o elemento estruturante deslocado (pelo seu centro) para a

posição (𝑑𝑥, 𝑑𝑦). A figura abaixo mostra dois exemplos de efeito deste operador:

Dilatações em imagens binárias podem ser utilizadas, por exemplo, para reconstrução de letras em sistemas OCR (Optical Character Recognition), conforme mostrado abaixo:

Page 8: Matemática Discreta - Aula 14

8

Outro operador morfológico bastante importante é a erosão, que permite “emagrecer” os contornos de imagem binária através de um elemento estruturante. Formalmente, a erosão de uma imagem binária 𝐼(𝑥, 𝑦) por um elemento estruturante 𝐵(𝑥, 𝑦) é o conjunto:

𝐼(𝑥, 𝑦) ⊖ 𝐵(𝑥, 𝑦) = {(𝑑𝑥, 𝑑𝑦) ∈ ℤ × ℤ | 𝐵(𝑑𝑥,𝑑𝑦)(𝑥, 𝑦) ⊆ 𝐼(𝑥, 𝑦)}

onde 𝐵(𝑑𝑥,𝑑𝑦)(𝑥, 𝑦) denota o elemento estruturante deslocado (pelo seu centro) para a

posição (𝑑𝑥, 𝑑𝑦). A figura abaixo mostra dois exemplos de efeito deste operador:

Um operador de erosão pode ser utilizado, por exemplo, para separar objetos em uma imagem binária (hemácias, em um exame automatizado de sangue, por exemplo), conforme mostrado no exemplo abaixo.

Neste exemplo, a contagem de objetos na imagem da esquerda é difícil, pois todas as partes estão grudadas. Porém, aplicando o operador de erosão, temos a separação entre estas partes (imagem da direita) e os objetos podem, agora, ser contados.

Page 9: Matemática Discreta - Aula 14

9

EXERCÍCIOS EXTRA-CLASSE

1. Sejam 𝐴 = {𝑎}, 𝐵 = {𝑎, 𝑏} 𝑒 𝐶 = {0, 1, 2} e as relações definidas abaixo:

(a) mostre que cada uma das relações acima é uma função parcial discreta. (b) calcule o domínio, contradomínio e imagem de cada das funções (c) classifique, em função do tipo de relação, o tipo da função (injetora, sobrejetora,

bijetora,...)

2. Considere o autômato finito visto em aula e reproduzido abaixo:

(a) Mostre a sequencia de composições de transições para soletrar a palavra aaabababa

(b) Mostre a sequencia de composições de transições para soletrar a palavra abbabbbab

Page 10: Matemática Discreta - Aula 14

10

3. Definimos o fechamento de uma imagem binária por um elemento estruturante por:

𝐼(𝑥, 𝑦) ∘ 𝐵(𝑥, 𝑦) = (𝐼(𝑥, 𝑦) ⊖ 𝐵(𝑥, 𝑦))⨁𝐵(𝑥, 𝑦)

(a) Reescreva o operador de fechamento através de propriedades de conjuntos, como foi feito para a dilatação e erosão.

(b) Como você acha que o operador de fechamento pode melhorar a qualidade de uma imagem de uma digital ? No exemplo abaixo, temos um exemplo de uma imagem ruim de uma digital (esquerda) e uma imagem melhorada (direita) pelo fechamento.