Sunteți pe pagina 1din 15

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Tcnicas de Concepo de Algoritmos: Branch and Bound: Exemplo


R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011

Branch and Bound - CAL, 2010/11

Exemplo de Aplicao: B&B


Problema
Uma companhia est a montar uma equipa para levar a cabo uma srie de operaes H quatro membros na equipa: A, B, C e D H quatro operaes a realizar: 1, 2, 3, e 4 Cada membro da equipa pode realizar exactamente uma operao, e Todas as quatro operaes devem ser executadas com sucesso, para que para que o projecto todo seja considerado concludo satisfatoriamente. Entretanto, a probabilidade de um membro particular da equipa ser bem sucedido na realizao de uma operao particular varia, como indicado na tabela abaixo:

Branch and Bound - CAL, 2010/11

Branch and Baound (Exemplo)

./rr(1)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Exemplo de Aplicao: B&B


Problema (cont)
Se aos membros da equipa fossem atribudas as tarefas ABCD, nesta ordem, ento a probabilidade do projecto ser concludo na sua totalidade com sucesso seria: (0.9)(0.6)(0.85)(0.7) = 0.3213 ~ 32% Pressuposto: Se houver formas possveis de organizar a equipa de modo a se obter uma taxa de sucesso para o projecto como um todo que exceda aos 45%, ento o gestor ir aprovar o projecto! Questo: para esta data equipa, o gestor ir aprovar o projecto?

Branch and Bound - CAL, 2010/11

Exemplo de Aplicao: B&B


Formulao:
Vrtices na rvore: uma atribuio pessoa-tarefa, total ou parcial Poltica de seleco de vrtices: melhor valor global da funo de custo aproximado (bounding function) Poltica de seleco de variveis: escolher a prxima operao na ordem natural, ou seja 1 a 4 Funo de Custo (bounding function): para operaes no atribudas, escolher o melhor membro da equipa que esteja disponvel, ou seja, o que possui maior probabilidade de sucesso, ainda que a pessoa seja escolhida mais do que uma vez Funo Objectivo (critrio de paragem): quando um estado-soluo candidato tiver o valor resultante da funo e custo maior do que o valor do estado-candiato corrente Estado-soluo candidato: quando a funo de custo retorna uma soluo em que cada operao atribuda a uma pessoa diferente

Branch and Bound - CAL, 2010/11

Branch and Baound (Exemplo)

./rr(2)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: ? No incio, nenhuma deciso foi tomada; Calcula-se o valor mximo do potencial de sucesso para o projecto: Se A for escolhido para realizar as 4 operaes, ento: AAAA = (0.9)(0.8)(0.9)(0.85) = 0.5508

Branch and Bound - CAL, 2010/11

Soluo candidata: ? Para a Operao 1, expande-se o vrtice raiz (branching process). Cada n filho corresponde atribuio da primeira atribuio a um membro especfico da equipa

Branch and Bound - CAL, 2010/11

Branch and Baound (Exemplo)

./rr(3)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: ? Neste n, A, decidiu-se que a pessoa A ir realizar a operao 1. Iremos indicar isso colorindo A em verde A no pode ser seleccionada para realizar qualquer outra tarefa, porque j foi escolhido

Branch and Bound - CAL, 2010/11

Soluo candidata: ? As outras pessoas sero atribudas aos outros trabalhos. Isso ser feito com o mesmo critrio utilizado para os outros: a pessoa com melhor probabilidade ser escolhida, ainda que se repita; se houver impasse, escolhe-se arbitrariamente O resultado da funo de custo para este estado ADCC, d-nos um valor de: ADCC = (0.9)(0.7)(0.85)(0.8) = 0.4284

Branch and Bound - CAL, 2010/11

Branch and Baound (Exemplo)

./rr(4)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: ? Passa-se para o prximo n, em que a deciso que B realize a operao 1; neste caso, B no poder realizar qualquer outra operao; as restantes pessoas sero atribudas s outras operaes; Neste caso, A a melhor pessoa para realizar 2, 3, e 4, resultando em: BAAA = (0.7)(0.8)(0.9)(0.85) = 0.4284 Realiza-se o mesmo procedimento para os outros ns filhos a serem explorados.

Branch and Bound - CAL, 2010/11

Soluo candidata: ? Agora iremos expandir (branch) os ns da rvore. O n que escolhemos expandir o n que mais promissor, ou seja, aquele que potencialmente ir levar-nos melhor soluo. Neste caso o n C, com valor 0.5202

Branch and Bound - CAL, 2010/11

10

Branch and Baound (Exemplo)

./rr(5)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: ? Ao avaliarmos o no filho, a partir de C, verifica-se que este um estado soluo candidato, pois todos os elementos atribudos s tarefas 1 a 4 so diferentes, nomeadamente CABD! Neste estado, a probabilidade de sucesso do projecto de ~38%

Branch and Bound - CAL, 2010/11

11

Soluo candidata:

CABD (0.3808)

Neste caso, marca-se a soluo CABD como a soluo candidata corrente; qualquer outra soluo cujo resultado da funo de custo seja melhor, ir substitui-la

Branch and Bound - CAL, 2010/11

12

Branch and Baound (Exemplo)

./rr(6)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata:

CABD (0.3808)

Prossegue-se com a avaliao dos outros estados

Branch and Bound - CAL, 2010/11

13

Soluo candidata:

CABD (0.3808)

e escolhe-se para expandir (branch) o estado mais promissor at o momento encontrado; neste caso, ser o vrtice D, no nvel 1 da rvore!

Branch and Bound - CAL, 2010/11

14

Branch and Baound (Exemplo)

./rr(7)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata:

CABD (0.3808)

