• Nenhum resultado encontrado

Algoritmos Genéticos

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

2.2.2.5 Escalonamento Construtivo

No escalonamento construtivo, uma ou mais soluções parciais de escalonamento são mantidas e progressivamente ampliadas em cada passo, durante a resolução do problema.

No sistema ISIS [Fox 1982], [Fox 1983], [Fox 1994], aplicam-se técnicas procura heurística guiada por restrições (ver o Apêndice C) ao problema do escalonamento. Neste sistema é dado ênfase especial à representação e ao uso de conhecimento sobre restrições, que dá suporte à

39

Relaxable constraints, soft constraints ou preferences, são designações frequentemente empregues na literatura, para o que aqui se designa por restrições relaxáveis, ou preferências; hard constraints ou constraints, designam as restrições rígidas, ou, simplesmente, restrições.

40

resolução de conflitos e relaxação de restrições. O ISIS adopta uma perspectiva de escalonamento centrada no processo (i.e., escalona um processo inteiro de cada vez) e segue uma abordagem construtiva (ver também o Apêndice C) hierarquizada em quatro fases, a seguir resumidamente descritas.

Na primeira fase o processo com maior prioridade é escolhido para ser escalonado. As prioridades são calculadas mediante a data limite e o tipo de ordem que desencadeou o processo (que varia desde a encomenda mais urgente para peças de substituição até à ordem de fabrico para armazenamento, menos urgente). Numa segunda fase, dados os limites temporais impostos para o processo (data de início e data limite), são gerados os tempos limite para cada tarefa do processo, para cada um dos recursos alternativos nos quais a tarefa pode ser executada. É usada programação dinâmica (análise de caminho crítico) para, tendo em conta a capacidade finita dos recursos, determinar tempos de início mais cedo e tempos de fim mais tarde de cada tarefa (a propagar para a fase seguinte na forma de restrições sobre cada tarefa), de forma rápida, ignorando restrições e recursos com pouco impacto em problemas de congestionamentos de recursos. Esta fase foi introduzida como aperfeiçoamento, após ter sido verificado que o desempenho do ISIS era fraco devido ao facto de haver um tempo de espera elevado em recursos congestionados e permite tentar tornear o problema do congestionamento de certos recursos por escolha de recursos alternativos, ou fazendo chegar o processo mais cedo ao recurso congestionado. Na terceira fase, que consiste na procura do escalonamento mais promissor, é usada uma estratégia de procura em faixa (ver o Apêndice B) num espaço de estados de escalonamentos parciais alternativos, para definir e ordenar um conjunto de escalonamentos considerados melhores. A propagação de restrições é progressiva, i.e., em cada estado, as restrições existentes advêm das decisões feitas em estados anteriores na procura e servem para limitar o espaço de procura. Nesta fase os recursos são sequencialmente afectados às tarefas, escalonando para trás, a partir da última tarefa, ou para a frente, a partir da primeira tarefa do processo. Os limites temporais para cada tarefa determinados na fase anterior são refinados tendo em conta agora todas as restrições. Quando há conflitos, as restrições envolvidas são identificadas e relaxadas e o escalonamento reparado. Numa quarta fase estabelecem-se efectivamente as reservas de recursos, por estabelecimento dos tempos de execução das tarefas em cada recurso necessário, deslocando tarefas para mais cedo no tempo (avanço) ou para mais tarde (atraso), dentro dos limites temporais para elas determinados, de modo a minimizar o tempo de fluxo. Estas quatro fases são repetidas até que todos os processos tenham sido escalonados.

Na óptica do ISIS as restrições são classificadas em restrições de objectivos organizacionais (por exemplo: datas limite, níveis de trabalhos em curso, níveis de produção, níveis dos recursos como pessoal, matérias-primas, ferramentas), restrições físicas (limitações de funcionalidade dos recursos), restrições causais (precedências e requerimentos de recursos das tarefas), disponibilidade dos recursos (um recurso afectado a uma tarefa não estará disponível para outra) e preferências (preferências por recursos, tarefas, ou sequências de tarefas, por razões de qualidade ou de custo) [Fox 1994]. Na representação das restrições é-lhes associado conhecimento. Para relaxação de restrições são associados valores que exprimem uma preferência por cada relaxação possível, ditos valores de utilidade. Um outro aspecto é o da

