inteligÊncia artificial curso: ciências da computação prof:. arimatéia júnior

19
INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

Upload: internet

Post on 18-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

INTELIGÊNCIA ARTIFICIAL

Curso: Ciências da Computação

Prof:. Arimatéia Júnior

Page 2: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

Sumário

oDefinição de Estrutura de dados;

oTipos de estrutura de dados;

oImplementação de estruturas de dados;

oExercicios;

Page 3: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

IntroduçãoProgramas consistem de duas partes:

Algoritmos;

Estrutura de dados.

Um bom Programa , na realidade, é a combinação de ambos

Page 4: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

Introdução

A escolha e a implementação de uma boa estrutura de dados são tão importantes quanto as rotinas que manipulas esses dados.

A forma como a informação é organizada e acessada é normalmente determinada pela natureza do programa.

Page 5: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

Introdução

A escolha e a implementação de uma boa estrutura de dados são tão importantes quanto as rotinas que manipulas esses dados.

A forma como a informação é organizada e acessada é normalmente determinada pela natureza do programa.

Page 6: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

Introdução

As estruturas de dados são utilizadas para realizar o armazenamento e a recuperação de dados que se deseja trabalhar.

Onde é meu

lugar??

Page 7: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

Introdução

Existem basicamente 4 tipos de mecanismos responsáveis por essas condições:

1. Fila;

2. Pilha

3. Lista;

4. Árvore binária*.

Page 8: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA

Uma fila é simplesmente uma lista linear de informações, que é acessada seguindo o principio:

o primeiro que entra e o primeiro que sai (First In First Out); FIFO

12345

Primeiro a sair

Segundo ocupa o lugar do primeiro

1

Page 9: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação Interface do tipo genérico da fila:

1. Função fila-cria:

- Aloca dinamicamente a estrutura da fila; - Inicializa seus campos e retorna seu ponteiro.

2. Funcao fila_insere e funcao fila_retira:

- Insere e retira, respectivamente, um valor real na fila.

3. Função fila_vazia: - Informa se a fila está ou não vazia.

4. Função libera_fila: - Destroi a fila, liberando toda a memória usada pela estrutura.

Page 10: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação -Fila* fila_cria (void); //cria uma fila

- void fila_insere (Fila* p, float v);//enfileira um novo elemento

- float fila_retira (Fila* p);//retira um elemento (primeiro)

- int fila_vazia (Fila* p);//verifica se a fila está vazia

- void fila_libera (Fila* p);//esvazia toda a estrutura alocada para a fila, liberando seus elementos

Page 11: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação -Fila* fila_cria (void); //cria uma fila

- void fila_insere (Fila* p, float v);//enfileira um novo elemento

- float fila_retira (Fila* p);//retira um elemento (primeiro)

- int fila_vazia (Fila* p);//verifica se a fila está vazia

- void fila_libera (Fila* p);//esvazia toda a estrutura alocada para a fila, liberando seus elementos

Page 12: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação Typedef struct fila Fila;

Implementacao de fila com vetor:

– Vetor (vet) armazena os elementos da fila.– Estruturas de fila:

#define Num_elementos 100 // numero máximo de elementos

Typedef struct fila {

int N; //número de elementos atualmente na fila int INI; //posição do próximo elemento na fila float Vet [Num_elementos ] ;

} Fila ;

Page 13: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação Agora que foi criado a estrutura da fila Inicia-se a construção da função responsável por criar a fila dentro do programa.

Fila * fila_cria (void) Fila* fila_cria (void) {

Fila* f = (Fila*) malloc (sizeof(Fila)); //alocando memoria f->n = 0; // inicializa a fila como vazia; f->ini = 0; // escolhe uma posição inicial; return f; }

Page 14: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - ImplementaçãoVisão atual da fila

Número de elementos atualmente na fila = 0

Número de elementos que a fila pode ter = 10

Inicio

Fim

Page 15: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - ImplementaçãoOs dois passos inicias na implementação foram completados.

Passo seguinte, implementar a função responsável por inserir elementos na fila.

Deve-se atentar as fatores de segurança no momento da inserção.

Verificar se ainda existe vagas na fila

Page 16: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação

void fila_insere (Fila* f, float v) { int fim; if (f-> == N) { printf (“Fila não tem espaço disponível”); exit (1); } fim = (f->ini + f->n)%N; //cálculo do índice do último elemento f->vet[fim] = v; f->n++; }

void fila_insere (Fila* f, float v) { int fim; if ( fn == Num_elementos) { printf(“Fila lotada”); exit(1); }

fim = (fini + fn); f->vet[fim] = v; fn++;}

Page 17: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação

void fila_insere (Fila* f, float v) { int fim; if (f-> == N) { printf (“Fila não tem espaço disponível”); exit (1); } fim = (f->ini + f->n)%N; //cálculo do índice do último elemento f->vet[fim] = v; f->n++; }

float fila_retira (Fila* f); { float v; if ( fila_vazia(f)) { printf(“Fila vazia”); exit(1); }

v = fvet[fini]; fini = fini+1; fn--;}

Page 18: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação

int fila_vazia (Fila* f) {

return (f->n == 0);

}

Implementação da função fila_vazia

Page 19: INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

FILA - Implementação

Void libera_fila (Fila* f) {

free(f);

}

Por fim, temos a função responsável pela liberação da memória alocada;