• Nenhum resultado encontrado

Mais um problema de escalonamento

N/A
N/A
Protected

Academic year: 2022

Share "Mais um problema de escalonamento"

Copied!
43
0
0

Texto

(1)

Análise de Algoritmos

Parte destes slides são adaptações de slides

do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.

(2)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Escalonamento: permutação π, onde

π(i) denota a posição da tarefa i na ordem de execução.

(3)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Escalonamento: permutação π, onde

π(i) denota a posição da tarefa i na ordem de execução.

Dado π, o instante de início da tarefa i é si = Pπ(i)1

j=1 tπ−1(j),

ou seja, é a soma das durações das tarefas anteriores a i.

(4)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Escalonamento: permutação π, onde

π(i) denota a posição da tarefa i na ordem de execução.

Dado π, o instante de início da tarefa i é si = Pπ(i)1

j=1 tπ−1(j),

ou seja, é a soma das durações das tarefas anteriores a i. Instante de término: fi = si + ti.

(5)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Escalonamento: permutação π, onde

π(i) denota a posição da tarefa i na ordem de execução.

Dado π, o instante de início da tarefa i é si = Pπ(i)1

j=1 tπ−1(j),

ou seja, é a soma das durações das tarefas anteriores a i. Instante de término: f = s + t .

(6)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Dado escalonamento π,

si: início do processamento da tarefa i fi: fim do processamento da tarefa i ℓi: atraso da tarefa i

(7)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Dado escalonamento π,

si: início do processamento da tarefa i fi: fim do processamento da tarefa i ℓi: atraso da tarefa i

Problema: Dados d e t, encontrar π cujo atraso máximo é mínimo.

(8)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Dado escalonamento π,

si: início do processamento da tarefa i fi: fim do processamento da tarefa i ℓi: atraso da tarefa i

Problema: Dados d e t, encontrar π cujo atraso máximo é mínimo.

Exemplo: t1 = 1 e d1 = 2, t2 = 2 e d2 = 4, t3 = 3 e d3 = 6.

(9)

Mais um problema de escalonamento

di: deadline da tarefa i

ti: tempo de processamento da tarefa i Dado escalonamento π,

si: início do processamento da tarefa i fi: fim do processamento da tarefa i ℓi: atraso da tarefa i

Problema: Dados d e t, encontrar π cujo atraso máximo é mínimo.

Exemplo: t1 = 1 e d1 = 2, t2 = 2 e d2 = 4, t3 = 3 e d3 = 6.

(10)

Possíveis critérios gulosos

SPT - shortest processing time (menor ti primeiro) Funciona?

(11)

Possíveis critérios gulosos

SPT - shortest processing time (menor ti primeiro) Funciona?

Não...

Exemplo: d1 = 10 e t1 = 1, d2 = 8 e t2 = 8.

(12)

Possíveis critérios gulosos

SPT - shortest processing time (menor ti primeiro) Funciona?

Não...

Exemplo: d1 = 10 e t1 = 1, d2 = 8 e t2 = 8.

LST - least slack time (menor di − ti primeiro) Funciona?

(13)

Possíveis critérios gulosos

SPT - shortest processing time (menor ti primeiro) Funciona?

Não...

Exemplo: d1 = 10 e t1 = 1, d2 = 8 e t2 = 8.

LST - least slack time (menor di − ti primeiro) Funciona?

Também não...

Exemplo: d1 = 2 e t1 = 1, d2 = 10 e t2 = 10.

(14)

Possíveis critérios gulosos

SPT - shortest processing time (menor ti primeiro) Funciona?

Não...

Exemplo: d1 = 10 e t1 = 1, d2 = 8 e t2 = 8.

LST - least slack time (menor di − ti primeiro) Funciona?

Também não...

Exemplo: d1 = 2 e t1 = 1, d2 = 10 e t2 = 10.

EDD - earliest due date (menor di primeiro) Funciona?

(15)

Algoritmo resultante

GULOSO (d, t, n)

1 seja π permutação tq d[π1(1)] ≤ · · · ≤ d[π1(n)]

2 devolva π

Nem olhamos o t... Será que isso funciona???

(16)

Algoritmo resultante

