27
opicos em Algoritmos Andr´ e Guedes 31 de agosto de 2017

Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Topicos em Algoritmos

Andre Guedes

31 de agosto de 2017

Page 2: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Sumario

1 Aulas 1

2 Introducao 2

3 Problemas Computacionais e Algoritmos 4

3.1 Definicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.2 Correcao e eficiencia . . . . . . . . . . . . . . . . . . . . . . . 5

3.3 Classes de problemas . . . . . . . . . . . . . . . . . . . . . . . 5

3.4 Classes de algoritmos . . . . . . . . . . . . . . . . . . . . . . . 6

4 Espaco de Busca e Enumeracao 7

5 Backtracking 8

6 Algoritmos gulosos 9

7 Programacao dinamica 10

7.1 Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

7.2 Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

8 Branch-and-bound 11

9 Processamento de textos 12

10 Trabalhos 13

A Problemas 14

A.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

i

Page 3: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

A.2 Espaco de Busca e Enumeracao . . . . . . . . . . . . . . . . . 17

A.3 Backtracking . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

A.4 Algoritmos Gulosos . . . . . . . . . . . . . . . . . . . . . . . . 21

A.5 Programacao Dinamica . . . . . . . . . . . . . . . . . . . . . . 22

A.5.1 Outros problemas . . . . . . . . . . . . . . . . . . . . . 22

ii

Page 4: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 1

Aulas

1. 03/08/2017 - introducao (problemas, algoritmos etc) e subsequenciamaxima (e variacoes)

1

Page 5: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 2

Introducao

Objetivo:

Tratar de assuntos referentes a algoritmos avancados com analises, im-plementacoes e testes para que os alunos tenham mais pratica no de-senvolviento e analise de algoritmos.

Avaliacao:

Trabalhos praticos de analise e implementacao. Serao 5 ou 6 trabalhos.

Programa:

• Problemas Computacionais e Algoritmos

– Definicoes,

– Complexidade Computacional

– Classes de Problemas,

– Classes de Algoritmos;

– Correcao e Eficiencia,

• Espaco de Busca e Enumeracao

• Tecnicas de Algoritmos

– Backtracking;

– Algoritmos gulosos;

– Programacao dinamica;

– Branch-and-bound;

2

Page 6: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

– Dividir e Conquistar;

• Exemplos de problemas e solucoes.

Metodologia:

• Aulas teoricas sobre algoritmos e analise.

• Leitura de trechos de livros e artigos.

• Trabalhos praticos.

Ver problemas 1, 2 e 3.

3

Page 7: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 3

Problemas Computacionais eAlgoritmos

3.1 Definicoes

Um problema computacional e um problema que pode ser formuladocomo uma relacao entre um conjunto de entradas e um conjunto de saıdas.Nesta relacao cada entrada (instancia) do problema tem um conjunto depossıveis saıdas (respostas) associadas. Por exemplo, o problema de encon-trar o mınimo elemento de um vetor. Para cada vetor dado como entrada,as saıdas validas sao os elementos que sao mınimos.

Um problema computacional, portanto, e um problema estabelecido poruma descricao de suas possıveis “entradas” e suas respectivas “saıdas”.

Cada possıvel “entrada” de um problema computacional e chamada deuma instancia do problema. Uma saıda correspondente a uma instancia doproblema e chamada de resposta daquela instancia.

Para ajudar, considere a seguinte definicao.

Definicao 1. Dados a, b ∈ Z, o intervalo inteiro de a a b e o conjunto [a..b]dos inteiros entre a e b, isto e,

[a..b] = {z ∈ Z | a ≤ z ≤ b}.

Exemplo 1.

Mınimo de Vetor (minv)

Instancia: (v, a, b), onde v e um vetor indexado por [a..b], com a ≤ b.Resposta: um ındice m ∈ [a..b] tal que v[m] ≤ v[i] para todo i ∈ [a..b].

4

Page 8: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Se v e dado por

i 1 2 3 4 5 6 7v[i] 16 23 4 42 15 8 4,

entao

• (v, 1, 7) e uma instancia do problema Mınimo de Vetor. 3 e 7 sao res-postas para a instancia (v, 1, 7) do problema Mınimo de Vetor.

• (v, 4, 6) e uma instancia do problema Mınimo de Vetor e 6 e uma res-posta para a instancia (v, 4, 6) do problema Mınimo de Vetor.

