180 likes | 330 Views
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação COM272 – Inteligência Computacional. Alocação de processos a computadores em uma rede em anel lógico utilizando Busca Tabu. Eduardo Magno Lages Figueiredo < emagno@iceb.ufop.br >
E N D
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação COM272 – Inteligência Computacional Alocação de processos a computadores em uma rede em anel lógico utilizando Busca Tabu Eduardo Magno Lages Figueiredo < emagno@iceb.ufop.br > Sibele Esteves Ramos < sibele.ramos@bol.com.br >
Introdução Apresenta-se neste documento um algoritmo que implementa a busca por uma boa solução a problemas combinatórios (np-difíceis). O problema consiste na alocação de um conjunto de processos a um conjunto de computadores. Dois requisitos devem ser satisfeitos: • Não sobrecarregar de nenhum computador com excesso de processos alocados; • A taxa de utilização da rede deve ser uniformemente distribuída entre todos os computadores
PC1 PC2 PC3 PC4 Descrição do Problema Este problema descreve um sistema computacional composto de computadores (PC) interligados fisicamente através de um barramento comum. Como o meio de transmissão é único, apenas um dos computadores poderá enviar ou receber mensagens por vez.
PC1 PC4 PC2 PC3 Descrição do Problema Uma solução para evitar colisão de mensagens enviadas por diferentes computadores é admitir que cada computador tenha seu momento de utilização da rede. Desta forma, foi implementada logicamente uma topologia em anel onde cada computador tem um tempo (t) para transmissão.
Descrição do Problema São consideradas para o problema, as características de cada máquina que compõe o sistema computacional. Para simplificar o problema, consideraremos apenas o desempenho medido em Milhões de Instruções por Segundo (MIPS), de cada um dos computadores. 90 MIPS 50 MIPS 30 MIPS 10 MIPS
Descrição do Problema Temos um conjunto de processos (job) que devem ser alocados aos computadores. Cada um destes processos consome uma quantidade (w) de recursos da máquina a qual for alocado. ( w medido em MIPS ) Os processos possuem ainda uma taxa de utilização da rede (lan) medido em Megabits por segundo (Mb/s) Quando o processo for alocado a um computador, este terá uma taxa de utilização da rede definida pela lan de processo.
Descrição do Problema TX 10 TX 30 P C 1 P C 2 Lan 0 Lan 0 TX 50 TX 90 P C 3 P C 4 Lan 0 Lan 0 JobA (10, 7) JobB (20, 12) JobC (10, 12) JobD (15, 10) JobE (10, 16) JobF (30, 5) JobG (30, 20)
Descrição do Problema TX 0 TX 30 P C 1 P C 2 JobA (10, 7) Lan 7 Lan 0 TX 50 TX 90 P C 3 P C 4 Lan 0 Lan 0 JobB (20, 12) JobC (10, 12) JobD (15, 10) JobE (10, 16) JobF (30, 5) JobG (30, 20)
Descrição do Problema TX 0 TX 0 P C 1 P C 2 JobA (10, 7) JobB (20, 12) Lan 7 Lan 24 JobC (10, 12) TX 50 TX 90 P C 3 P C 4 Lan 0 Lan 0 JobD (15, 10) JobE (10, 16) JobF (30, 5) JobG (30, 20)
Descrição do Problema TX 0 TX 0 P C 1 P C 2 JobA (10, 7) JobB (20, 12) Lan 7 Lan 24 JobC (10, 12) TX 25 TX 90 P C 3 P C 4 JobD (15, 10) JobE (10, 16) Lan 26 Lan 0 JobF (30, 5) JobG (30, 20)
Descrição do Problema TX 0 TX 0 P C 1 P C 2 JobA (10, 7) JobB (20, 12) Lan 7 Lan 24 JobC (10, 12) TX 25 TX 30 P C 3 P C 4 JobD (15, 10) JobF (30, 5) JobE (10, 16) Lan 26 Lan 25 JobG (30, 20) Será que esta é a melhor solução ???
Redução ao problema da mochila Cada processo (job) é um objeto; Cada computador (PC) é uma mochila; Os objetos possuem um peso (w) que é o consumo de recursos computacionais e um benefício (lan) que é a taxa de utilização da rede. As mochilas possuem uma capacidade que é o desempenho do computador.
Redução ao problema da mochila Neste problema, não há apenas uma mochila. ( cada PC é uma ); Todos os objetos (jobs) devem ser alocados a alguma das mochilas; Neste problema o objetivo não é conseguir o maior benefício possível, e sim distribuir de forma o mais igualitária possível os benefícios entre as mochilas.
Modelagem Matemática Uma solução é um array de inteiros com n posições, onde n é o numero de processos (job); Cada posição representa um processo e o conteúdo da posição diz a qual computador este processo está alocado; Uma solução: s [1 – 2 – 2 – 3 – 3 – 4 – 4]; Um movimento um optimal (1-opt) é alocar um processo a outro computador; Um vizinho da solução s: s’ [2 – 2 – 2 – 3 – 3 – 4 – 4].
Modelagem Matemática O cálculo de f(s) para este problema é dividido em duas partes: f(s) = f1(m) + f2(s) 0 se soma de pesos <= capacidade PC (w) f1(m) = MEDIAPENAL se w < soma de pesos <= 1,5 * w MAXPENAL se soma de pesos > 1,5 *w f2(s) = maxLan – minLan MAXPENAL e MEDIAPENAL são parâmetros do problema; maxLan é o valor de lan do computador que possui maior acesso à rede e minLan o que possui o menor acesso.
Dados do Algoritmo Solução Inicial: Função objetivo = 481 Tamanho Iteração s/ Função Total de Lista Tabu Melhora Objetivo Iterações 1 10 20 268 49 2 50 20 176 52 3 50 30 161 95 4 50 200 158 335 5 50 1000 133 2206 6 50 2000 132 4228 7 30 5000 138 5589 8 60 5000 120 11832 9 100 10000 120 16710
Dados do Algoritmo Função Total de Objetivo Iterações 1 120 1147 2 122 1342 3 117 2148 4 132 3147 5 118 2049 6 138 1789 7 119 1627 8 124 1457 9 134 2529 10 106 2580 Tamanho da lista tabu 50 No de iterações s/ melhora 1000 Média da Função Objetivo 123 Desvio 16,04 %
Conclusão O algoritmo não é muito robusto porque as soluções iniciais são geradas de forma aleatória e a Busca Tabu é fortemente dependente da solução inicial; Melhorias propostas ao algoritmo: • Utilização de uma lista tabu de tamanho dinâmico; • Utilização de um algoritmo para gerar uma melhor solução inicial; Fevereiro / 2003