Alocação de processos a computadores em uma rede em anel lógico utilizando Busca Tabu
description
Transcript of Alocação de processos a computadores em uma rede em anel lógico utilizando Busca Tabu
Alocação de processos a computadores em uma rede em
anel lógico utilizando Busca Tabu
Eduardo Magno Lages Figueiredo
Sibele Esteves Ramos
Universidade Federal de Ouro PretoInstituto de Ciências Exatas e BiológicasDepartamento de ComputaçãoCOM272 – Inteligência Computacional
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
Descrição do Problema
Este problema descreve um sistema computacional composto de computadores (PC) interligados fisicamente através de um barramento comum.
PC1 PC2 PC3 PC4
Como o meio de transmissão é único, apenas um dos computadores poderá enviar ou receber mensagens por vez.
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.
PC1
PC2
PC3
PC4
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
PC1
PC3
PC4
PC2
TX10
Lan0
TX30
Lan0
TX50
Lan0
TX90
Lan0
JobA (10, 7)
JobE (10, 16)
JobB (20, 12)
JobF (30, 5) JobG (30, 20)
JobC (10, 12) JobD (15, 10)
Descrição do Problema
PC1
PC3
PC4
PC2
TX0
Lan7
TX30
Lan0
TX50
Lan0
TX90
Lan0
JobA (10, 7)
JobE (10, 16)
JobB (20, 12)
JobF (30, 5) JobG (30, 20)
JobC (10, 12) JobD (15, 10)
Descrição do Problema
PC1
PC3
PC4
PC2
TX0
Lan7
TX0
Lan24
TX50
Lan0
TX90
Lan0
JobA (10, 7)
JobE (10, 16)
JobB (20, 12)
JobF (30, 5) JobG (30, 20)
JobC (10, 12)
JobD (15, 10)
Descrição do Problema
PC1
PC3
PC4
PC2
TX0
Lan7
TX0
Lan24
TX25
Lan26
TX90
Lan0
JobA (10, 7)
JobE (10, 16)
JobB (20, 12)
JobF (30, 5) JobG (30, 20)
JobC (10, 12)
JobD (15, 10)
Descrição do Problema
PC1
PC3
PC4
PC2
TX0
Lan7
TX0
Lan24
TX25
Lan26
TX30
Lan25
JobA (10, 7)
JobE (10, 16)
JobB (20, 12)
JobF (30, 5)
JobG (30, 20)
JobC (10, 12)
JobD (15, 10)
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áticaO 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
Tamanho Iteração s/ Função Total deLista Tabu Melhora Objetivo Iterações
1 10 20 268 492 50 20 176 523 50 30 161 954 50 200 158 3355 50 1000 133 22066 50 2000 132 42287 30 5000 138 55898 60 5000 120 118329 100 10000 120 16710
Solução Inicial: Função objetivo = 481
Dados do Algoritmo
Função Total de Objetivo Iterações
1 120 11472 122 13423 117 21484 132 31475 118 20496 138 17897 119 16278 124 14579 134 252910 106 2580
Tamanho da lista tabu50
No de iterações s/ melhora1000
Média da Função Objetivo123
Desvio16,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