Uma solucao de um problema computacional e um algoritmo que recebeuma instancia em devolve uma resposta valida. Cada problema computaci-onal pode ter diversas solucoes.

Os problemas computacionais modelam problemas reais e as implementacoesdos algoritmos, que sao solucoes destes problemas, sao as aplicacoes computa-cionais dos problemas reais. Portanto, estudar os problemas computacionaise suas solucoes e uma atividade importante para quem quer ajudar a resolverproblemas reais com o auxılio de computadores.

3.2 Correcao e eficiencia

Para que uma aplicacao computacional tenha sucesso e preciso que oalgoritmo que ela implementa seja de fato uma solucao do problema emquestao e que seja eficiente. Alem disso e esperado que o algoritmo estejacorretamente implementado.

Esta ultima questao nao e assunto para este texto e esta mais relacionadacom outras areas da computacao. Entretanto nao pode ser ignorada.

As duas primeiras questoes, que chamaremos simplesmente de corretudee eficiencia, sao parte do nosso estudo de problemas computacionais e algo-ritmos.

3.3 Classes de problemas

Existem diversos tipos de problemas computacionais e eles sao classifica-dos por diversos criterios. Os criterios que nos interessam por ora sao: tipo(e tamanho) do conjunto de solucoes (contra-domınio da relacao binaria);

5

Page 9: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

3.4 Classes de algoritmos

6

Page 10: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 4

Espaco de Busca e Enumeracao

Ver problemas 4 e 5.

intervalos proprios - http://www2.kobe-u.ac.jp/~saitoh/pub/2009-02-walcom.pdf

bipartite permutation graphs - http://www2.kobe-u.ac.jp/~saitoh/

pub/2009-12-isaac.pdf

permutacoes - https://en.wikipedia.org/wiki/Heap’s_algorithm -http://www4.uwsp.edu/math/nwodarz/Math209Files/209-0809F-L10-Section06_

03-AlgorithmsForGeneratingPermutationsAndCombinations-Notes.pdf

- https://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations

7

Page 11: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 5

Backtracking

8

Page 12: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 6

Algoritmos gulosos

escrever as descricoes dos problemas.

mochila (caso particular), moedas (caso particular), intervalos sem inter-seccao, ainda moedas (porque e quando funciona), bin packing, Codigo deHuffmann.

9

Page 13: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 7

Programacao dinamica

escrever as descricoes dos problemas.

(*) There is an ordering on the subproblems, and a relation thatshows how to solve a subproblem given the answers to “smaller”subproblems, that is, subproblems that appear earlier in the or-dering. ([p. 171] Dasgupta, Papadimitriou, and Vazirani. 2006.Algorithms (1 ed.). McGraw-Hill, Inc., New York, NY, USA.)

7.1 Problemas

Multiplicacao de matrizes.

Moedas com quaisquer valores.

Distancia de edicao.

Mochila - O(nW )

7.2 Links

1. https://www.topcoder.com/community/data-science/data-science-tutorials/

dynamic-programming-from-novice-to-advanced/

2. https://www.cs.berkeley.edu/~vazirani/algorithms/chap6.pdf

Ver problemas 24 e 25

10

Page 14: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 8

Branch-and-bound

11

Page 15: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 9

Processamento de textos

12

Page 16: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Capıtulo 10

Trabalhos

1. Submatriz maxima de zeros (Problema 3).

2. Backtracking: Set Cover (Problema 14).

3. Revisao bibliografica: dar um problema e os alunos buscam solucoes(de um determinado tipo) na rede. Problema ainda nao definido.

4. Enumeracao: permutacoes bipartidas conexas, subconjuntos de tama-nho k de um conjunto X e arranjos de tamanho k de um conjuntoX.

5. Apresentacoes sobre dois problemas: Sequenciamento de texto e Or-denacao de conjuntos consecutivos (Problemas 31 e 30).

13

Page 17: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Apendice A

Problemas

Aqui segue uma lista com alguns problemas computacionais para seremtrabalhados pelos alunos da disciplina de Topicos em Algoritmos (CI811) doPrograma de Pos-Graduacao em Informatica da UFPR.

Esta lista ainda nao esta completa e pode ser alterada.

Alguns problemas sao simples e tem o objetivo de apresentar diferentestecnicas, outros sao mais difıceis.

(...)

A.1 Introducao

