• Nenhum resultado encontrado

Determinação de partições cromáticas

No documento plano de ensino - CCOMP/UFSJ - O Curso (páginas 48-65)

PROGRAMAÇÃO SEMANAL DA DISCIPLINA EM REGIME DE ENSINO REMOTO EMERGENCIAL Planejamento Semanal

10.2. Determinação de partições cromáticas

a) Heurística para particionamento de coloração sequencial b) Heurística para particionamento de coloração por classe

Metodologia de Ensino

A cada semana será realizada uma aula síncrona (2h), às terças-feiras, e uma aula assíncrona (4h), às quintas-feiras. Na aula síncrona, será feita uma discussão inicial sobre um tópico do conteúdo programático e será lançada uma atividade, que deverá ser desenvolvida pelos alunos na aula assíncrona. Na próxima aula síncrona, será feita uma segunda discussão sobre a atividade desenvolvida na última aula assíncrona. As aulas seguirão o seguinte calendário:

Semana Conteúdo Tipo de aula

Semana 1 Introdução Síncrona (2h)

Atividade de caracterização (Atividade 0) Assíncrona (4h)

Semana 2 Discussão sobre caracterização / Lançamento da atividade sobre conexidade Síncrona (2h)

Atividade sobre conexidade (Atividade 1) Assíncrona (4h)

Semana 3 Discusão sobre conexidade / Lançamento de atividade sobre caminho Síncrona (2h)

Atividade sobre caminho (Atividade 2) Assíncrona (4h)

Semana 4 Discussão sobre caminho / Lançamento de atividade sobre distância Síncrona (2h)

Atividade sobre distância (Atividade 3) Assíncrona (4h)

Semana 5 Discussão sobre caminho / Lançamento de atividade sobre PERT Síncrona (2h)

Atividade sobre PERT (Atividade 4) Assíncrona (4h)

Semana 6 Discussão sobre PERT / Lançamento de atividade sobre problemas Hamiltonianos Síncrona (2h)

Atividade sobre problemas Hamiltonianos (Atividade 5) Assíncrona (4h)

Semana 7 Discussão sobre problemas Hamiltonianos / Lançamento de atividade sobre problemas Eulerianos Síncrona (2h)

Atividade sobre problemas Eulerianos (Atividade 6) Assíncrona (4h)

Semana 8 Discussão sobre problemas Eulerianos / Lançamento de atividade sobre aplicação de problemas Eulerianos Síncrona (2h)

Atividade sobre alicação de problemas Eulerianos (Atividade 7) Assíncrona (4h)

Semana 9 Discussão sobre aplicação de problemas Eulerianos / Lançamento de atividade sobre Árvore Geradora Mínima Síncrona (2h)

Atividade sobre Árvore Geradora Mínima (Atividade 8) Assíncrona (4h)

Semana 10 Discussão sobre AGM / Lançamento de atividade sobre Fluxo Síncrona (2h)

Atividade sobre fluxo (Atividade 9) Assíncrona (4h)

Semana 11 Discussão sobre fluxo / Lançamento de atividade sobre Subconjuntos 1 Síncrona (2h)

Atividade sobre subconjuntos 1 (Atividade 10) Assíncrona (4h)

Semana 12 Discussão sobre subconjuntos 1 / Lançamento de atividade sobre Subconjuntos 2 Síncrona (2h)

Atividade sobre subconjuntos 2 (Atividade 11) Assíncrona (4h)

As aulas síncronas serão realizadas através do software Google Meet. Para as atividades, serão necessários softwares para desenvolvimento de programas de computador em qualquer linguagem (preferencialmente Python ou C) com bibliotecas para manipulação de grafos (preferencialmente igraph, networkx ou graph-tools) e bibliotecas de visualização (preferencialmente matplotlib). Todos os softwares necessários para o desenvolvimento das atividades estão livremente disponíveis na web. O atendimento aos alunos será realizado às sextas-feiras, das 9h às 12h, com marcaçao prévia de horário.

Controle de frequência e critérios de avaliação

