• Nenhum resultado encontrado

Escalonamento com Representação do Conhecimento através de Regras e Lógica

Algoritmos Genéticos

2.2.2 Abordagens de Inteligência Artificial e de Inteligência Artificial Distribuída

2.2.2.2 Escalonamento com Representação do Conhecimento através de Regras e Lógica

Em muitas abordagens ao escalonamento, é representado conhecimento na forma regras de tipo condição-acção, ou empregando lógica.

O sistema Scheplan, descrito em [Numao 1994], é um sistema de apoio à decisão para escalonamento da produção no fabrico de aço. Neste ambiente de produção específico existem

restrições específicas relativamente ao tempo de espera entre tarefas, já que os processos têm de ser completados antes do aço solidificar. O Scheplan dispõe de uma componente interactiva em que o sistema e o utilizador cooperam na obtenção de um escalonamento. O processo de escalonamento consiste numa fase em que um escalonamento é gerado pelo sistema, com base em conhecimento heurístico de peritos, e uma fase iterativa em que o utilizador avalia e tenta refinar o escalonamento apoiado pelo sistema (para evitar violação de restrições) até obter um escalonamento satisfatório. Há dois critérios de avaliação considerados funções objectivo: o tempo de espera (a minimizar) e o número de lotes de fabrico (uma medida da produtividade, a maximizar). A prioridade atribuída a cada um varia de acordo com a situação, o tempo e quem avalia. A arquitectura do sistema, semelhante à de um sistema pericial, é a de um sistema de

produção, baseado em regras de produção (ver o Apêndice B), sendo composta por três

componentes: um motor de escalonamento, uma base de regras e uma interface para o utilizador. O motor de escalonamento recebe um escalonamento que, possivelmente, viola algumas restrições (de capacidade e de tempo de espera) e produz um escalonamento que os satisfaz, usando um algoritmo que aplica regras da base de regras. O sistema faz uso de regras que representam conhecimento dependente do domínio para resolver as restrições específicas do domínio, através de um mecanismo de emparelhamento de padrões e regras que representam o conhecimento heurístico de especialistas e que concorrem para uma maior eficiência do processo de escalonamento e uma melhor qualidade do escalonamento resultante. Existem outras regras para estabelecer processos mediante ordens de produção diárias recebidas, nomeadamente o estabelecimento de lotes de produção, a sequência de tarefas numa máquina e a duração de processo.

Uma abordagem semelhante é descrita em [Darby-Dowman 1995]. Trata-se de um sistema de apoio à decisão para escalonamento de transportes aplicado ao escalonamento de recursos (barcos e aeronaves de vários tipos) utilizados em missões críticas de guarda costeira nos Estados Unidos. É uma abordagem mista de sistema baseado em conhecimento e optimização (utiliza um modelo de programação inteira) e utiliza um sistema baseado em regras para diagnosticar (criticar) os escalonamentos gerados.

SONIA [Collinot 1988], [Le Pape 1994], é um sistema de escalonamento para processamento intermitente que dá especial ênfase às restrições e ao controlo inteligente da propagação de

restrições. Esta é entendida como uma actividade dedutiva, executada por um sistema de

propagação de restrições, em que são derivadas restrições novas a partir das já existentes e detectadas inconsistências entre restrições. A propagação de restrições é realizada por um sistema de inferência controlável, que faz uso de dois tipos de regras: regras de dedução, que determinam que inferências poderão fazer-se a partir de um conjunto de premissas; regras de controlo, que decidem que inferências devem ser feitas em cada passo do processo de resolução do problema. São usadas cláusulas de lógica para representar restrições. Por exemplo, uma restrição temporal pode ser representada pela cláusula (time <= t1 t2 d), em que t1 e t2 são os pontos temporais de início e de fim de uma tarefa e d é uma duração, declarando que entre os instantes t1 e t2 devem decorrer, pelo menos d unidades de tempo; são possíveis igualmente, fórmulas disjuntivas, conjuntivas e negativas deste tipo de restrições. As restrições de reserva servem para a propagação de restrições manter horários e detectar conflitos de capacidade. Por exemplo, a restrição (reserve res t1 t2 n

lista-de-motivos) declara que n recursos do grupo de recursos res estão

indisponíveis durante o intervalo de tempo entre os instantes t1 e t2, descrevendo-se na lista

em lista-de-motivos as razões dessa indisponibilidade. No SONIA podem ainda

representar-se relações de ordem em conjuntos infinitos totalmente ordenados (aceitando igualmente, cláusulas disjuntivas, conjuntivas e negativas), relações entre intervalos (do tipo

das descritas em [Allen 1983] e aceitando igualmente fórmulas disjuntivas, conjuntivas e negativas de relações de intervalos) e famílias várias de restrições de domínio das variáveis, incluindo igualdades e desigualdades.