1. [default,pr:subseqmax0]Subsequencia Maxima de ’0’s

Dada uma sequencia de n ’0’s e ’1’s, Sn = (d1, d2, . . . , dn), queremosencontrar uma subsequencia (consecutiva) maxima composta somentede ’0’s, ou seja, encontrar m e k tais que di = 0, para m ≤ i ≤ m+k−1e k seja maximo.

Subsequencia Maxima de ’0’s (subseqmax)

Instancia: Sequencia de ’0’s e ’1’s de tamanho n, Sn = (d1, d2, . . . , dn).Resposta: m e k tais que di = 0, para m ≤ i ≤ m+ k − 1 e k seja

maximo.

Um problema mais simples e o problema de, dados uma sequencia e

14

Page 18: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

um k, encontrar uma subsequencia com exatos k ’0’s consecutivos.

Subsequencia de tamanho k de ’0’s (subseqk)

Instancia: Sequencia de ’0’s e ’1’s de tamanho n, Sn = (d1, d2, . . . , dn) einteiro k.

Resposta: m tal que di = 0, para m ≤ i ≤ m+ k − 1 ou “nao”, casonao exista tal m.

Resposta: Seja M : N → N, representando o tamanho da maiorsubsequencia de ’0’s comecando em di, definida por:

M(i) =