A frequência dos alunos será controlada através das entregas das atividades realizadas, no prazo determinado no lançamento.

As avaliações serão feitas sobre as Atividades 1 a 11, sendo que o aluno poderá optar por fazer apenas 10. A cada uma das atividades corresponderá até 10% do valor total da nota.

Bibliografia Básica

1. P. O. Boaventura NETO, Grafos: Teoria, Modelos, Algoritmos, Edgard Blucher, 2006.

2. J. L. SZWARCFITER, Grafos e Algoritmos Computacionais, Campus, 1984.

3. R. DIESTEL, Graph Theory, Springer, 2006.

Bibliografia Complementar

1. P. O. Boaventura NETO, Grafos: Introdução e Prática, Edgard Blucher, 2009.

2. M. E. J. NEWMAN, Networks: An Introduction, Oxford University Press, 2010.

3. T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN, Algoritmos, Teoria e Prática, Campus, 2002.

4. BARRAT, Graph Theory and Complex Networks: An Introduction, Cambridge University Press, 2008.

5. S. HAVLIN, R. COHEN, Complex Networks: Structure, Robustness and Function, Cambridge University Press, 2010.

___________________________________________

Docente Responsável

Aprovado pelo Colegiado em

____________________________________

Coordenador

COORDENADORIA DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PLANO DE ENSINO

Disciplina: Lógica Aplicada à Computação Período: 4 Currículo: 2014

Docente: Edimilson Batista dos Santos Unidade Acadêmica: DCOMP

Pré-requisito: Matemática Discreta Co-requisito: não há

C.H. Total: 72ha/66h Teórica: 72ha/66h Prática: 0ha/0h Grau: Bacharelado Ano: 2020 Semestre: 2

Ementa

Lógica proposicional: sintaxe e semântica. Sistemas dedutivos para lógica proposicional. BDDs (Binary Decision Diagrams). Lógica de predicados: sintaxe e semântica. Sistemas dedutivos para lógica de predicados. Programação em lógica. Semântica e verificação de programas. Especificação formal em Z. Lógica temporal. Verificação por model checking.

Objetivos

Analisar estruturas e argumentos usando a lógica proposicional. Trabalhar a teoria de conjuntos via a lógica proposicional e de predicados. Verificar correção de programas utilizando lógica aplicada e model checking.

Conteúdo Programático

1 Introdução à Lógica Proposicional

1.1 Formas de representação do conhecimento.

1.2 Sintaxe da lógica proposicional 1.3 Semântica da lógica proposicional 1.4 Tabela-Verdade, Satisfazibilidade 1 Sistemas dedutivos para lógica proposicional

2.1 Inferência dedutiva e indutiva

2.2 Métodos de inferência: Tableaux semânticos 2.3 Métodos de inferência: Resolução

1 Introdução à Lógica de Predicados 3.1 Sintaxe da lógica de predicados 3.2 Semântica da lógica de predicados.

1 Sistemas dedutivos para lógica de predicados 4.1 Regras de inferência e deduções 4.2 Unificação

4.3 Resolução 1 Programação lógica

5.1 Introdução a Programação Lógica 5.2 Linguagem PROLOG

1 Semântica e verificação de programas 6.1 Especificação formal em Z 6.2 Verificação por model checking 1 Lógica temporal

Metodologia de Ensino

- Exposição oral;

- Aulas remotas (síncronas e assíncronas) de acordo com o planejamento no anexo I, usando ferramentas de vídeo conferência, como Google Meet e o portal didático da UFSJ;

- Estudos dirigidos.

Critérios de Avaliação

1ª Avaliação Teórica: 20 pontos 2ª Avaliação Teórica: 20 pontos 4 Listas de Exercícios: 20 pontos

1 Trabalho prático: 20 pontos Avaliação de Estudos Dirigidos: 20 pontos ______________

Total 100 pontos

O registro das frequências se dará conforme o Artigo 11 da RESOLUÇÃO Nº 007/2020/CONEP:

Art. 11. O registro da frequência do discente se dará por meio do cumprimento das atividades propostas, e não pela presença durante as atividades síncronas, sendo que o discente que não concluir 75% das atividades propostas será reprovado por infrequência.

Bibliografia Básica

1. DA SILVA, Flávio S.C., Finger, M., de Melo, Ana C.V. Lógica para Computação, Thomson, 2006.

2. RUSSEL, S., Norvig, P. Inteligência Artificial. Tradução da 2ª ed. Rio de Janeiro: Elsevier, 2004.

3.

RICH, Elaine, e Knight, Kevin, Inteligência Artificial. Segunda Edição. Makron Books/McGrawHill, 1994.

Bibliografia Complementar

1. M. CASANOVA, F. A. C. Giorno, A. L. Furtado, Programação em Lógica e a Linguagem Prolog, Edgard Blucher, 1987.

2. J. H. GALLIER, Logic for Computer Science: Foundation of Automatic Theorem Proving, John Wiley & Sons, 1986.

3. M. BEN-ARI, Mathematical Logic for Computer Science, Springer, 2003.

4. ROSEN, K. H., Discrete Mathematics and its Approach - McGraw-Hill 2007 6th edition.

5. SOUZA, João Nunes de. Lógica para Ciência da Computação. 2. ed. Rio de Janeiro: Elsevier, 2008.

___________________________________________

Docente Responsável

Aprovado pelo Colegiado em

____________________________________

Coordenador

Anexo I Planejamento de aulas

Dia Aula S / A Assunto

       

26/1 1 S Apresentação da Disciplina; Logica Proposicional: Sintaxe e Semântica 27/1 2 A Satisfabilidade, Tautologia, Contradição e Equivalência Lógica 28/1 3 A Exercícios de fixação

2/2 4 S Consequência Lógica e Dedução 3/2 5 A Sistemas Dedutivos: Tableaux Analítico 4/2 6 A Exercícios de fixação

9/2 7 S Formas Normais (FNN, FNC e FND)

10/2 8 A Sistemas Dedutivos: Inferência por Resolução 11/2 9 A Exercícios de fixação

18/2 10 A Exercícios de fixação 23/2 11 S Revisão para Prova 1 24/2 12 A Prova 1

25/2 13 A O Método DPLL

2/3 14 S Lógica de Predicados: Sintaxe 3/3 15 A Exercícios de fixação

4/3 16 A Exercícios de fixação

9/3 17 S Lógica de Predicados: Semântica

10/3 18 A Satisfabilidade, ..., Equivalência Lógica, Consequência Lógica, Dedução 11/3 19 A Exercícios de fixação

16/3 20 S Substituição e Unificação 17/3 21 A Inferência por Resolução 18/3 22 A Exercícios de fixação 23/3 23 S Revisão para Prova 2 24/3 24 A Prova 2

25/3 25 A Programação Lógica: Prolog 30/3 26 S Prolog

31/3 27 A Trabalho de Prolog 1/4 28 A Trabalho de Prolog 5/4 29 A Trabalho de Prolog 6/4 30 A Trabalho de Prolog

7/4 31 A Estudo Dirigido: Especificação e Verificação de Programas 8/4 32 A Estudo Dirigido: Especificação e Verificação de Programas 9/4 33 A Estudo Dirigido: Especificação Formal em Z e Model Checking 12/4 34 A Estudo Dirigido: Especificação Formal em Z e Model Checking 13/4 35 A Estudo Dirigido: Lógica Temporal

15/4 36 A Estudo Dirigido: Lógica Temporal S: Síncrona / A: Assíncrona

Horário de atendimento aos alunos: Segunda, de 8 às 10 hs.

COORDENADORIA DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PLANO DE ENSINO

Disciplina: Programação Orientada a Objetos Período: 4 Currículo: 2014

Docente: Elder José Reioli Cirilo Unidade Acadêmica: DCOMP

Pré-requisito: Algoritmos e Estrutura de Dados II Co-requisito: não há

C.H. Total: 72ha/66h Teórica: 54ha/49,5h Prática: 18ha/16,5h Grau: Bacharelado Ano: 2020 Semestre: 2

