• Nenhum resultado encontrado

ABORDAGEM DO PROBLEMA

5.3 Formulação de um modelo de resolução

5.3.3 Matriz de custos

A matriz de custos do problema de transportes é uma peça fundamental da formulação que se apresenta. É na matriz de custos que serão

definidas as restrições relacionadas com as datas de disponibilidade e de conclusão e com as adequações entre processadores e tarefas, entre outras.

Designe-se cada variável de decisão do problema de transportes por xijk,

representando, como já se viu, o agendamento ou não de um fragmento da tarefa Tj no processador Pi no período k, conforme a variável

assuma o valor de 1 ou de 0, respectivamente. Seja cijk o elemento da

matriz de custos associado à variável xijk. Note-se que j1,2,n1,

devido à origem adicional que se acrescentou ao problema. No entanto, para j n1, quaisquer que sejam i e k, cijk 0, fazendo com que esta origem não produza efeitos laterais sobre a solução final.

Na secção anterior já foi sugerido um preenchimento parcial da matriz de custos. Os elementos da matriz correspondentes aos últimos

períodos dos processadores mais lentos devem ser preenchidos com valores arbitrariamente grandes, excepto os elementos correspondentes à origem adicional, que devem ter custo nulo. Desta forma, seria forçado o não agendamento desses períodos. Matematicamente, para

m

i1,2, , para j1,2,n e para kKi1,Ki 2,K, cijkM , representando M um valor arbitrariamente grande.

A mesma técnica (atribuir custos arbitrariamente grandes) será utilizada para evitar a violação de restrições que não possam ser violadas, tais como incompatibilidades absolutas entre tarefas e processadores, datas de disponibilidade e deadlines.

Se uma tarefa, Tj, for incompatível com um determinado subconjunto

de processadores Ij, devem ser atribuídos custos arbitrariamente

grandes a todos os elementos do vector de custos correspondente a essa tarefa, que digam respeito aos processadores pertencentes ao

subconjunto em causa. Ou seja, para j1,2,n, para i:PiIj e para i

K

k 1,2, , cijkM .

Para introduzir as datas de disponibilidade e as deadlines, o procedimento semelhante. No caso das datas de disponibilidade pretende-se que, para determinada tarefa, seja evitado o agendamento no intervalo entre k 1

1  rij

k . Ou seja, para j1,2,n, para i1,2,m e para M

cijk  . Relembre-se que rij é a data de disponibilidade referida em

agendamento de um processador específico. No caso das deadlines, que seja evitado o agendamento entre kd~ ij 1 e kKi. Isto é, para

n

j1,2, , para i1,2,m e para kd~ ij 1,Ki, cijkM . Mais uma

é uma deadline referida em períodos de agendamento de um processador específico.

Os períodos de paragem programados também são incluídos no modelo mesma forma. Uma paragem programada pode ser referida como

Capítulo 5 Abordagem do Problema onde N é o subconjunto de processadores que devem entrar em

paragem no período

k ,b ke

. Admita-se que há um conjunto S de

paragens programadas. Então, para cada elemento de S, para n

j1,2, , para i:PiN e para kkbi,kbi1,,kei, cijkM . Isto

equivale a dizer que, nos períodos de paragem programada de um processador, existe um custo arbitrariamente grande para o

agendamento de qualquer tarefa. Tal como no modelo genérico, os e de kei referem-se a períodos de agendamento de um processador

Finalmente, as datas de disponibilidade para os processadores também podem ser modeladas recorrendo a valores arbitrariamente grandes para a matriz de custos. Se ai for a data de disponibilidade do processador

i

P, nada deve ser agendado nesse processador antes do período de agendamento ai. Isto é, para i1,2,m, para j1,2,n e para

1 , , 2 , 1   ai

k , cijkM. Pode considerar-se que ai já está referido em

períodos de agendamento de um processador específico.

Note-se que o que foi dito até agora sobre a matriz de custos é uma tradução exacta do que foi dito quando se mencionaram as restrições do modelo genérico, o que ilustra a correspondência que existe entre os dois modelos.

Considerem-se agora os elementos da matriz de custos que não são com o valor arbitrariamente grande, M . Pela análise da estrutura do transportes, é evidente que estes elementos devem ter valores que preferências de agendamento. Por exemplo, considere-se os elementos que dizem respeito a um par processador/tarefa. Considere-se ainda, que existe uma data de conclusão anterior a uma deadline. Claramente, é preferível agendar a tarefa antes da data de conclusão, embora seja possível a violação daquela data. Em termos de matriz de custos, os elementos anteriores à data de conclusão devem conter valores mais baixos que os elementos situados depois da data de conclusão. Desta forma estar-se-á a introduzir no problema de transportes a preferência pelo agendamento da tarefa antes da data de conclusão.

Seguindo esta linha de raciocínio, serão introduzidas no modelo as datas de conclusão e as adequações entre tarefas e processadores. Nesta formulação, baseada no problema de transportes, não é possível

introduzir, pelo menos de forma óbvia, a questão dos sortidos, a questão dos tempos de preparação e a questão da adjacência física dos teares utilizados.

A introdução de custos pela não adequação entre tarefas e processadores e pela violação das datas de conclusão é feita por adição, ou seja, aos custos que reflectem uma situação são adicionados os custos que reflectem a outra. Inicialmente, todos os elementos da matriz de custos têm o valor zero. Seguidamente, aos elementos afectados pelas restrições descritas anteriormente será atribuído o valor M . Aos restantes

