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 20074.
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