importância de uma restrição, um peso que indica a influência relativa da restrição (por

exemplo, em processos de alta prioridade, o ISIS dá um peso elevado às restrições de data limite). Um terceiro aspecto é o da relevância de uma restrição, que define as condições em que ela é aplicável. A interacção entre restrições é outra forma de conhecimento, que indica como, e em quanto, a satisfação de uma restrição interfere com a satisfação de outra; estas interdependências assumem a forma de relações entre restrições, com medidas de sensibilidade

que indicam o graus e direcções de influência entre as restrições. Este conhecimento é usado para diagnosticar as causas de soluções propostas pelo sistema e sugerir relaxações para restrições relacionadas que poderão dar melhores resultados. A ideia básica da utilidade é a de permitir escolher, quando há que relaxar restrições, das alternativas ainda disponíveis, as que maximizam as preferências, de modo a tentar não comprometer muito a qualidade da solução (encontrar a solução menos “não satisfatória”). Também na fase de procura, o ISIS atribui, a cada estado de procura, um valor de avaliação resultante de uma média, ponderada pela importância, dos valores de utilidade das restrições relevantes para o estado actual e para os estados antecessores. Estes valores são usados para determinar se uma solução final é aceitável.

Mais do que um sistema único, identificou-se no projecto ISIS uma família de sistemas de escalonamento automático, baseados em satisfação de restrições, cujo objectivo era o de serem desenvolvidos e testados em fases sucessivas, com uma arquitectura progressivamente mais sofisticada em cada fase. Em princípio deveria vir a incorporar-se toda a gama de restrições de situações reais do problema, mas a continuação destes esforços parece ter sido abandonada, embora tenha sido depois, de alguma forma, continuada pelo sistema OPIS. Uma das razões para isto é o facto do desempenho do sistema ser negativamente afectado pela rigidez do procedimento de procura, que impunha uma perspectiva centrada no processo, isto é, um escalonamento dos processos um por um. O procedimento era eficiente no que respeita à redução das existências mas tinha dificuldade em optimizar a utilização dos recursos congestionados.

O sistema de escalonamento OPIS (Opportunistic Intelligent Scheduler) [Smith 1990], [Smith 1994] deu continuação aos esforços iniciados com o desenvolvimento do sistema ISIS e introduziu algumas técnicas novas de escalonamento baseado em restrições. Em primeiro lugar, identificou e demonstrou a utilidade de usar múltiplas perspectivas de escalonamento. O OPIS usa uma perspectiva centrada nos processos, idêntica à do ISIS, e uma perspectiva

centrada nos recursos, que é usada para escalonar recursos congestionados. Distingue,

portanto, recursos congestionados de recursos não congestionados e reconhece que podem surgir congestionamentos novos durante o processo de escalonamento. Em segundo lugar tem a capacidade de, durante o processo de escalonamento, mudar de perspectiva de escalonamento, o que é apelidado de estratégia de escalonamento oportunista. O escalonamento é um processo iterativo em que, no início de cada ciclo, é feita uma análise de

capacidade para determinar se há um grau de competição elevado entre as tarefas por algum

recurso particular. Se isso acontece esse recurso é considerado congestionado e é usada a perspectiva centrada no recurso para escalonar todas as tarefas que o requerem; caso contrário é usada a perspectiva centrada no processo da mesma forma que no ISIS (o processo com maior prioridade é escolhido e todas as tarefas desse processo são escalonadas). Em terceiro lugar, para além de escalonamento predictivo, i.e., prescrição de soluções de escalonamento, como no ISIS, o OPIS prevê escalonamento reactivo (ver, por exemplo [Szelke 1994], [Kerr 1995]), de modo a poder adaptar dinamicamente escalonamentos estabelecidos predictivamente para acomodar eventos não previstos no ambiente (por exemplo, atrasos e falhas nos recursos, materiais que não chegam a tempo, alterações na prioridade dos processos, cancelamento de processos) em tempo real sem comprometer a continuidade da execução e a satisfação dos objectivos de escalonamento. No OPIS, o escalonamento reactivo é baseado na revisão/adaptação incremental do escalonamento e opera tanto para acomodar eventos não previstos no ambiente, como para responder a oportunidades de melhoria de uma solução que apareçam como resultado de acções anteriores de modificação do escalonamento