Ementa

Histórico e cenário atual da POO. Programação estruturada e POO. Abstração. Tipos Abstratos de Dados. Objetos. Classes. Atributos.

Métodos. Sobrecarga e Sobrescrita. Introdução à UML. Encapsulamento. Hierarquia de Classes. Herança. Especialização/Generalização.

Herança múltipla/Interface. Polimorfismo. Associação Dinâmica. Tratamento de Exceções. Estudo das linguagens Java e C++.

Objetivos

Capacitar o aluno a utilizar o paradigma de programação orientada a objetos para resolução de problemas computacionais.

Conteúdo Programático

1. Conceitos de programação orientada a objetos

• Objetos e classes

• Atributos e métodos

• Atributos e métodos de classe e de instância

• Herança, polimorfismo e encapsulamento

• Sobrecarga de métodos e sobrescrita

• Interfaces

2. Introdução a programação orientada a objetos

• Estrutura de dados

• Tratamento de exceções

• Polimorfismo Paramétrico 3. Introdução a UML

• Diagrama de classes

• Relacionamento entre classes (dependência, associação, composição, agregação)

• Tradução do diagrama em código orientado a objetos 4. Introdução aos Padrões de Projeto Orientados a Objetos

• Histórico

• Padrões de Criação, Estruturais e Comportamentais 5. Boas práticas de Programação Orientada a Objetos

• Bed smells e Refactoring

Metodologia de Ensino

A disciplina será ministrada por meio de aulas expositivas remotas assíncronas. Encontros de apoio a resolução de dúvidas serão conduzidos de modo síncrono via GoogleMeet. Os conteúdos da disciplina como vídeos e slides do conteúdo programático serão disponibilizados para os alunos por meio da plataforma CampusVirtual da UFSJ. As entregas dos exercícios previstos se darão via Github e/ou CampusVirtual. Os horários de atendimento serão programados para todas terça-feira das 09:00 às 12:00 (via GoogleMeet): os horários de atendimento serão dedicados ao esclarecimento de possíveis dúvidas e resolução de exercícios.

Critérios de Avaliação

A avaliação se dará por meio de 6 (seis) listas de exercícios. A frequência dos alunos estará vinculada à entrega das listas de exercícios lista abaixo. Avaliação substitutiva: Lista de exercícios de exercícios relativa a todo o conteúdo programático. O aluno que não entregar no mínimo 75% das atividades propostas será considerado infrequente.

Lista 1 - Programação orientada a objetos (objetos, classes, atributos e métodos) – 10 pontos

Lista 2 - Programação orientada a objetos (herança, polimorfismo, sobrecarga de métodos, encapsulamento e interfaces) – 30 pontos Lista 3 - Programação orientada a objetos (estrutura de dados, tratamento de exceção e polimorfismo paramétrico) - 20 pontos Lista 4 – UML – 20 pontos

Lista 5 – Padrões de Projeto – 10 pontos

Lista 6 – Boas práticas de programação – 10 pontos

Bibliografia Básica

1.

B. MEYER, Object-oriented software construction, Prentice-Hall, 1997.GAMMA, Erich; et al. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2008. 364 p.

2.

BARNES, David. J.; KÖLLING, Michael. Programação orientada a objetos com Java. 4ed. São Paulo: Prentice Hall, 2009.

Bibliografia Complementar

1.

B. STROUSTRUP, The C++ Programming Language, Addison-Wesley, 1997.

2.

FOWLER, M., Refatoração: Aperfeiçoando o Projeto de Código Existente 1a Ed. Bookman 2004.

3.

FREEMAN, E.; FREEMAN, E. Use a Cabeça!: Padrões de Projetos (Design Patterns) 2a Ed. Alta Books 2007

4.

TED Husted, Struts em Ação, 1a Ed. Ciência Moderna 2004.

5.

CHRISTIAN Bauer and Gavin King. Java Persistence with Hibernate. 1a Ed., Manning Publications, 2006.

___________________________________________

Docente Responsável

Aprovado pelo Colegiado em

___________________________________________