GULOSO (d, t, n)

1 seja π permutação tq d[π1(1)] ≤ · · · ≤ d[π1(n)]

2 devolva π

Nem olhamos o t... Será que isso funciona???

Note que não há tempo ocioso em uma solução.

Dado um escalonamento, uma inversão é um par de índices i e j tais que π(i) < π(j) e di > dj.

(17)

Algoritmo resultante

GULOSO (d, t, n)

1 seja π permutação tq d[π1(1)] ≤ · · · ≤ d[π1(n)]

2 devolva π

Nem olhamos o t... Será que isso funciona???

Note que não há tempo ocioso em uma solução.

Dado um escalonamento, uma inversão é um par de índices i e j tais que π(i) < π(j) e di > dj.

Afirmação 1: Dois escalonamentos sem inversão têm o mesmo atraso máximo.

(18)

Algoritmo resultante

GULOSO (d, t, n)

1 seja π permutação tq d[π1(1)] ≤ · · · ≤ d[π1(n)]

2 devolva π

Nem olhamos o t... Será que isso funciona???

Note que não há tempo ocioso em uma solução.

Dado um escalonamento, uma inversão é um par de índices i e j tais que π(i) < π(j) e di > dj.

Afirmação 1: Dois escalonamentos sem inversão têm o mesmo atraso máximo.

Prova feita na aula.

(19)

Algoritmo resultante

GULOSO (d, t, n)

1 seja π permutação tq d[π1(1)] ≤ · · · ≤ d[π1(n)]

2 devolva π

Nem olhamos o t... Será que isso funciona???

Note que não há tempo ocioso em uma solução.

Dado um escalonamento, uma inversão é um par de índices i e j tais que π(i) < π(j) e di > dj.

Afirmação 1: Dois escalonamentos sem inversão têm o mesmo atraso máximo.

(20)

Matroides e o método guloso

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

(subconjuntos de conjuntos em C estão em C)

(21)

Matroides e o método guloso

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

Problema 1: Dado um peso binário we para cada e de U, encontrar um conjunto de C de peso máximo.

(22)

Matroides e o método guloso

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

Problema 1: Dado um peso binário we para cada e de U, encontrar um conjunto de C de peso máximo.

GULOSO (U, w, C)

1 U1 ← {e ∈ U : we = 1} S ← ∅

2 enquanto existe e em U1 tal que S ∪ {e} ∈ C faça 3 S ← S ∪ {e}

4 devolva S

(23)

Matroides e o método guloso

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

Problema 1: Dado um peso binário we para cada e de U, encontrar um conjunto de C de peso máximo.

GULOSO (U, w, C)

1 U1 ← {e ∈ U : we = 1} S ← ∅

2 enquanto existe e em U1 tal que S ∪ {e} ∈ C faça 3 S ← S ∪ {e}

4 devolva S

(24)

Matroides e o método guloso

U: conjunto finito.

C: família não vazia de subconjuntos de U hereditária.

Pesos positivos para os elementos de U.

Problema 2: Encontrar um conjunto de C de peso máximo.

(25)

Matroides e o método guloso

U: conjunto finito.

C: família não vazia de subconjuntos de U hereditária.

Pesos positivos para os elementos de U.

Problema 2: Encontrar um conjunto de C de peso máximo.

GULOSO (U,w, C)

1 (e1, . . . , en) ← ORDENE(U,w) ordem dos pesos

2 S ← ∅

3 para i ← 1 até n faça 4 se S ∪ {ei} ∈ C

5 então S ← S ∪ {ei}

(26)

Matroides e o método guloso

U: conjunto finito.

C: família não vazia de subconjuntos de U hereditária.

Pesos positivos para os elementos de U.

Problema 2: Encontrar um conjunto de C de peso máximo.

GULOSO (U,w, C)

1 (e1, . . . , en) ← ORDENE(U,w) ordem dos pesos

2 S ← ∅

3 para i ← 1 até n faça 4 se S ∪ {ei} ∈ C

5 então S ← S ∪ {ei} 6 devolva S

Teorema: Se C é um matroide, então o algoritmo acima resolve o Problema 2.

(27)

Exemplos de matroides