(quer dizer, pode operar tanto devido a razões externas como internas relativamente ao sistema de escalonamento).

O facto de repetir a análise de capacidade sempre que foi escalonado um recurso ou um processo permite ao OPIS detectar o aparecimento de novos congestionamentos durante a construção do escalonamento e rever a estratégia actual de escalonamento, se for necessário. Trata-se de um certo tipo de oportunismo, ou estratégia oportunista, de granulação grossa (é necessário escalonar completamente um recurso ou um processo, antes de focar a atenção noutro recurso ou processo) designado por macro-oportunismo. Embora com a vantagem de reduzir o número de análises de capacidade (que tem custo computacional elevado), o macro-oportunismo pode revelar-se limitado, pois nem sempre os congestionamentos se estendem por todo o horizonte temporal de escalonamento e podem deslocar-se antes de todas as tarefas associadas serem escalonados. Como resultado, ao fim de um ciclo de escalonamento, o sistema pode já ter enveredado por uma solução não tão boa quanto a que poderia ter se, após cada análise de capacidade, escalonasse um menor grupo de tarefas (e não todas as tarefas que usam um recurso, ou todas as tarefas de um processo inteiro). Uma abordagem que usa uma estratégia oportunista de granulação mais fina, em que é escalonado um grupo de tarefas em número relativamente pequeno (no limite, uma tarefa) após cada análise de capacidade, é designada por estratégia micro-oportunista, ou micro-oportunismo. O sistema OPIS usa uma arquitectura baseada no conceito de blackboard que fornece a infra- estrutura para realização de métodos e estratégias de revisão de escalonamentos baseada em restrições e que facilita muito os aspectos positivos do OPIS acima salientados. A arquitectura de blackboard [Erman 1980], [Hayes-Roth 1988] pode ser considerada uma evolução da arquitectura apelidada na IA de sistema de produção (production system, ver o Apêndice B).41 Nesta arquitectura, um conjunto de processos, designados por fontes de conhecimento (knowledge sources), usam uma memória partilhada denominada quadro preto (blackboard) para colocar estruturas simbólicas, apelidadas de hipóteses, que contribuem para a resolução de um mesmo problema. Cada fonte de conhecimento é um “especialista” numa área específica e pode encontrar uma hipótese na qual pode trabalhar e modificar ou criar novas hipóteses no quadro preto. Esta arquitectura tem a vantagem de permitir a coexistência e cooperação de várias fontes de conhecimento úteis na resolução de um problema no mesmo sistema, de uma forma modular.

No sistema OPIS existem fontes de conhecimento de métodos de escalonamento (executam tarefas de escalonamento e modificam a representação da solução actual), de actualização do modelo (que actua quando há indicação do exterior de modificações nas restrições do problema) e de análise (que fornecem informação necessária à formulação de tarefas de escalonamento). Adicionalmente, constituem a infra-estrutura oportunista e multi-perspectiva de escalonamento o subsistema de manutenção de escalonamentos (que mantém uma representação das restrições actuais da solução) e o gestor de topo (para coordenar o uso dos métodos de escalonamento, análise e actualização do modelo), que contém um ciclo dirigido por eventos onde é aplicado o conhecimento das estratégias de escalonamento com base em restrições.

O escalonamento das tarefas de um processo é obtido partindo da instanciação de um protótipo do processo (plano de produção). O subsistema de manutenção de escalonamentos mantém, em cada passo da resolução do problema, restrições de dois tipos: limites temporais (os tempos de início mais cedo e de fim mais tarde de cada tarefa) e capacidade disponível dos

41

recursos (sequências de intervalos de tempo com a capacidades disponíveis associadas para

todo o horizonte temporal para cada recurso). Estas restrições vão sendo actualizadas como resultado de decisões de escalonamento do sistema e de haver restrições originadas por eventos externos. A propagação de restrições resulta destas modificações no escalonamento, podendo originar dois tipos de conflitos: conflitos temporais, se há violação de restrições de precedência ou da data limite do processo e conflitos de capacidade, se os requerimentos de tarefas escalonadas excedem a capacidade disponível de um recurso durante algum intervalo de tempo.