{0, se i 6∈ [1..n] ou di 6= 0,

M(i+ 1) + 1, se i ∈ [1..n] e di = 0.

E seja R : N→ N, representando o tamanho da maior subsequencia de’0’s da sequencia que comeca em di, definida por:

R(i) =

{0, se i 6∈ [1..n],

max{M(i), R(i+ 1)}, se i ∈ [1..n].

2. [default,pr:subsqmaxcrescente]Subsequencia Maxima Crescente

Dada uma sequencia de n numeros inteiros, Sn = (d1, d2, . . . , dn), que-remos encontrar uma subsequencia (consecutiva) maxima crescente, ouseja, encontrar m e k tais que di < di+1, para m ≤ i ≤ m + k − 2 e kseja maximo.

Subsequencia Maxima Crescente (subseqmaxcresc)

Instancia: Sequencia de ’0’s e ’1’s de tamanho n, Sn = (d1, d2, . . . , dn).Resposta: m e k tais que di < di+1, para m ≤ i ≤ m+ k − 2 e k seja

maximo.

Resposta:

3. [default,pr:submatmax0]Submatriz Maxima de ’0’s

Dada uma matriz n×m de ’0’s e ’1’s,

A =

a1,1 a1,2 · · · a1,ma2,1 a2,2 · · · a2,m· · · · · · · · · · · ·an,1 an,2 · · · an,m

15

Page 19: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

queremos encontrar uma submatriz (consecutiva) maxima compostasomente de ’0’s, ou seja, encontrar p, q, r e s tais que ai,j = 0, parap ≤ i ≤ p+ r − 1, q ≤ j ≤ q + s− 1 e r × s seja maximo.

Submatriz Maxima de ’0’s (submatmax)

Instancia: Matriz n×m de ’0’s e ’1’s, [ai,j].Resposta: p, q, r e s tais que ai,j = 0, para p ≤ i ≤ p+ r − 1,

q ≤ j ≤ q + s− 1 e k × l seja maximo.

Resposta:

16

Page 20: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

A.2 Espaco de Busca e Enumeracao

4. [default,pr:passeiocavalo]Passeio do cavalo

Dado um tabuleiro n×n, sera possıvel que um cavalo de xadrez (usandoseus movimentos validos) poderia sair da casa na linha 1, coluna 1passar por todas as outras casas, sem repetir nenhuma e voltar aoinıcio?

Passeio do cavalo de xadrez (cavalo)

Instancia: Um inteiro n.Resposta: Se e possıvel um passeio do cavalo, usando apenas seus

movimentos de xadrez, em um tabuleiro n× n, que passepor todas as casas sem repetir e volte para a primeira.

Resposta:

5. [default,pr:mochila]Problema da Mochila

Problema da Mochila (knapsack)

Instancia: Um numero natural n, um numero real D e duas funcoes,w : {1, 2, . . . , n} → R e v : {1, 2, . . . , n} → R.

Resposta: Um conjunto X ⊆ {1, 2, . . . , n} tal que∑

i∈X w(i) ≤ D e∑i∈X v(i) seja maximo.

Resposta:

6. [default,pr:enum-subconj]Enumeracao de subconjuntos

Dado um conjunto X, como enumerar todos os seus subconjuntos?

Resposta:

opcao 1: Cada no representa um subconjunto de X.

Comece com o conjunto vazio (∅) como no raiz. Gere cada “fi-lho” de um no incluindo um unico elemento. Se os elementossao ordenados e so sao incluıdos elementos que estao a direitado ultimo incluıdo, entao nao acontecem repeticoes e temos umaarvore. Cada nıvel tem conjuntos de um tamanho.

opcao 2: Cada no representa um conjunto de subconjuntos de X.

17

Page 21: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Cada no i tem dois conjuntos Pi e Qi, ambos subconjuntos deX. Os subconjuntos de X representados pelo no i sao dados peloconjunto abaixo

{R = S ∪Qi | S ⊆ Pi}.

Cada no tem no maximo dois filhos (ei e di). Um elemento de Pi

e escolhido como pivo, xi. Os filhos sao gerados como se segue:

Pei = Pdi = Pi − {xi},Qei = Qi,

Qdi = Qi ∪ {xi}.

7. [default,pr:enum-perm]Enumeracao de permutacoes

Enumere todas as permutacoes de (1, 2, 3, . . . , n).

Resposta:

8. [default,pr:enum-interv]Enumeracao de intervalos proprios

Enumere todas as permutacoes de ((· · · () · · · )) - n abre parentesese n fecha parenteses - de tal forma que em qualquer prefixo tenhaum numero de abre parenteses maior ou igual que o numero de fechaparenteses.

Resposta:

9. [default,pr:enum-perm-bip-conexo]Enumeracao de permutacoes bi-partidas conexas

Uma permutacao π de um conjuntoX e uma sequencia (π(1), . . . , π(|X|)).Dizemos que uma permutacao π de {1, . . . , n} e conexa se a sequencia(π(1), π(2), . . . , π(n)) nao pode ser descrita como uma concatenacao deuma permutacao de {1, . . . , k} com uma permutacao de {(k+1), . . . , n},para algun 1 ≤ k < n.

A permutacao (3, 2, 4, 1, 6, 5) e desconexa, pois e uma concatenacao de(3, 2, 4, 1) e (6, 5) que sao, respectivamente, permutacoes de {1, 2, 3, 4}e {5, 6} (portanto k = 4).

Ja a permutacao (3, 1, 5, 2, 6, 4) e conexa. Perceba que nenhum prefixode tamanho k < 6 contem todos os numeros de 1 a k.

18

Page 22: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

Dizemos que uma permutacao π de {1, . . . , n} e bipartida se existe umabiparticao (X, Y ) de {1, . . . , n} de forma que os elementos de cada parte(X e Y ) aparecem na ordem natural, ou seja, se (i, j ∈ X ou i, j ∈ Y )e i < j entao π−1(i) < π−1(j).

A permutacao (2, 4, 1, 3, 5, 6) e bipartida, pois X = {1, 3, 6} e Y ={2, 4, 5} formam uma biparticao de {1, . . . , 6} como descrito acima.

Enumere todas as permutacoes de (1, 2, 3, . . . , n) que sao bipartidasconexas.

Resposta:

10. [default,pr:enum-subconj-tam-k]Enumeracao de subconjuntos detamanho fixo

Dado um conjunto X e um inteiro k, enumere todos os subconjuntosde X de tamanho k. Ou seja,(

X

k

)= {S ⊆ X | |S| = k}.

Resposta:

11. [default,pr:arranjos-X-k]Enumeracao de arranjos

Dado um conjunto X e um inteiro k, um arranjo de tamanho k de Xe uma sequencia de tamanho k com elementos de X sem repeticao.

Dado um conjunto X e um inteiro k, enumere todos os arranjos detamanho k de X.

Resposta:

19

Page 23: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

A.3 Backtracking

12. Clique;

13. Coloracao;

14. [default,pr:setcover]Cobertura por conjuntos

Cobertura por conjuntos (setcover)

Instancia: Um conjunto de n subconjuntos do conjuntoU = {1, 2, . . . ,m}, A1, A2, . . . , An.

Resposta: Um conjunto X ⊆ {1, 2, . . . , n} tal que ∪i∈XA(i) = U e |X|seja mınimo.

Resposta:

20

Page 24: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

A.4 Algoritmos Gulosos

15. mochila (caso particular);

16. moedas (caso particular) - ainda moedas: porque e quando funciona;

17. intervalos sem interseccao;

18. bin packing;

19. Codigo de Huffmann;

21

Page 25: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

A.5 Programacao Dinamica

20. Multiplicacao de matrizes;

21. Moedas com quaisquer valores;

22. Distancia de edicao;

23. Mochila - O(nW );

24. [default,pr:linearpartition]Linear Partition Problem (Skiena - pp294–299)

Integer Partition without Rearrangement (partition)

Instancia: An arrangement S of nonnegative numbers {s1, . . . , sn} andan integer k.

Resposta: Partition S into k or fewer ranges, to minimize themaximum sum over all the ranges, without reordering any ofthe numbers.

Resposta:

25. [default,pr:somadiscreta]Melhor sequencia de decisoes

d1, d2, . . . , dn sao decisoes, ou seja, di ∈ {p1, p2, . . . , pk}, para todo i ∈{1, 2, . . . , n}.O objetivo final e M .

Queremos que∑n

i=1 di seja o mais proximo de M possıvel, ou seja, que|M −

∑ni=1 di| seja mınimo.

Resposta:

A.5.1 Outros problemas

26. Rolos de papel (bin packing unidiensional);

22

Page 26: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

27. 8 Rainhas (e variacoes);

28. [default,pr:emparelhamento-minmax]Emparelhamento de mınimomaior peso

Emparelhamento de mınimo maior peso (emp-minmax)

Instancia: Dois conjuntos A e B, um conjunto de pares com umelemento de cada conjunto, R, e uma funcao w : R→ N.

Resposta: Subconjunto M ⊂ R tal que max{w(e) | e ∈M} sejamınimo.

Resposta:

29. [default,pr:casamento-estavel]Casamento Estavel

Casamento Estavel (casamento)

Instancia:Resposta: Dois conjuntos, A e B, tal que |A| = |B| = n, para cada

elemento a ∈ A, uma funcao pa : {1, . . . , n} → B e, paracada elemento b ∈ B, uma funcao pb : {1, . . . , n} → A.

Conjunto M ⊆ A×B tal que nao ...

Resposta:

30. [default,pr:conjuntos-consecutivos]Ordenacao de conjuntos conse-cutivos

Dados n subconjuntos de um conjunto U , N1, N2, . . . , Nn, encontre umaordem (u1, u2, . . . , um) para os elementos de U de forma que, para 1 ≤i ≤ n, os elementos de Ni sejam consecutivos, caso seja possıvel.

Resposta:

31. [default,pr:sequenciamento]Sequenciamento de texto

Seja T uma sequencia de dıgitos decimais desconhecida. E sejam n sub-sequencias de T , P1, P2, . . . , Pn. Assumindo que as subsequencias co-brem toda a sequencia T e que existem interseccoes entre subsequencias“consecutivas”, reconstrua T , caso seja possıvel.

Exemplo:P1 = “4458790001237′′

23

Page 27: Andr e Guedes 31 de agosto de 2017 - UFPRAlgoritmos gulosos escrever as descri˘c~oes dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem inter-sec˘c~ao,

P2 = “12312444587′′

P3 = “12379871234′′

Como P1 →4 P3 (o final de P1 e o inıcio de P3 coincidem em 4 dıgitos),P2 →5 P1 e P3 →1 P1, temos

T = “12312444587900012379871234′′

pela concatenacao P2 → P1 → P3, ja que a relacao P3 →1 P1 e fraca epode ser descartada.

Resposta:

32. [default,pr:reducaotransitiva]Reducao Transitiva

Reducao transitiva (redtran)

Instancia: Uma ordem parcial (X,�).

Resposta: Uma relacao binaria (X,� ) tal que o seu fecho transitivoseja igual a (X,�) e nao exista outra relacao binaria menorcom a mesma propriedade.

Resposta:

33. [default,pr:poset-to-sets]Modelo de conjuntos para ordem parcial

Modelo de conjuntos (modelconj)

Instancia: Uma ordem parcial (X,�).Resposta: Um conjunto C de conjuntos tal que a ordem parcial (C,⊆)

(ordem de inclusao de subconjuntos) seja isomorfa a ordem(X,�).

Resposta:

24