elementos serão adicionados os custos relacionados com datas de conclusão e os custos relacionados com inadequações

processador/tarefa.

Uma vez que a empresa produz por encomenda, havendo datas de estabelecidas, não há interesse em terminar a tarefa muito mais cedo que data, até porque isso poderia provocar problemas de armazenamento de intermédios. Também não há interesse em terminar a tarefa na data de pois um pequeno imprevisto na produção poderia atrasar o

legítimo pensar que, dentro da janela temporal que vai desde a data de disponibilidade até à data de conclusão, é indiferente quando se agenda a tarefa, nada devendo ser adicionado aos respectivos elementos da matriz de custos.

Fora daquela janela temporal e, entre a data de conclusão e a deadline, é definir uma função de penalização que forneça os valores a adicionar aos respectivos elementos da matriz de custos. Embora a função a utilizar em última análise, da afinação do modelo, sugere-se uma função exponencial, que consiste em multiplicar uma constante arbitrária pelo períodos de violação. Se Wd for essa constante, para j1 ,2, ,n, para

para k dij dij dij ~ , 2 , 1    :

Capítulo 5 Abordagem do Problema

ij

d ijk ijk c k d W c     Exemplo

Considerem-se os elementos da matriz de custos relativos a determinada tarefa e a determinado processador, compatíveis. A data de disponibilidade da tarefa é 3, a data de conclusão é 6 e a deadline é 8 (valores referidos em períodos do processador considerado). Neste caso, para k3 até k 6,

0   ijk

ijk c

c . Para k7, cijkcijkWd. Para k8, cijkcijk 2Wd.

Repare-se que se a data de conclusão for violada por 1 período o custo associado será igual a Wd. Se for violada por 2 períodos a penalização será,

muito provavelmente, igual a 3Wd, devido à estrutura do problema de

transportes. Se fosse possível a violação por 3 períodos, a penalidade

associada poderia ser 6Wd. Embora os custos colocados na matriz cresçam

de forma linear, a penalização, em caso de violação, cresce de forma exponencial. ■

Embora a questão do peso ou importância das várias tarefas não seja ela pode, em parte, ser contemplada nesta fase da formulação. Se houver mais importantes que outras, faz sentido pensar que é preferível violar as datas de conclusão das tarefas menos importantes às das tarefas mais importantes. Logo, em vez de definir uma constante Wd global, poderiam

ser definidas constantes Wdj, uma por cada tarefa. O valor a atribuir a essas

constantes seria proporcional à sua importância relativa. Desta forma estar- se-ia a exprimir a preferência pela violação das tarefas menos importantes. Como foi afirmado, a escolha da função de penalização deve ser feita em função do comportamento requerido ao modelo, depois de realizar os testes necessários.

A outra componente fundamental da matriz de custos do problema de transportes são as penalidades por inadequação entre processador e tarefa. Relembre-se que, quando foi apresentada a matriz de adequações, designou- por eij a penalidade por executar a tarefa Tj no processador Pi.

Neste caso a correspondência com a matriz de custos do problema de transportes é óbvia. A forma de reflectir a matriz de adequações na matriz de custos do problema de transportes também é evidente: a todos os

elementos da matriz de custos correspondentes à tarefa Tj e ao processador i

P deve ser adicionada a penalidade eij. Desta forma, sempre que possível,

o algoritmo de transportes encontrará os processadores mais adequados para o agendamento de determinada tarefa.

Matematicamente, pode ser escrito: para i1 ,2, ,m, para j1 ,2, ,n e para k 1,2,Ki, cijkcijkeij.

As constantes eij também podem ser utilizadas para exprimir o peso ou

importância das tarefas. Tal como foi referido para as penalidades violação de datas de conclusão, se as constantes eij forem mais elevadas

tarefas mais importantes, estas tarefas serão preferencialmente agendadas em processadores mais adequados.

5.3.4 Conclusão

Fica assim completamente definida a transformação do problema de agendamento num problema de transportes, com o recurso à relaxação de algumas restrições do problema (tempos de preparação, sortidos, adjacências físicas) e ao arredondamento de datas contínuas para períodos de agendamento discretos.

Quando comparados com a duração das tarefas a executar, tanto os tempos de preparação como os arredondamentos, não têm qualquer significado prático. Por outro lado, desde que se disponha de capacidade computacional, o agendamento pode ser definido com a precisão que se desejar, através da redução do período de agendamento.

5.4 Conclusão

Este capítulo iniciou-se com a apresentação de esboço de um modelo de programação matemática compatível com o problema em análise.

Capítulo 5 Abordagem do Problema algumas restrições daquele modelo propôs-se um modelo baseado no problema de transportes capaz de encontrar uma solução que, devido às características das restrições relaxadas, é de boa qualidade.

Conforme se demonstrará no próximo capítulo, as soluções conseguidas pelo algoritmo de transportes, sofrem de alguns defeitos que podem ser corrigidos. Estes defeitos surgem devido à relaxação de algumas restrições importantes, como a existência de tempos de preparação na mudança de tarefas.

No próximo capítulo serão apresentadas duas heurísticas que servirão para melhorar as soluções provenientes do algoritmo dos transportes.

C a p í t u l o 6