As fontes de conhecimento de análise usam métricas para estimar, de forma resumida, graus de flexibilidade das restrições (folgas, atrasos, tempos de recurso parado) e de severidade dos conflitos (duração e número de tarefas envolvidas num conflito) existentes no escalonamento. Os valores fornecidos por estas métricas são usados para escolher as fontes de conhecimento que aplicam os métodos de escalonamento apropriados. Para além de métodos para escalonamento predictivo de recursos e de processos, existem uma série de outros métodos para revisão de escalonamentos usados em escalonamento reactivo, incluindo métodos para dar resposta a conflitos, métodos que realizam tarefas de escalonamento como deslocar tarefas no tempo para mais cedo, ou para mais tarde, ou trocar os recursos afectados a duas tarefas. Tal como o OPIS, o sistema de escalonamento SONIA [Collinot 1988], [Le Pape 1994] para escalonamento predictivo e reactivo em processamento intermitente, é também baseado no conceito de blackboard. Esta arquitectura permite-lhe integrar algoritmos matemáticos, conhecimento de especialistas em escalonamento, conhecimento dependente da fábrica e capacidades interactivas. Em termos de modelação do domínio de escalonamento (representação de escalonamentos, de processos, hierarquias de recursos, tipos de restrições) o SONIA é muito semelhante ao OPIS. É um sistema de escalonamento macro-oportunista, pois cada fonte de conhecimento actua executando uma série de várias decisões de cada vez que é aplicada. É um sistema baseado em restrições e dá especial ênfase ao controlo inteligente da propagação de restrições e à selecção das heurísticas a empregar pelas fontes de conhecimento, que podem usar heurísticas diferentes conforme a situação em cada momento. A arquitectura do SONIA incorpora fontes de conhecimento de escalonamento predictivo e reactivo, de análise de capacidade e de conflitos, de interface com o utilizador e com o ambiente exterior e duas fontes para controlo do comportamento do sistema, denominadas controlador de propagação de restrições e controlador de heurísticas. Adicionalmente o sistema incorpora um sistema de gestão de escalonamentos e um sistema de propagação de restrições. O primeiro recebe informação de decisões de escalonamento e de eventos inesperados (falhas de máquinas, atrasos, na fábrica) e mantém o escalonamento, criando restrições temporais e de reserva, que envia para o sistema de propagação. Este último trata o problema puramente na perspectiva do PSR.

Como já anteriormente foi dito, na óptica do SONIA, a propagação de restrições é entendida como uma actividade dedutiva, em que são derivados restrições novas a partir das já existentes e detectadas inconsistências entre restrições. Ao contrário dos sistemas ISIS e OPIS, que incluem um sistema de gestão de restrições próprio, SONIA é suportado por um conjunto de procedimentos e uma linguagem para exprimir restrições, baseados em técnicas gerais de propagação de restrições.42 O componente gestor de restrições é um módulo independente do

42

Existem linguagens orientadas para resolução de restrições. Por exemplo, Programação em Lógica com

Restrições, ou Constraint Logic Programming (CLP), designa uma classe destas linguagens que são baseadas

sistema solucionador de problemas de escalonamento que se liga com este último, permitindo-lhe adicionar e remover restrições e permitindo o acesso à informação sobre as variáveis e as restrições do PSR. Aquele módulo pode registar dependências entre restrições (i.e., memoriza de que outras restrições foi originada cada restrição), para poder fornecer a informação necessária ao sistema sobre conflitos existentes de modo a que ele possa realizar retrocesso selectivo sem recriar as mesmas condições de insucesso.43

O gestor de restrições contém regras de dedução e regras de controlo. As regras de dedução indicam que inferências poderão fazer-se a partir de um conjunto de premissas (i.e., permitem deduzir restrições novas a partir de restrições existentes) e, ao serem aplicadas, executam funções de propagação de restrições. As regras de controlo especificam que inferências devem ser feitas em cada ponto do processo de resolução do problema e controlam, portanto, a aplicação das regras de dedução. Estas regras são associadas a cada função de propagação para especificar se, e em que condições, a função de propagação deve intervir no processo de propagação de restrições.