Coordenador

Aula Conteúdo

1 Introdução a disciplina

2 Introdução a programação orientada a objetos 3 Objetos, classes, atributos e métodos 4 Exercícios – Lista 1

5 Encapsulamento, herança e polimorfismo 6 Sabrecar e sobrescrita de método e interfaces 7 Exercícios – Lista 2

8 Estrutura de Dados 9 Tratamento de Exceção 10 Polimorfismo Paramétrico 11 Exercícios – Lista 3 12 UML – Diagrama de Classes

13 UML – Tradução em código orientado a objetos 14 Exercícios – Lista 4

15 Padrões de Projeto Orientados a Objetos – Histórico e conceitos básicos 16 Padrões de Criação

17 Padrões Estruturais 17 Padrões Comportamentais 18 Exercícios – Lista 5 20 Boas práticas – Bad Smell 21 Boas práticas – Refactoring 22 Exercícios – Lista 6 23 Avaliação substitutiva 24 Fechamento do Semestre

COORDENADORIA DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PLANO DE ENSINO

Disciplina: Introdução à Engenharia de Software Período: 5 Currículo: 2014

Docente: Unidade Acadêmica: DCOMP

Pré-requisito: Programação Orientada a Objetos Co-requisito: não há

C.H. Total: 72ha/66h Teórica: 54ha/49,5h Prática: 18ha/16,5h Grau: Bacharelado Ano: 2020 Semestre: PE2 Ementa

Introdução à Engenharia de Software: Conceitos e definições. O ciclo de vida do Software. Processos de Desenvolvimento de Software.

Especificação, desenho e implementação. Validação e verificação. Gestão de Projetos de Software. UML. Qualidade de Software.

Introdução a Processos Ágeis.

Objetivos

Apresentar ao aluno os fundamentos do processo de concepção, desenvolvimento, implementação e manutenção de produtos de software e os procedimentos, ferramentas e documentos relacionados a este processo.

Conteúdo Programático

1. Motivação e Conceitos Fundamentais, Desenvolvimento de Software e Evolução de Software.

2. Processos de Software. Modelos de Processos Gerais. Processos de Software que Lidam com Mudanças. Métodos Ágeis. Processo Unificado.

3. Engenharia de Requisitos. Requisitos do Usuário, Requisitos do Sistema, Requisitos Funcionais e Requisitos Não Funcionais.

Análise orientada a objetos - Diagrama de Casos de Uso e Diagrama Conceitual.

4. Projeto de Software. Projeto Orientado a Objetos - Diagrama de Classes, Diagrama de Sequências e Diagrama de Comunicação.

Desenvolvimento Modular de Software.

5. Noções de Arquitetura de Software. Reutilização de Software

6. Fundamentos de Teste de Software, Verificação, Validação e Inspeção de Software.

7. Evolução de Software e Dinâmica de Evolução: Leis de Lehman. Manutenção de Software, Reengenharia.

8. Gerenciamento de Configuração e Mudança 9. Conceitos Fundamentais de Qualidade de Software.

Metodologia de Ensino - 2h semanais de aulas síncronas: segundas às 15:15h

- Demais atividades assíncronas: aulas e atividades via Portal Didático

