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
< [email protected] >
Sibele Esteves Ramos
< [email protected] >
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
Desta forma, foi implementada
logicamente uma topologia em
anel onde cada computador tem
um tempo (t) para transmissão.
PC4
PC2
PC3
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
P
C
1
P
C
3
TX
10
Lan
0
TX
50
Lan
0
P
C
2
P
C
4
JobA (10, 7)
JobB (20, 12)
JobC (10, 12)
JobE (10, 16)
JobF (30, 5)
JobG (30, 20)
TX
30
Lan
0
TX
90
Lan
0
JobD (15, 10)
Descrição do Problema
P
C
1
JobA (10, 7)
P
C
3
JobE (10, 16)
TX
0
Lan
7
TX
50
Lan
0
P
C
2
P
C
4
JobB (20, 12)
JobC (10, 12)
JobF (30, 5)
JobG (30, 20)
TX
30
Lan
0
TX
90
Lan
0
JobD (15, 10)
Descrição do Problema
P
C
1
JobA (10, 7)
P
C
3
TX
0
Lan
7
TX
50
Lan
0
P
C
2
JobB (20, 12)
JobC (10, 12)
P
C
4
TX
0
Lan
24
TX
90
Lan
0
JobD (15, 10)
JobE (10, 16)
JobF (30, 5)
JobG (30, 20)
Descrição do Problema
P
C
1
P
C
3
JobA (10, 7)
TX
0
JobD (15, 10)
Lan
7
TX
25
JobE (10, 16)
Lan
26
JobF (30, 5)
P
C
2
JobB (20, 12)
JobC (10, 12)
P
C
4
JobG (30, 20)
TX
0
Lan
24
TX
90
Lan
0
Descrição do Problema
P
C
1
P
C
3
JobA (10, 7)
TX
0
JobD (15, 10)
Lan
7
TX
25
JobE (10, 16)
Lan
26
P
C
2
JobB (20, 12)
P
C
4
JobF (30, 5)
JobC (10, 12)
JobG (30, 20)
Será que esta é a melhor solução ???
TX
0
Lan
24
TX
30
Lan
25
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
f1(m) = MEDIAPENAL
MAXPENAL
se soma de pesos <= capacidade PC (w)
se w < soma de pesos <= 1,5 * w
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:
1
2
3
4
5
6
7
8
9
Tamanho
Lista Tabu
10
50
50
50
50
50
30
60
100
Função objetivo = 481
Iteração s/
Melhora
20
20
30
200
1000
2000
5000
5000
10000
Função
Objetivo
268
176
161
158
133
132
138
120
120
Total de
Iterações
49
52
95
335
2206
4228
5589
11832
16710
Dados do Algoritmo
Tamanho da lista tabu
50
No de iterações s/ melhora
1000
Média da Função Objetivo
123
Desvio
16,04 %
1
2
3
4
5
6
7
8
9
10
Função
Objetivo
120
122
117
132
118
138
119
124
134
106
Total de
Iterações
1147
1342
2148
3147
2049
1789
1627
1457
2529
2580
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
Download

Alocação de processos a computadores em uma rede em anel