Existem fontes de conhecimento dedicadas a dois aspectos específicos de controlo do comportamento de escalonamento do sistema SONIA: o controlador de propagação de restrições e o controlador de heurísticas. O controlador de propagação de restrições pode alterar o conjunto de regras de controlo do gestor de restrições para regular a quantidade de propagação, de modo a permitir um compromisso entre a detecção de conflitos e o tempo computacional despendido na propagação. O controlador de heurísticas activa ou desactiva regras heurísticas do conjunto de regras heurísticas de escalonamento (e.g., EDD, ou escalonar recursos congestionados primeiro, se os houver) usadas pelas fontes de conhecimento de escalonamento, mediante informação de contexto obtida através das fontes de conhecimento de análise de capacidade.

O Micro-Boss (Micro-Bottleneck Scheduling System) [Sadeh 1991], [Sadeh 1994] é um sistema de apoio à decisão para escalonamento de processamento intermitente desenvolvido para a produção em-tempo (just-in-time)44 em fábricas, que integra componentes para escalonamento predictivo, reactivo e interactivo. O Micro-Boss tem em conta a capacidade finita dos recursos e dá ênfase à análise do espaço de soluções durante a procura, na qual emprega técnicas apelidadas de olhar-para-a-frente (look-ahead) para medir a procura e a competição das tarefas pelos recursos, usando heurísticas específicas para identificar e escalonar tarefas mais críticas. A abordagem ao escalonamento é micro-oportunista, pois o esforço para resolução do problema é continuamente direccionado para a tarefa mais crítica e para o recurso mais congestionado. O Micro-Boss tem uma perspectiva de escalonamento

centrada em tarefas, i.e., cada tarefa é considerada um ponto de decisão independente,

podendo ser escalonada sem que outras tarefas, usando o mesmo recurso ou pertencendo ao mesmo processo, o sejam. Resultados experimentais relatados em [Sadeh 1991] e [Sadeh 1994] indicam que as técnicas usadas neste sistema de escalonamento produzem melhores soluções, e em menos tempo, do que outras propostas na literatura de IO e IA, incluindo várias regras de despacho e técnicas de procura de granulação grossa (i.e., macro-oportunistas). Em particular, naqueles artigos defende-se que, em escalonamento da produção de processamento intermitente, com datas de lançamento e datas limite impostas, para os problemas maiores e

43

Ou seja, permite técnicas de retrocesso guiado por dependências (ver os apêndices B e C).

44

Sistema de gestão da produção guiado pela procura que, no que mais respeita ao escalonamento, dá especial atenção às datas limite e à minimização de atrasos e avanços. Baseia-se numa filosofia de produzir e entregar apenas o que é necessário, quando necessário e onde necessário e de sincronização dos fluxos de materiais e de redução das existências e tempos de fluxo [Roldão 1995].

mais difíceis, as heurísticas genéricas conhecidas para o PSR não são suficientes para guiar a procura, pois não têm em conta o grau de dificuldade em satisfazer restrições,45 nem a conectividade dos grafos de restrições. Propõem-se, então, heurísticas específicas enquadradas na estratégia micro-oportunista do Micro-Boss.

Nos problemas de escalonamento da produção pretende-se tipicamente encontrar não só uma solução que seja satisfatória, mas também uma solução de boa qualidade (idealmente a solução de melhor qualidade, i.e., pretende-se optimizar). No escalonamento da produção just-in-time pretende-se escalonar minimizando atrasos e avanços relativamente às datas limite impostas. Assim, este tipo de problemas, deve ser visto como um PSR com uma função objectivo a ser optimizada, i.e., como um problema de optimização com restrições, (POR, constrained

optimization problem ou COP) [Fox 1989], [Fox 1990], [Sadeh 1994]. Numa parte do

trabalho de investigação exposto em [Sadeh 1991], é apresentado um modelo probabilístico do espaço de procura que permite a definição de heurísticas de ordenação de variáveis e de valores apropriadas para a resolução do PSR de escalonamento de processamento intermitente com datas de lançamento e datas limite, com o algoritmo de procura do Micro-Boss. Outra parte amplia este modelo para tratar o problema de optimização correspondente, i.e., o POR de escalonamento. Aqui é usada uma função objectivo que tem em conta, de forma aproximada, a soma dos custos de atraso relativamente a datas limite e dos custos de posse trabalhos em curso e produtos acabados de cada processo.

O Micro-Boss emprega um algoritmo de procura em profundidade com retrocesso (ver o Apêndice B) que se inicia num estado de procura em que nenhuma tarefa está escalonada (ou, alternativamente, num estado com um escalonamento parcial que se pretende completar) com