- Uso das ferramentas MockFlow (https://mockflow.com), StarUML (https://staruml.io/) e Eclipse (https://www.eclipse.org/).

- Atendimento online com agendamento prévio por e-mail: sextas-feiras das 9h às 12h.

Critérios de Avaliação

A avaliação do aprendizado será realizada por meio de atividades assíncronas via Portal Didático: 2 Trabalhos Práticos, na qual cada um valerá 32% da nota final e atividades dadas ao longo da disciplina que totalizarão 36% da nota final. Em caso de nota final menor que 6.0, o aluno poderá realizar uma avaliação assíncrona teórica abrangendo todo o conteúdo que irá substituir a nota de um trabalho prático. As faltas serão contabilizadas por meio de atividades dadas ao longo da disciplina, sendo uma atividade por semana, totalizando 12 atividades. O aluno precisa entregar no mínimo 75% (9 atividades) para ser considerado frequente.

Bibliografia Básica 1. SOMMERVILLE, Engenharia de Software, Pearson, 2003.

2. R. PRESSMAN. Engenharia de Software. Pearson Education, 2004.

3. W. de Pádua Paula FILHO, Engenharia de Software Fundamentos, Métodos e Padrões, 3a. Ed., LTC, 2009.

Bibliografia Complementar 1. S. PFLEEGER, Engenharia de Software Teoria e Prática, Makron Books, 2004.

2. SCHWABER, KEN Agile Project Management With Scrum 1a Ed. Microsoft Press 2004.

3. TELES, Vinícius Manhães Extreme programming: aprenda como encantar seus usuários desenvolvendo software com agilidade e alta qualidade 1a Ed. Novatec 2004.

4. Jose Carlos MALDONADO, Marcio Eduardo DELAMARO, Mario JINO, Introdução ao Teste de Software, 1a edição Campus 2007.

5. FOWLER, Martin. Patterns of enterprise application architecture. Boston: Pearson, 2003. 533 p.

___________________________________________

Docente Responsável

Aprovado pelo Colegiado em

____________________________________

Coordenador

COORDENADORIA DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PLANO DE ENSINO

Disciplina: Inteligência Artificial Período: 5 Currículo: 2014

Docente: Diego Roberto Colombo Dias Unidade Acadêmica: DCOMP

Pré-requisito:

Algoritmos e Estrutura de Dados III Lógica Aplicada à Computação

Co-requisito:

não há

C.H. Total: 72ha/66h Teórica: 72ha/66h Prática: 0ha/0h Grau: Bacharelado Ano: 2020 Semestre: PE2

Ementa

Representação do conhecimento. Métodos de resolução de problemas. Estratégias de buscas. Heurísticas e metaheurísticas.

Aprendizado de Máquina: conceitos, instâncias e atributos; Pré-processamento; Técnicas de AM supervisionadas e não supervisionadas.

Introdução às Redes Neurais. Algoritmos Genéticos. Multiclassificadores (ensembles): boosting, bagging, stacking, outros. Noções de Redes bayesianas e Lógica fuzzy.

Objetivos

Apresentar ao aluno conceitos, técnicas e métodos associados à Inteligência Artificial. Dar condições para que o aluno compreenda a importância da Inteligência Artificial para resolução de problemas não computáveis e não viáveis.

Conteúdo Programático

1. Introdução

 O que é IA?

 Histórico

 Linhas de IA

 Domínios de Aplicações de IA 2. Resolução de Problemas

 Métodos de Resolução de Problemas

 Busca em Espaço de Estados

 Árvores e Grafos de Problemas

 Métodos de Busca

 Busca Heurística 3. Representação do Conhecimento

 Considerações sobre a representação do conhecimento

 Linguagens de representação do conhecimento

 Lógica

 Redes Semânticas

 Frames

 Orientação a Objetos

 Ontologias

 Representação do Conhecimento Incerto

 Redes Bayesianas

 Lógica Fuzzy 4. Aprendizado de Máquina

 Considerações Iniciais e Problematização

 Aprendizado Indutivo de Máquina

 Técnicas de Aprendizado de Máquina supervisionadas e não supervisionadas 5. Redes Neurais Artificiais

 Histórico das Redes Neurais

 Modelos Básicos de Redes Neurais

 Perceptron

 Algoritmo de Retropropagação (backpropagation) 6. Multiclassificadores (ensembles)

 Boosting

 Bagging

 Stacking 7. Algoritmos Genéticos

Metodologia de Ensino

Aulas assíncronas, com disponibilização de vídeos e slides, no portal didático da UFSJ.

Encontro síncrono através do Google Meet às quintas, das 13:15 às 15:05, para dúvidas e discussão do conteúdo.

Atendimento aos alunos às quartas, das 09h às 12h, mediante agendamento prévio

Critérios de Avaliação

Duas avaliações teóricas (30+40 pontos)

Trabalhos práticos e seminários ao longo do semestre (30 pontos) Uma avaliação teórica substitutiva sobre todo conteúdo da disciplina:

 Substitui a menor nota das avaliações teóricas

 Só poderá ser feita por quem não possuir média para ser aprovado na disciplina

 A nota final do aluno que fizer a substitutiva está limitada a 60 pontos

 Somente quem puder ser aprovado substituindo a menor nota poderá fazer a prova.

Bibliografia Básica

1. Russel, S., Norvig P. Inteligência Artificial, 2a edição. Elsevier. 2004

2. Luger, George F. Inteligência Artificial Estruturas e Estratégias para a solução de problemas complexos. 4a edição. Bookman.

2004.

3.

Braga, A.P; Carvalho, A. C. P.; Ludermir, T. B. Redes Neurais Artificiais - Teoria e aplicações. Livros Técnicos e Científicos, Editora S.A, 2000.

Bibliografia Complementar

1. J. Hair Jr, R. Anderson, R. Tatham, W. Black, Análise Multivariada de Dados, Artmed, 2005.

2. T. Mitchell, Machine Learning, McGraw Hill, 1997.

3. Rich, Elaine. Inteligencia artificial. Sao Paulo: McGraw-Hill, 1988

4. T AN, P.; STEINBACH, M.; KUMAR, V. Introdução ao Data Mining (Mineração de Dados). 2a edição. Moderna. 2009.

5. Goldberg, David E. Genetic algorithms in search, optimization, and machine learning. Boston: Addison-Wesley, 1989.

___________________________________________

Docente Responsável

Aprovado pelo Colegiado em

____________________________________

Coordenador

COORDENADORIA DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

PLANO DE ENSINO

Disciplina: Pesquisa Operacional para Computação Período: 5 Currículo: 2014

Docente: Fernanda Sumika Hojo de Souza Unidade Acadêmica: DCOMP

Pré-requisito:

Álgebra Linear

Algoritmos e Estrutura de Dados II

Co-requisito:

não há

C.H. Total: 72ha/66h Teórica: 72ha/66h Prática: 0ha/0h Grau: Bacharelado Ano: 2020 Semestre: PE2

Ementa

Modelagem com Programação Linear. Método Simplex e Análise de Sensibilidade. Teoria da dualidade e Análise Pós-Otimização. Programação Linear Inteira. Programação Dinâmica. Modelos de Otimização em Redes.

Objetivos

Apresentar os fundamentos de programação linear, inteira e dinâmica. Modelar problemas típicos e desenvolver soluções computacionais.

Conteúdo Programático

1. Introdução sobre Pesquisa Operacional 1. Modelos de Pesquisa Operacional.

2. Soluções para um modelo de PO.

3. Arte da modelagem.

4. Fases de estudo em um problema de PO.

5. Suporte a tomada de decisão.

2. Modelagem com Programação Linear 1. Propriedades.

2. Representação.

3. Modelo Linear para problemas.

3. Solução Gráfica em Programação Linear 1. Representação

2. Solução de um modelo de maximização.

3. Solução de um modelo de minimização.

4. Solução por computador através de pacotes de PL.

4. Método Simplex

1. Modelo de PL em forma de equação.

2. O método simplex.

3. Solução inicial artificial (método M-grande e de duas fases).

4. Casos especiais do simplex (degeneração, soluções alternativas, solução ilimitada e solução inviável).

5. Análise de Sensibilidade (gráfica e algébrica).

5. Dualidade

1. O problema dual.

2. Relações primais-duais.

3. Interpretação econômica da dualidade.

4. Algoritmo dual simplex.

5. Análise pós-otimização.

6. Otimização em Redes 1. Árvore geradora Mínima.

2. Problema do Caminho Mínimo.

3. Problema do Fluxo Máximo.

4. Problema de Transporte.

5. Problema de Transbordo.

6. Problema de Designação de Tarefas.

7. Programação Linear Inteira

1. Caracterização de problemas de Programação Inteira.

2. Relaxação Linear.

3. Algoritmos de Programação Inteira.

4. Problemas Clássicos de Programação Inteira.

8. Programação Dinâmica 1. Natureza recursiva em PD.

2. Aplicações selecionadas.

Metodologia de Ensino

1) Vídeo aulas: o curso será ministrado por meio de vídeo-aulas, oportunidade em que o conteúdo programático será desenvolvido.