O sistema DEVISER [Vere 1983] é um planeador de actividades que combina planeamento com simulação determinística, guiada por objectivos, para realizar escalonamento das actividades. Neste sistema as actividades são representadas por regras, apelidadas de produções relacionais, parecidas com as regras usadas no sistema de planeamento STRIPS [Fikes 1971] e são compostas por três componentes: o contexto, o antecedente e o consequente. O contexto contém pré-condições para a actividade, o antecedente pré-condições a serem retiradas do modelo do ambiente quando a actividade ocorre e o consequente literais a juntar ao modelo do ambiente quando a actividade ocorre.

Também o ISIS, referido na última secção, usa regras específicas do domínio que são aplicadas antes e depois da invocação do mecanismo de procura utilizado em vários níveis de construção de uma solução de escalonamento. As regras usadas antes da procura servem para construir um problema a ser resolvido com a procura como, por exemplo, determinar a direcção do escalonamento (escalonamento para a frente a partir da data de início ou para trás a partir da data limite), criação de restrições em falta (de data limite, relativos a trabalhos em curso), escolha do conjunto de operadores de procura. Após a procura aplicam-se regras para avaliar os resultados e, se não se obteve um escalonamento aceitável, para propor relaxação de restrições (por exemplo, relaxar a data limite) para fazer re-escalonamento.

Exemplos de outros sistemas de escalonamento baseados em regras são o OPAL, que utiliza regras juntamente com redes semânticas para representar conhecimento e o descrito em [Fischer 1994] que é realizado por um sistema multi-agente baseado em regras.

Muitos sistemas de IA representam conhecimento através de cláusulas de lógica, ou são realizados numa linguagem baseada em lógica. Por exemplo, REAKTION [Henseler 1993], um sistema para escalonamento reactivo, é realizado na linguagem PROLOG.

No sistema descrito em [Sauer 1993] o conhecimento de escalonamento é constituído por heurísticas representadas por regras do tipo condição-acção. A parte da condição especifica em que situações se aplica a regra, os objectivos que a regra atinge e que eventos resolve. A parte da acção é utilizada para invocar estratégias predeterminadas, para descrever completamente estratégias de escalonamento ou re-escalonamento ou ainda descrever planos não instanciados. Ambas as partes podem conter chamadas à linguagem PROLOG.

A lógica difusa (fuzzy logic), uma classe de lógicas de múltiplos valores em que as proposições podem ter valores de verdade difusos, não se limitando aos dois valores

verdadeiro e falso, é por vezes utilizada representar o conhecimento vago dos peritos

humanos. Estas lógicas baseiam-se na teoria dos conjuntos difusos (ver, por exemplo, [Kaufmann 1977]), em que a noção de membro de um conjunto é difusa, i.e., pode variar gradualmente entre os extremos de membro e não membro. Numa versão aperfeiçoada do sistema OPAL descrita em [Bensana 1993], empregam-se critérios e regras de decisão difusos para focar a procura de uma solução. Durante a resolução do problema, um critério de avaliação é usado para escolher o conflito (par de tarefas competindo pelo mesmo recurso) mais interessante a resolver a seguir, entre os que existem. A seguir, regras de decisão difusas decidem a sequenciação das duas tarefas envolvidas no conflito. Estas regras exprimem uma avaliação baseada numa preferência na resolução de um conflito. Existem regras difusas de prioridade (análogas às regras heurísticas SPT, EDD, FIFO, etc.), de folga (para escolher a

sequência que economiza mais folga temporal) e regras difusas específicas que podem ser definidas dependendo da aplicação.

No sistema de escalonamento para fabrico de aço descrito em [Dorn 1994a] e [Dorn 1994b] a teoria dos conjuntos difusos é usada para representar restrições e comparar soluções mediante uma função de avaliação que determina se um escalonamento é melhor ou pior a respeitar as restrições. Valores difusos são usados para descrever a duração das tarefas, se os processos estão mais ou menos atrasados, se dois processos a executar sequencialmente no mesmo recurso são mais ou menos compatíveis do ponto de vista químico e se os processos são mais ou menos prioritários. Por exemplo, a compatibilidade de dois processos para execução sequencial no mesmo recurso, para cada elemento químico, é estabelecida por regras difusas que, a partir de uma medida de comparação entre as quantidades do elemento nos aços do primeiro processo e do seguinte fornecem uma medida de compatibilidade dos dois processos. A medida de comparação é expressa pelos valores difusos menos, um-pouco-menos, igual,

um-pouco-mais, muito-mais e no-limite, associados, através de uma função de pertença, a

gamas de valores numéricos obtidos da composição de cada aço; a conclusão é expressa pelos valores difusos de compatibilidade muito-baixa, baixa, média, alta e muito-alta. Para obter a compatibilidade para todos os elementos importantes nos dois aços é calculada uma média ponderada de cada um destes valores. Para avaliar em quanto as restrições de compatibilidade de um escalonamento são satisfeitas, as médias ponderadas para cada par de processos sequenciados em cada recurso, são depois combinadas através do operador de conjunção difusa.

O sistema descrito em [Custódio 1992] e [Custódio 1993], para planeamento e escalonamento da produção, baseia-se também em lógica difusa e usa uma estrutura hierárquica de controlo em que a resolução de problemas de produção diferentes é distribuída a vários níveis.