Dado um espaço vetorial, a coleção de todos os conjuntos de vetores LI deste espaço é um matroide.

(28)

Exemplos de matroides

Dado um espaço vetorial, a coleção de todos os conjuntos de vetores LI deste espaço é um matroide.

Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide.

(29)

Exemplos de matroides

Dado um espaço vetorial, a coleção de todos os conjuntos de vetores LI deste espaço é um matroide.

Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide.

Grafo bipartido G = (U ∪ V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MU é um matroide.

(30)

Exemplos de matroides

Dado um espaço vetorial, a coleção de todos os conjuntos de vetores LI deste espaço é um matroide.

Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide.

Grafo bipartido G = (U ∪ V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MU é um matroide.

MV : a coleção análoga com V no lugar de U. Claro que MV também é um matroide.

(31)

Exemplos de matroides

Dado um espaço vetorial, a coleção de todos os conjuntos de vetores LI deste espaço é um matroide.

Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide.

Grafo bipartido G = (U ∪ V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MU é um matroide.

MV : a coleção análoga com V no lugar de U.

(32)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

(33)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

O que é MU ∩ MV ?

O que é um conjunto da coleção MU ∩ MV em G?

(34)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

O que é MU ∩ MV ?

O que é um conjunto da coleção MU ∩ MV em G?

Cada conjunto de MU ∩ MV é um emparelhamento em G.

(35)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

O que é MU ∩ MV ?

O que é um conjunto da coleção MU ∩ MV em G?

Cada conjunto de MU ∩ MV é um emparelhamento em G.

(36)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

O que é MU ∩ MV ?

O que é um conjunto da coleção MU ∩ MV em G?

Cada conjunto de MU ∩ MV é um emparelhamento em G. Esta coleção é ou não é um matroide?

Não é... (nem todo emparelhamento maximal é máximo) Mas é a interseção de dois matroides.

(37)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

MU ∩ MV é a coleção dos emparelhamentos de G. Esta coleção não é um matroide.

(38)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

MU ∩ MV é a coleção dos emparelhamentos de G. Esta coleção não é um matroide.

Mas é a interseção de dois matroides.

(39)

Exemplos de matroides

Grafo bipartido G = (U × V, E).

MU: todos os conjuntos S de arestas de G tq no máximo MU: uma aresta de S é incidente a cada vértice de U. MV : a coleção analoga com V no lugar de U.

MU e MV são matroides.

MU ∩ MV é a coleção dos emparelhamentos de G. Esta coleção não é um matroide.

Mas é a interseção de dois matroides.

(40)

Definição alternativa de matroides

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

(41)

Definição alternativa de matroides

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

C é um matroide se, para todo par A, B de conjuntos de C para os quais |A| < |B|, existe e ∈ B \ A tal que A ∪ {e} ∈ C.

(42)

Definição alternativa de matroides

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

C é um matroide se, para todo par A, B de conjuntos de C para os quais |A| < |B|, existe e ∈ B \ A tal que A ∪ {e} ∈ C. Esta é a definição do CLRS.

(43)

Definição alternativa de matroides

U: conjunto finito arbitrário.

C: família não vazia de subconjuntos de U hereditária.

C é um matroide se, para todo par A, B de conjuntos de C para os quais |A| < |B|, existe e ∈ B \ A tal que A ∪ {e} ∈ C. Esta é a definição do CLRS.

Exercício: Mostre que esta definição é análoga a anterior.

Referências

Documentos relacionados

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Com efeito, à semelhança da estratégia adoptada na investigação e publicação sistemática do espólio exumado no povoado pré ‑histórico de Leceia pelo escultor Álvaro de

BARHAM, 1982 (2), define as diferenças conceituais e campos de ação, tanto para en­ sino como investigação, entre Biomecânica e Cinesiologia Mecânica. Não trataremos

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o &#34;Fiel do sendo o

potencialmente porque não são entendidos como tal pela maioria da população e porque não estão classificados — e, em parte, a uma lacuna consistente relativa à formação de

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas

Mugglestone et al (1998) investigaram, de forma experimental e com o auxílio de CFD, o impacto da variação do espaçamento entre as bobinas pré-formadas do estator sobre o