2) Resolução de exercícios em vídeo: resoluções de exercícios serão desenvolvidos passo a passo para viabilizar seu entendimento.

3) Outras atividades: alguns conteúdos da disciplina serão trabalhados na forma de estudo dirigido, com utilização do solver TORA/GLPK.

4) Encontro online: o aluno poderá tirar dúvidas diretamente com o professor, em horário estabelecido para os encontros.

5) Atendimento ao aluno: o aluno poderá tirar dúvidas diretamente com o professor, em horário estabelecido para atendimento.

As atividades 1, 2 e 3 serão realizadas de forma assíncrona, com os vídeos, slides e demais materiais disponibilizados pelo Campus Virtual da UFSJ.

A atividade 4 será realizada de forma síncrona, uma vez por semana, às quartas-feiras de 13:15 às 15:05, por meio da plataforma GoogleMeet, para esclarecimento de dúvidas sobre as vídeo aulas da semana.

A atividade 5 será realizada de forma síncrona, uma vez por semana, às sextas-feiras de 8:30 Às 11:30, por meio da plataforma GoogleMeet.

Planejamento das aulas:

Semana 1: Modelagem em Programação Linear Semana 2: Solução Gráfica e Algébrica em PL Semana 3: Método Simplex e Solução artificial Semana 4: Casos especiais e análise de sensibilidade Semana 5: Dualidade