e escolhe-se para expandir (branch) o estado mais promissor at o momento encontrado; neste caso, ser o vrtice D, no nvel 1 da rvore! Importante! Ao expandir o n e avaliar os seus filhos, verifica-se que o estado DBAA tem uma probabilidade mxima esperada de 0.3443 < 0.3808 Que menor do que o valor encontrado para a soluo corrente candidata! Desta forma, no interessa expandir mais a rvore a partir deste estado!

Branch and Bound - CAL, 2010/11

15

Soluo candidata:

CABD (0.3808)

Considerando o valor encontrado para o DBAA 0.3443 < 0.3808 Marca-se este estado como um vrtice morto, no sendo necessrio expandilo mais

Branch and Bound - CAL, 2010/11

16

Branch and Baound (Exemplo)

./rr(8)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata:

CABD (0.3808)

Completa-se a expanso do n D e a avaliao dos estados resultantes a partir daquele n

Branch and Bound - CAL, 2010/11

17

Soluo candidata:

CABD (0.3808)

Escolhe-se o prximo estado a expandir, ou seja, aquele que mais promissor em termos de potencial de concluso do projecto. Neste caso, o estado CDAA Ao expandi-lo, verifica-se que o estadofilho CDAB um estado-soluo candidato! Porm, como o valor do seu potencial de concluso 0.3719 < 0.3808 a soluo CDAB descartada, e marcada como um vrtice morto

Branch and Bound - CAL, 2010/11

18

Branch and Baound (Exemplo)

./rr(9)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata:

CABD (0.3808)

Conclui-se a avaliao dos estados filhos e verifica-se que o estado CDBA um estado-soluo candidato! Neste caso, o valor do seu potencial de concluso 0.4046 > 0.3808 e portanto passar a ser considerada a soluo candidata!

Branch and Bound - CAL, 2010/11

19

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Marca-se a nova soluo candidata encontrada: CDBA! A soluo candidata anterior passa a ser um vrtice morto

Branch and Bound - CAL, 2010/11

20

Branch and Baound (Exemplo)

./rr(10)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Com o novo valor do potencial de concluso para a soluo candidata corrente, possvel avaliar quo promissores continuam a ser os vrtices espera de serem processados. Neste caso, todos aqueles cujo valor menor do que o novo valor corrente, passam a ser considerados no promissores e, portanto, vrtices mortos o que acontece com os estados CBAA(0.3902) e DCAA(0.4016)

Branch and Bound - CAL, 2010/11

21

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Prossegue-se com a escolha do novo estado a ser expandido. Neste caso, h duas opes com a mesma propenso, pelo que se escolhe arbitrariamente! Ambos ADCC e BAAA tm o mesmo potencial: 0.4284!

Branch and Bound - CAL, 2010/11

22

Branch and Baound (Exemplo)

./rr(11)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Opta-se por expandir o estado BAAA, e compara-se o potencial dos filhos em relao ao valor da soluo candidata corrente!

Branch and Bound - CAL, 2010/11

23

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Como todos os valares gerados pela funo de custo para os filhos so inferiores ao valor da soluo candidata corrente, os estados BACC, BCAA e BDAA so considerados no promissores, e portanto marcados como vrtices mortos

Branch and Bound - CAL, 2010/11

24

Branch and Baound (Exemplo)

./rr(12)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Continua-se a expandir os prximos estados promissores, neste caso o estado ADCC, e a marcar os filhos no promissores como vrtices mortos

Branch and Bound - CAL, 2010/11

25

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

A partir do estado ADCC, chega-se aos estados filhos ADBC e ADCB, ambos estados-soluo do problema. Entretanto, estes estados so descartados, pois representam uma pior soluo do que a soluo candidata corrente! Note que o estado DACC o ltimo estado espera de ser expandido!

Branch and Bound - CAL, 2010/11

26

Branch and Baound (Exemplo)

./rr(13)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Soluo candidata: Soluo candidata:

CABD (0.3808) CDBA (0.4046)

Procede-se com a expanso do ltimo estado, neste caso o estado DACC. Ambos os estados filhos so soluo do problema, DABC e DACB. Entretanto so descartados por serem inferior soluo candidata corrente! O projecto em questo pode ser realizado com uma taxa de sucesso esperada mxima igual a 0.4046 ~40,5% Para esta equipa, como o valor encontrado inferior ao desejado, de 45%, o Projecto no ser aprovado!

Branch and Bound - CAL, 2010/11

27

Algns cuidados a ter em B&B


Para utilizar B&B com relativo sucesso, necessrio:
Ter uma boa funo de custo (bouding function): deve ser uma funo optimstica, mas to vivel quanto possvel Reconhecer um estado-soluo candidato cedo: importante para iniciar o processo de poda da rvore, diminuindo o nmero de estados a serem expandidos Encontrar formas de identificar estados cujos descendentes no so promissores: Este procedimento tambm evita que vrtices sejam expandidos desnecessariamente Ordenar restries e variveis, de forma a testar primeiro as mais restritivas: a ideia geral favorecer que os vrtices da rvore sejam considerados no promissores o mais rapidamente possvel. O mais prximo da raiz que um vrtice podado, mais a rvore poder ser simplificada.

Branch and Bound - CAL, 2010/11

28

Branch and Baound (Exemplo)

./rr(14)

CAL (2010-2011) MIEIC

Tcnicas de Concepo de Algoritmos (19-05-2011

Referncias e mais informao


John W. Chinneck (2010) Practical Optimization: a Gentle Introduction, Carleton University, CA.

Branch and Bound - CAL, 2010/11

29

Branch and Baound (Exemplo)

./rr(15)

S-ar putea să vă placă și