Ciencia da Computacao
WCienciaComputacao
Ciencia Computacao
Processamento de ffucoes, Reconhecimento
de Linguagens e Solucionabilidade de problemas, Organizacao e Busca da
informacao, Compreensao das Imagens, Raciocionio e Robotica
link
WCienciaComputacao.xml
referencia
Problema
<img alt="" src="WUniverso-de-problemas.gif"><br>
<img alt="" src="WReducaoRecursao.gif">
Conjunto
É uma estrutura que agrupa objetos e
constitui uma base para construir estruturas mais complexas. É uma
coleção, sem repetição e sem qualquer ordenação, de objetos
denominados elementos. Elemento pode ser um objeto concreto ou
abstrato. <br>
<br>
As relalações entre elementos e conjuntos são: <span style="font-weight: bold;">persistencia</span>, <span style="font-weight: bold;">sub
conjuntos</span>, <span style="font-weight: bold;">igualdade de
conjuntos</span>.<br>
<br>
As operações de conjuntos são: <span style="font-weight: bold;">união</span>
(+), <span style="font-weight: bold;">interseção</span> (*), <span style="font-weight: bold;">complemento</span>
(não),
diferença (-) (derivada da da composição complemento e interseção),<span style="font-weight: bold;">
conjunto de partes</span> e <span style="font-weight: bold;">produto
cartesiano</span>.<br>
<br>
<span style="font-weight: bold;">União</span><br>
<br>
<img alt="" src="WUniao.gif"><br>
<span style="font-weight: bold;">Interseção</span><br>
<br>
<img alt="" src="WIntersecao.gif"><br>
<br>
A <span style="font-weight: bold;">relação</span> sobre dois
conjuntos
A e B é definida como um <span style="font-weight: bold;">subconjunto</span>
de A x B.<br>
<br>
Uma <span style="font-weight: bold;">função é</span> um mapeamento
que
associa elementos de um conjunto denominado <span style="font-weight: bold;">dominio</span> e elementos de outro
conjunto chamado de <span style="font-weight: bold;">contradominio</span>.
Algoritmo
É
uma lista finita de instruções que tem por objetivo resolver um
problema.<br>
<br>
Caracteristicas: <br>
1. Solução de um problema<br>
2. Tem descrição finita e não ambigua<br>
3. É intuitivo<br>
4. Deve consistir de passos discretos, executáveis
mecanicamente em um tempo finito.<br>
<br>
Ex.: Problema:<br>
Mostar o fatorial de um
número de 1 a 9<br>
<br>
Soluçãoo:<br>
<pre id="line1">fatorial = 1;<br> Para numero = 1 até 9 com incremento de 1 for (i=1; i<10; i++ ){<br> fatorial = fatorial * numero;<br> mostrar número, "!=",fatorial, branco</pre>
Máquinas
O objetivo de uma máquina é suprir
todas
as
informações para que a computação de um programa possa ser
descrita.
Portanto cabe a máquina suprir o significado (dar semantica) aos
identificadores das operações e testes.<br>
Assim cada identificador de operação e teste interpretado pela
máquina
deve ser associado a uma transformação na estrutura de memória e a
uma
funçãoo verdade, respectivamente. Nore-se que:<br>
<ul>
<li>nem todo o identificador de operaçãoo ou teste é
definido em uma máquina</li>
<li>para cada identificador de operação ou teste
definido em uma máquina, existe sómente uma função associada.<br>
</li>
</ul>
Adicionalmente, a máquina deve descrever o armazenamento ou
recuperaaçãoo
de informaações na estrutura de memória.<br>
<br>
Os computadores atuais, seguem a máquina de Turing (1950) . Usam
linguagem recursivamente enumeravel e sensivel ao contexto.<br>
O ponto de partida de Turing foi analisar a situaação na qual uma
pessoa, equipada com um instrumento de escrita e um apagador , realiza
cálculos em uma folha de papel , organizada em quadrados.O trabalho da
pessoa é :<br>
<ul>
<li>ler um simbolo de um quadrado;</li>
<li>alterar um simbolo em um quadrado;</li>
<li>mover os olhos para outro quadrado;</li>
</ul>
Quando é encontrada alguma representação que satisfaça para a
resposta
desejada, a pessoa termina os cálculos.<br>
<br>
A maquina é constituida de 3 partes:<br>
<ul>
<li>Fita. Usada como dispositivo de entrada, saida e
memória de trabalho</li>
<li>Unidade de controle. Reflete o estado corrente da
máquina (numero finito e predefinido de estados). Posui uma unidade de
leitura e gravação (cabeça da fita), naqual acessa uma cálcula da
fita
de cada vez e semovimenta da esquerda para direita.</li>
<li>Programa, Função Programa ou Função de Transição.
Função que define o estado da máquina e comanda as leituras dos
simbolos, as gravações dos simbolos e o sentido de movimento da
cabeça.</li>
</ul>
A fita é finita a esquerda e infinita a direita. cada calculo armazena
um
simbolo.<br>
Os simbolos podem:<br>
<ul>
<li>pertencer ao alfabeto de entrada;</li>
<li>pertencer ao alfabeto auxiliar;</li>
<li>ser branco; </li>
<li>ser marcador de inicio de fita;</li>
<li><br>
</li>
</ul>
Tem o
seguinte desenho:<br>
<img alt="" src="WMaquinaTuring.gif"><br>
Referencia
<ol><li>Diverio,Tiaraj Asmuz . Teoria da
computação. Maquinas Universais e computabilidade. 2008,1ed,Bookman.<span style="font-size: 11pt; line-height: 115%;" arial="" ,="" sans-serif="" ;="" lang="PT"><span style="font-style: italic;"></span><em><span style="" arial="" ,="" sans-serif="" ;=""></span></em></span></li><li>Ramos, Marcus Vinicius Midena. Linguagens
Formais. teoria, modelagem e implementação. 2009, Bookman.</li><li>Gersting, Judith L. Fundamentos matemáticos para a Ciência da
computação. 2003, 5a ed. , LTC.</li><li>Brookshear, Clenn. Ciência da Computação Uma visão
abrangente.
2003, 7a. ed. ,Bookman.</li><li>Sebesta, Robert W. Conceitos de Linguagens de programaação.
2002,
5a. ed. , Bookman.</li></ol>
Maqinas Universais
<span style="font-weight: bold;">Máquinas Deterministicas
ou não deterministicas sem pilha<br></span>Máquinas Universais - algoritimos que sempre param
Máquinas Não Deterministicas com uma pilha
A máquina pode tentar
diversos caminhos alternativos para uma mesma situação<br><br>menor poder computacional
de <span style="font-weight: bold;">Máquinas Não
Deterministicas
com uma pilha</span> ----------------> <span style="font-weight: bold;">Máquinas Deterministicas
ou não deterministicas sem pilha</span><br><br>O modelo mais utilizado como formalização de algoritimo é a máquina
de
Turing, proposta em 1936 (20 anos antes do primeiro computador
digital). Ã um mecanismo simples em que uma pessoa realiza calculos,
usando um instrumento de escrita e um apagador.<br>
O modelo formal é baseado em uma fita (usada para entrada, saida e
rascunho) uma unidade de controle e um programa. <br>
Na verdade a maquina de Touring é um programa para a maquina
Universal..<br>
Os seguintes modelos são equivalentes a maquina de Turing:<br>
<ul><li>Maquina Norma. Uma máquina registradora, sendo
que o conjunto de registradores é infinito.</li><li>Máquina de Post. Baseada na estrutura de dados
do tipo fila (o primeiro dado aramazenado é o primero a ser recuperado.</li><li>Máquinas de Pilhas. Baseado na estrutura de
dados do tipo pilha (o ultimo dado armazenado éo primeiro a ser
recuperado), onde são necessários pelo menos duas pilhas para simular
o
mesmo poder computacional de uma fita ou fila. </li></ul>
Linguagens
<span style="font-weight: bold;">Máquinas Deterministicas
ou não deterministicas sem pilha<br></span>Ã um conjunto, finito ou infinito, de
cadeias de comprimento finito, formadas pela concatenação de lementos
de um alfabeto finito e não vazio. Linguagens são automatos
ou seja maquinas abstratas.<br>
Os mecanismos de geração formal de linguagem comumente usados para
descrever a léxica, sintaxe, semantica e bolocs de construsão
chamados de gramatica.<br><br><img alt="" src="GrafoLinguagem.gif">
Linguagens
<br><ul style="font-weight: bold;"><li>Sintaxe e Semantica<span style="font-weight: normal;"><br>Sintaxe
éa forma de suas expressões de suas instruções e de suas
unidades de
programa.</span><span style="font-weight: normal;"><br>Semantica é o significado
destes
<span style="font-weight: bold;">três.</span></span><br style="font-weight: normal;">
<br style="font-weight: normal;">
<span style="font-weight: normal;">Ex.: sintaxe do if
if
(<expr>) <instrução> </span><br style="font-weight: normal;">
<span style="font-weight: normal;">
semântica do if
se o valor da expressãofor verdadeiro, a instrução será
selecionada</span><br style="font-weight: normal;">
<br style="font-weight: normal;">
<span style="font-weight: normal;">Método mais comum para
descrever
a sintaxe: a gramatica livre de
contexto (também conhecida como Forma de Backus-Naur BNF).</span><br style="font-weight: normal;">
<span style="font-weight: normal;">A gramática de atributos pode
ser usada para descrever tanto a sintaxe
como a semantica estatica das linguagens de programaa<span style="font-weight: bold;">ção</span></span><br>
<span style="font-weight: normal;">Métodos formais para descrever
a
semantica - operacional,
axiomática e denotacional.</span><br>
<br>
</li><li>Hierarquia de linguagens segundo Chomsky<span style="font-weight: bold;">Linguagem
enumeraveis
recursivamente<br></span><span style="font-weight: normal;"> Correspondem a classe
das maquinas universais. Portanto podem ser
recnhecidas mecanicamente.</span></li><li>Linguagem
enumeraveis
recursivamente</li><li>São todas as
linguagens que podem ser reconhecidas
mecanicamente e para quais sempre existe um algoritimo de
reconhecimento que sempre para qualquer entrada. Inclui a grande
maioria das linguagens aplicadas. Podem ser tanto ineficientes tanto em
termos de processamento como recursos de memória <br></li><li><span style="font-weight: bold;">Linguagens
livres de contexto</span> <br><span style="font-weight: normal;">Incluem
linguagens de
programação como Algol e Pascal. Os melhoores algoritimos de
reconhecimento reconhecidos possuem tempo de processamento proporcional
ao tamnhao da entrada elevado ao cubo.</span><span style="text-decoration: underline; font-weight: normal;"></span><br>O
tempo de
reconhecimento de uma palavra é diretamente proporcional ao dobro do
comprimento da entrada <br></li><li> <span style="font-weight: normal;"></span>Linguagens
livres do contexto deterministico<br>Editores
de textos e protocolos de comunicação. O tempo de reconhecimento de
uma
palavra é diretamente proporcional ao comprimento da entrada. </li><li><span style="font-weight: bold;">Linguagens
livres de contexto </span><br>Editores
de textos e protocolos de comunicacãoo. O tempo de reconhecimento de
uma
palavra é diretamente proporcional ao comprimento da entrada. Incluem
linguagens de
programação como Algol e Pascal. Os melhoores algoritimos de
reconhecimento reconhecidos possuem tempo de processamento proporcional
ao tamnhao da entrada elevado ao cubo.<span style="font-weight: bold; text-decoration: underline;"></span><span style="font-weight: bold; text-decoration: underline;"></span> </li><li><span style="font-weight: bold;">Linguagens
Recursivas</span> <br>mais restritas de <span style="font-weight: bold;">Linguagem enumeraveis
recursivamente</span> para<span style="font-weight: bold;"> </span><span style="font-weight: bold;">Linguagens regulares</span></li></ul>
Automatoas finitos
<br>É
uma máquina que possue um número finito de estados.
Tem
a capacidade de resolver um problema por ele mesmo.
Otimização
Maquina
com menor número de estado que desempenha amesma função (algoritimo
coloring)<br>
<br>
Ferramentas para otimização podem ser: Tabela de decisões, máquinas
de
estado e grafos e Diagramas de Karnugh<br>
<a href="http://pt.wikipedia.org/wiki/Mapa_de_Karnaugh" target="_blank">http://pt.wikipedia.org/wiki/Mapa_de_Karnaugh</a><br>
<a href="http://www-ihs.theoinf.tu-ilmenau.de/%7Esane/projekte/karnaugh/embed_karnaugh.html" target="_blank">http://www-ihs.theoinf.tu-ilmenau.de/~sane/projekte/karnaugh/embed_karnaugh.html</a><br>
<br>
<ul><li><span style="font-weight: bold;">Tabela de decisões</span><br>
São
automatas constituidos de 2 partes:<br>
logica combinacional ==> estados de
transição<br>Lógica é o estudo dos principios e métodos usados para destinguir
sentençasverdadeiras e sentenças falsas.<br>
<br>
Proposiçãouma construção (sentença, frase, pensamento) a que
se pode
atribuir juizo. O tipo de juizo é verdadeiro ou falso.<br>
<br>
</li><li><span style="font-weight: bold;">Maquina de estado</span><br>São sistemas alggebricos que modelam um comportamento de aplicativos,
projeto de hardware de sistemas digitais, engenharia de software, no
estudo da computação e das linguagens.<br>
Finalidade:<br>
tradutores ou atomatoas finitos com saida<br>
reconhecedores de linguagem <br>
Elementos:<br>
automata finito - saida limitada a ligica binária (aceita
/ rejeita). gera uma palavra de saida.<br>
saidas - (de transisãoo - maquina de mealy) (de estado -
maquina de Moore) - não pode ser lida ou seja não pode ser usada
como memoria auxiliar.<br>
estado - armazena
informações sobre o passado. Armazena as mudanças desde a entrada
num
estado atéo presente momento.
representado por um numero circulado.<br>
transições - indica uma mudança de estado. Á descrita
por
uma condição<br>
ações - éa descrição de uma atividade que deve ser
realizada em determinado momento. Ações de entrada (no estado) executa
a ação quando
entra no estado. A ação de saida : executa quando sai do estado.. A ação de
transição: executa quando
ocorre uma determinda transição<br>
diagrama de estado - representa uma máquina de estado
finita.<br>
Processo:<br>
determinação do grafico de estado<br>
tabela de estado <br>
eliminação de estados equivalentes<br>
designação de estados auxiliares<br>
mapas de transição (tabelas de estado e de estados
auxiliares)<br>
mapas de entrada (mapas de transição e das tabelas de
entrada)<br>
mapa de saida (estados auxiliares e tabela de estado)<br>
<br>
</li><li><span style="font-weight: bold;">Grafos</span><br>É um conjunto não vazio de n's (vertices) e um conjunto de arcos
(arestas) tais que cada arco conecta dois sistemas algébricos </li></ul>
<br>