Semana 6: Algoritmos Adicionais e Análise pós otimização Semana 7: Problema do Transporte

Semana 8: Variações do Problema do Transporte e Otimização em redes Semana 9: Programação Linear Inteira e método branch-and-bound Semana 10: Planos de corte e TSP

Semana 11: Programação Dinâmica

Semana 12: Revisão do conteúdo da disciplina

Controle de frequência e Critérios de Avaliação

O controle de frequência se dará através da entrega de 75% das atividades avaliativas.

A avaliação do aprendizado será realizada através de seis atividades avaliativas, a saber:

Atividade 1: Referente às semanas 1-2 Atividade 2: Referente às semanas 3-4 Atividade 3: Referente às semanas 5-6 Atividade 4: Referente às semanas 7-8 Atividade 5: Referente às semanas 9-10

Atividade 6: Substitutiva referente ao conteúdo de todas as aulas

As atividades de 1 a 5 serão assíncronas e terão valor de 20% dos pontos cada. A atividade 6 será assíncrona, terá valor de 20% dos pontos e poderá substituir 1 ou 2 das atividades de 1 a 5. Todas as atividades devem ser entregues através do Campus Virtual da UFSJ.

Bibliografia Básica

1. M. C. GOLDBARG, H. P. LUNA, Otimização combinatória e programação linear: modelos e algoritmos, Campus, 2005 2. TAHA, H. A. Pesquisa Operacional. 2 ed. Pearson, 2008.

3. ANDRADE, E. Leopoldino, Introdução à Pesquisa Operacional, LTC, 199

Bibliografia Complementar

1. E. L. de ANDRADE, Introdução à pesquisa operacional: métodos e modelos para a análise de decisão, LTC, 2000 2. LACHTERMACHER, GERSON, Pesquisa Operacional na tomada de decisões – Rio de Janeiro:Campus 2002 3. C. LOESCH, N. HEIN, Pesquisa Operacional – Fundamentos e Modelos, Saraiva, 2008

4. M. S. BAZARAA, J. J. JARVIS, H. D. SHERALI, Linear Programming and Network Flows, Wiley-Interscience, 2004 5. G. M. CALOBA, Programação Linear, Interciência, 2006.

___________________________________________

Docente Responsável

Aprovado pelo Colegiado em

____________________________________

Coordenador

No documento plano de ensino - CCOMP/UFSJ - O Curso (páginas 48-65)