I SBAI - UNESP - Rio Claro/SP - Brasil
Uma Arquitetura Adequada à Resolução de
Problemas de Configuração.
Alberto N. de Castro Jr.*
Crediné Silva de Menezes
Universidade Federal do Espírito Santo
Centro Tecnológico - Mestrado em Automação
Cx Postal 019011 - Vitória-ES - 29060-900.
Email:albertoj@brufes ou credine@brufes
Resumo
Propomos um ambiente para representar e processar conhecimento, adequado à
resolução dos problemas de configuração. A arquitetura proposta possui recursos como
múltiplas bases de conhecimento e dois níveis para a representação do conhecimento,
além de permitir ao usuário interagir com o sistema, modificando o processo de busca
de soluções.
"Fundação Universidade do Amazonas
- 86-
I SBAI- UNESP - Rio Claro/SP - Brasil
1
Introdução
Ao contrário do que ocorreu com os problemas de interpretação, para os quais existe um
grande número de ferramentas disponíveis principalmente nas tarefas de diagnóstico
e controle, para os problemas de construçã.o há ainda poucas ferramentas, e mesmo
assim, sempre restritas a certos domínios em particular.
Propomos aqui um ambiente destinado a representar e processar conhecimento que
seja adequado à resolução dos problemas d~ configuração. Trata-se de um 'shell' onde
o usuário descreve o domínio de um determinado problema, bem como as estratégias
e preferências utilizadas na sua resolução, atuando diretamente sobre o processo de
resolução.
Uma vez observadas as características dessa classe de problemas, foram definidos
os requisitos de tal ambiente e agregados recursos diferenciadores, tais como a representação do conhecimento em dois níveis (declarativo e procedimental) e a utilização
de múltiplas bases de conhecimento. É um sistema expansível, com o qual o usuário
pode interagir.
2
Trabalhos Correlatos
Para mostrarmos o contexto onde se insere esse trabalho, faremos um breve apanhado
dos trabalhos correlatos.
Como mencionado anteriormente, grande parte dos sistemas que utilizam recursos
oriundos da Inteligência Artificial e são aplicados na prática, destinam-se à lidar com
problemas de interpretação. Para a outra categoria de problemas (os de construção),
somente poucas ferramentas foram criadas, sempre abrangendo um domínio específico,
como é o caso dos sistemas RljXCON, MOLGEN e VT [3], dentre outros.
Combinando técnicas da resolução de problemas de satisfação de restrições com recursos como o backtracking, Lauriere [4] propôs o sistema ALICE, que procura atender
a um largo espectro de problemas. ALICE tem um conjunto de primitivas na qual o
usuário deve expressar o problema, e um conjunto de heurísticas gerais que podem ser
utilizadas na sua resolução. Contudo, ALICE é uma caixa-preta que não possibilita ao
usuário interagir com e modificar o processo dedutivo.
Hentenryck[13] apresentou uma linguagem de programação lógica destinada a manusear restrições, CIJIP. O aspecto principal dessa proposta é a redefinição da lógica
de primeira ordem, procurando incorporar técnicas de consistência.
A partir de CHIP, outra linguagem para tratar com restrições foi desenvolvida:
Charme. Procurando inserir conceitos de objetos à linguagens desse tipo, surgiram
linguagen s como ConstraintLisp e Pecos[5,6].
A arquitetura aqui proposta se situa entre a faixa ocupada pelas linguagens genéricas
(como ALICE ou CHIP) e as aplicações restritas a um domínio específico. Ao mesmo
tempo que o usuário não precisa elaborar um novo programa a cada aplicação, ele pode
utilizar esse shell num conjunto relativamente amplo de aplicações.
3
Classificação dos Problemas
Clancey[2] propôs uma análise em termos das operações genéricas sobre um sistema,
distinguindo entre operações sintéticas que constroem um sistema e operações analíticas
que interpretam um sistema. Esses conceitos bem genéricos foram especializados, resultando em uma análise hierárquica dos tipos de operação que um programa pode
- 87-
I SBAI - UNESP - Rio Claro/SP - Brasil
fazer. Jackson[3] apresenta a seguinte representação dessas hierarquias:
INTERPRETAÇÃO
CONSTRUÇÃO
~
~
Especificar. Projetar
Identificar_ PredizerControlar
Montar
AI
A
Configurar
Monitorar Diagnosticar
Planejar Modificar
Figura 3.1: Classificação dos Problemas
3.1
Classificação x Construção
o aspecto principal para distinguir entre problemas de classificação (ou interpretação)
e de construção, é que no primeiro o conjunto-solução pode ser previamente enumerado.
No segundo caso, pode-se dizer que as soluções são construídas ao invés de selecionadas.
Teoricamente, também para o segundo caso se poderia enumerar o conjunto-solução,
contudo, para a maioria dos problemas desse grupo, o tamanho desse conjunto seria
de tal ordem que tornaria a tarefa impossível.
Construir uma solução para um problema, normalmente envolve ter algum modelo
da estrutura e do comportamento de um objeto complexo que se está tentando construir. Este modelo deve conter conhecimento concernente às restrições que o 'produto
final' deve satisfazer.
Por exemplo, na geração de um plano para um robô atingir certo objetivo, existirão
restrições físicas e temporais que ordenarão certas ações ou sequência de ações. Nesse
problema co,mo na maioria das tarefas de planejamento, o espaço de sequências possíveis
de ações é essencialmente infinito; então não existe meio para que todas as sequências
possam ser previamente armazenadas para posterior seleção. A ordem na qual as
coisas são feitas é também muito importante em tarefas de montagem e configuração.
Na configuração, os elementos da solução são componentes, e soluções são combinação
de componentes que formam um objeto complexo que satisfaça certas restrições.
3.2
Problemas de Configuração
Os problemas de configuração tem como componentes principais:
• Um conjunto de objetos quaisquer (recursos) que devem ser alocados segundo as
restrições.
• Um conjunto de restrições que determinam como os recursos devem ser arruma·
dos.
• O quadro, que é o 'invólucro' de uma solução, é onde os recursos serão arrumados.
Uma característica importante em problemas desse tipo é que teoricamente não há
uma solução melhor que outra. Para ser uma solução, qualquer configuração obtida
deve apenas atender às restrições especificadas, não há um custo ou função equivalente
que caracterize um ótimo. 1 Em vista disso, muitas vezes necessita-se 'navegar' por
um conjunto de soluções. Alguns exemplos de problemas desse tipo são:
1É
claro que há estratégias visando conseguir eficiência na busca de uma solução.
- 88-
I SBAl - UNESP - Rio Claro/SP - Brasll
1. Preenchimento de tabelas ou quadros, tais como:
• 'chaves' de campeonatos;
• ocupação das salas de um prédio, como salas de uma escola;
• horário escolar.
2. Mapa de atividade (ou de folga) de pessoal (trabalho em turnos).
3. Disposição dos objetos em um local (lay-out).
4. Carteira de Investimentos (distribuição de capital).
5. Distribuição das frentes de serviço.
4
Modelagem do Conhecimento
Necessitamos proceder o entendimento da atividade em questão para a consequente
modelagem do conhecimento nela envolvido[lO,11,3]. A adequada representação desse
conhecimento é um requisito de qualquer Sistema Baseado em Conhecimento (SBC).
Um SBC pode ser definido como qualquer sistema que realiza uma tarefa pela manipulação de uma representação simbólica de conhecimento.
Tal modelagem e representação do conhecimento tem que considerar a finalidade
para a qual ele será utilizado. Esse é um ponto que diferencia uma coleção qualquer
de fatos, de um corpo do conhecimento.
Deve-se considerar alguns critérios para se determinar corno o conhecimento envolvido na classe de problemas em questão deve ser agrupado, tais como:
• Segundo sua natureza - ou seja, a que 'parte' do problema o conhecimento se
refere, à definição ou à resolução.
• Segundo a abrangência - determinando a que nível de generalidade tal conhecimento pode ser considerado: em qualquer problema de uma classe, naqueles que
apresentarem certas características ou só em algumas exceções.
• Segundo a utilidade no processo de resolução - determinando qual parte do conhecimento envolvido será utilizado para orientar a busca de soluções, bem como
quando e onde esse conhecimento será utilizado.
• Segundo a utilidade nos processos complementares - visando utilização do conhecimento em processos como aquisição de conhecimento ou explicação do processo
de resolução.
Como resultado da análise dos critérios acima, foram identificados 5 grupos básicos
de conhecimento, cujas características básicas são:
• Dados (componentes)
Nesse grupo estão as informações básicas sobre urna determinada ocorrência do
problema no mundo real ou seja, de urna 'instância' do problema. Estão nesse
grupo os componentes básicos, que durante o processo de busca de soluções, devem ser alocados ou dispostos segundo os critérios descritos nos outros grupos.
Também deve estar aqui a forma ou 'molde' onde os componentes serão dispostos.
• Restrições
Esse grupo de conhecimento é extremamente importante pois é ele quem deter-
mina a redução no tamanho do conjunto de soluções de determinado problema.
Uma restrição é um tipo de conhecimento que determina basicamente urna condição
de validade em qualquer dos casos abaixo:
- 89-
I SBAI - UNESP - Rio Claro/SP - Brasil
1. Sobre componentes.
Determinando se um componente proposto possui as características necessárias para ser candidato aos demais processos. Exemplo de restrições desse
tipo:
- Os componentes devem ser de uma mesma categoria.
- Cada componente deve ter associado a ele um conjunto de características.
2. Sobre arranjos.
Determinando se um número determinado. de componentes podem ser associados de modo a formar um grupo que chamamos de arranjo, que por sua
vez serão os componentes de uma solução. Exemplo de restrições desse tipo:
Os componentes devem ser diferentes entre sí.
Não se pode utilizar mais de um componente com uma característica C1
associada.
Deve haver uma quantidade mínima m de componentes com certa característica C2 associada.
3. Sobre soluções.
Análogo ao anterior, determina se um conjunto de arranjos podem ser associados de modo a formar uma solução. Exemplos de restrições desse tipo
são:
Os arranjos devem ser diferentes entre sí.
Uma operação sobre certa característica associada C3 dos componentes
de um arranjo deve ser diferente da mesma operação noutro arranjo.
• Preferências
Uma preferência é uma condição que como na restrição comum, estabelece a
validade de uma configuração. Contudo, essa condição é considerada enquanto
houver solução que a atenda. Caso não existam soluções sob tal condição, a
condição é 'relaxada'.
• Estratégias
Uma parte importante do conhecimento referente a determinada classe de problemas diz respei to à sua resol ução, descrevendo si tuações favoráveis, funções
avaliadoras (heurísticas) e demais informações e/ou processos que quando utilizados, orientam a busca de uma solução. Tal conhecimento é conhecido como
estratégico.
As estratégias podem ser hierarquizadas segundo sua adequação ao conjunto de
problemas, podendo ser de uso particular ou geral.
A adequada modelagem do conhecimento, observando a função desse conhecimento no processo de resolução é um exemplo de estratégia. Outra estratégia
que pode ser utilizada, refere-se à formação de determinada configuração (seja
um arranjo ou solução). A princípio, todas as restrições devem ser satisfeitas.
Essa estratégia consiste em associarmos a cada restrição uma prioridade, segundo
a qual as restrições 'mais fortes' seriam checadas primeiro, permitindo que uma
configuração inadequada seja logo descartada. De modo análogo, se poderia priorizar as preferências, de modo que na hora dessas preferências serem relaxadas,
isso seguisse uma sequência determinada pelo usuário.
• Esqueletos
Um esqueleto é um esquema básico, uma configuração parcial, parte de um arranjo
ou de uma solução que o usuário pode informar ao sistema, definindo como deseja
tal configuração.
-90-
I SBAl - UNESP - Rio Claro/SP - Brasil
Com isso, o usuaflO pode informar que deseja que certos componentes sejam
dispostos juntos num mesmo arranjo, ou exatamente o contrário: que certos
componentes não devem participar de um mesmo arranjo. Do mesmo modo
quanto aos arranjos numa solução.
Certamente esses esqueletos devem também atender às restrições descritas, a
menos que se deseje um tratamento de exceção.
Nesse grupo ainda, inserimos um outro tipo de conhecimento, imprescindível a
todo o processo: A definição de um estado-solução. Ou seja, é onde se estabelecem
os critérios segundo os quais um conjunto de arranjos forma uma solução.
Uma ferramenta construída com essas características de sintonia funciona como um
laboratório para quem deseja resolver diversos problemas do tipo em questão.
5
Processamento
Nosso processo de resolução consiste numa procura no espaço de estados. Assim,
resolver um problema consiste em 'navegar' no espaço de estados desse problema:
Partimos de um estado inicial, passamos por estados intermediários até atingir um
estado solução.
O processo termina segundo a interferência do usuário, que pode solicitar ou não
que outra solução seja encontrada.
Um estado é composto dos seguintes elementos:
• arranjos já concluidos.
• componentes que ainda não foram utilizados na formação de arranjos.
• ponto de retorno (backtracking).
• informações adicionais ao processo.
O estado · inicial possui apenas componentes (podendo associar os esqueletos informados pelo usuário). Um estado final (solução) é aquele onde todos os componentes
foram arranjados adequa.damente, segundo os critérios definidos pelo usuário.
Cada estado possu i um número maior de arranjos que aquele imediatamente anterior, bem como um número menor de componentes restantes. Assim, cada novo estado
está pelo menos em termos quantitativos (tamanho do conjunto-solução), mais próximo
de uma solução que o anterior.
5.1
Mudança de estados
A geração de um novo estado a partir do atual, define um passo do processo, e pode
ser dividido em duas etapas:
5.1.1
Formação do arranjo
Quando um arranjo é proposto e aprovado, dá origem ao novo estado.
Inicialmente, uma composição de componentes candidatos a um arranjo é proposta.
Nessa hora, são utilizadas estratégias definidas pelo usuário para selecionar quais componentes tem a princípio, maior chance de ao formar um arranjo, constituir um caminho promissor. Dentre essas estratégias, podemos citar a do menor comprometimento,
que sugere que devem ser utilizados inicialmente aqueles componentes que deixam um
maior leque de opções ou caminhos a seguir. É também nesse ponto onde considera-se
os esqueletos (de arranjos) fornecidos pelo usuário.
- 91 -
I SBAI - UNESP - Rio Claro/SP - Brasil
A combinação proposta (arranjo) deve ficar registrada, para no caso de um retorno,
não gerar combinações repetidas.
Mas se não se consegue gerar nova arranjo, é hora de fazermos um retorno a algum
estado anterior do processo (operação de backlracking). O estado considerado deve
permitir a continuidade do processo, formando um arranjo diferente do anteriormente
gerado. 2
Quando nenhum caminho puder ser tomado (ou retomado), deve-se procurar por
uma preferência que possa ser relaxada, e. um novo caminho (com menos restrições)
será iniciado. Caso contrário o usuário é informado que não há mais soluções possfveis
e o processo termina.
5.1.2
Aprovação do arranjO
Nesse ponto devem ser verificadas o grupo de restrições e preferências que digam respeito à combinação de arranjos. Caso o arranjo não seja aprovado, voltamos à etapa
anterior.
Também aqui devem ser considerados os esqueletos de soluções fornecidos pelo
usuário.
U ma vez aprovado um arranjo, a geração do novo estado consiste simplesmente
de copiar do estado atual os arranjos existentes (inclusive o recém-criado) e registrar
os componentes restantes, o ponto de ponto de backtracking (normalmente o estado
anterior) e as informações adicionais.
5.2
Verificar se estado é solução
Caso o estado que foi gerado não atenda àquilo que o usuário definiu como solução, o
processo retoma à etapa de formação de novo arranjo.
Quando o estado atual é de fato solução, é feita uma consulta ao usuário sobre a
adequabilidade dessa solução às suas necessidades. Se a solução é de fato suficiente, o
processo termina.
Mas quando o usuá.rio solicita que uma nova solução seja encontrada, duas alternativas se apresentam:
1. Simplesmente retornar ao último ponto de backtracking (ou àquele indicado por
uma estratégia), retomando o processo e buscando uma nova solução. Como
os estados gerados são sempre diferentes que os anteriores, uma nova solução é
também sempre diferente das anteriores.
2. A soluçã.o encontrada é armazenada. O usuário é solicitado a informar novos
esqueletos ou mesmo restrições e preferências que por ventura tenham sido reconhecidas naquele momento.
De acordo com a influência desses novos critérios no processo de solução em
andamento, pode-se apenas dar continuidade ao processo de modo semelhante
ao tratado no ítem anterior, passando a considerar um conjunto adicional de
critérios ou, no caso dos critérios incluídos virem a alterar ou mesmo anular o
processo em andamento, um novo processo será iniciado. Caso se deseje que as
soluções obtidas até aquele momento não sejam novamente apresentadas, estas
devem ser armazenadas e na definição de um estado-solução deve ser explicitado
que qualquer solução deve ser diferente daquelas anteriormente armazenadas.
2Uma estratégia que se poderia utilizar aqui é o retorno ao n-ésimo estado anterior quando não se
conseguir gerar um novo estado devido ao número reduzido de componentes. O usuário poderia informar
qual o número mínimo de componentes a considerar.
- 92-
I SBAI - UNESP - Rio Claro/SP - Brasil
Requisitos
6
Seria adequado a um snc destinado à resolução dos problemas de configuração, possuir
alguns recursos como os relacionados a seguir [3,12,1,7,14,8].
6.1
Regime de Controle
o regime
de controle básico utilizado é o backtracking. Buscando melhorar o desempenho desse tipo de recurso, atuam as estratégias. Essas estratégias vão desde a
modelagem adequada do conhecimento, passam por sugestões mais inteligentes para
candidatos a arranjos, e até orientam a busca dos pontos de backtracking.
6.2
Multiplas Bases de Conhecimento
N a base de conhecimento de um SBC estão armazenados o conhecimento factual e o
conhecimento semãntico de um domínio, conhecimento extra-domínio e composições
das várias modalidades de conhecimento.
Além de cumprir a função de 'depósito' de conhecimento, a utilização de múltiplas
bases de conhecimento permite externalizar uma modelagem do conhecimento segundo
necessitamos, explicitando o agrupamento dos diversos tipos ou grupos de conhecimento.
Além de armazenar o conhecimento segundo os grupos definidos, a existência de
múltiplas bases facilita a implementação de estratégias, como a que diz respeito à
separação ou hierarquização de restrições e estratégias segundo sua aplicabilidade a
todos os problemas de uma classe (gerais) ou a determinadas situações (particulares).
Um recurso necessário é que tais bases possam ser utilizadas ora isoladamente, ora
em conjunto, segundo definido pelo usuário ou requisitado pelo processo de resolução.
6.3
Multiplos Níveis
A possibilidade de permitir que o usuário descreva o domínio de um problema não só
por meio do conhecimento primitivo e derivado, mas por processos (procedimentos)
complexos, é um recurso importante ainda pouco utilizado em SBC's, particularmente
como sugerido aqui [9].
Basicamente, propomos a utilização de dois níveis para representar e manusear o
conhecimento:
• Nível declarativo.
Destinado aos fragmentos de conhecimento passíveis de descrição formal, em particular fatos e associação causal entre fatos .
• Nível procedimental.
Destinado a descrever ações a serem executadas condicionalmente ou não, segundo ordem determinada pelo programador.
No nível declarativo são efetuadas deduções capazes de extrair conhecimentos ou
conclusões não mencionados explicitamente, baseados em consultas feitas pelo usuário.
O processo pelo qual essas conclusões são obtidas não sofrem interferência do usuário,
embora seja desejável a capacidade de dar explicações aceitáveis sobre como uma conclusão foi obtida.
Já na parte do conhecimento agrupado no nível procedimental, envolvendo o controle do processo de resolução de um problema específico ou de uma classe de problemas, deve haver uma linguagem própria que permita a composição de procedimentos
- 93 -
I SBAI - UNESP - Rio Claro/SP - Brasil
visando a execução de ações. Esse elenco de procedimentos se somarão a um núcleo
pré-programado compondo o 'programa' utilizado na resolução do problema.
Urna semãntica precisa, deve estabelecer a necessária integmção entre entre os dois
níveis, de modo que no nível procedimental possa ser requerida uma dedução sobre o
conhecimento representado no nível declarativo.
No nível procedimental poderão ser ativadas não só as composições de procedimentos lá armazenadas, mas também outros procedimentos externos ao ambiente, permitindo ligação com o 'mundo exterior'.
6.4
Diagrama da Arquitetura
A figura 6.2 apresenta os elementos principais do ambiente, dispondo-os segundo o
nível que atuam.
Usuário
Conhecimentof----~
procedural
Controle
do
processo
f-----..IProcedimentos
externos
tNível
rocedural
~ Nível declarativo
ntermediários
Conhecimento Declarativo
.-----~---,
Máquina
de
Inferência
Figura 6.2: Esquema da Arquitetura
o controle do processo é o 'centro' do ambiente, e corno o nome informa, gerencia
a comunicação com o usuário, solicita a atuação da máquina de inferência, dirige o
processo de busca, gera os estados, utiliza o conhecimento armazenado sob forma de
procedimentos e ativa processos externos, complementares ao ambiente.
A máquina de inferência que atua no nível declarativo, serve para provar propriedades acerca do conhecimento declarativo e dos estados. Sua atuação é sempre gerenciada
pelo controle do processo.
Durante o procedimento de propor-e-testar, é a máquina de inferência é quem
cumpre a etapa de teste, ou checagem, conferindo estados e restrições, preferências,
etc.
- 94-
I SBAI - UNESP - Rio Claro/SP - Brasil
Certamente o conhecimento representado no esquema está distribuido por diferentes
bases, cuja organização pode variar conforme implementação.
7
Considerações Finais
Foi apresentada a arquitetura de um sheU destinado à resolução de problemas de configuração, baseando-se nas características próprias a esse tipo de problema.
Atualmente está sendo efetivada a implementação dessa arquitetura, que deverá
utilizar os recursos de um ambiente para processamento de conhecimento existente,
baseado em lógica de primeira ordem. Simultaneamente, estão sendo registradas situações do 'mundo real' que ilustrem a utilização do sistema em diferentes domínios.
Referências
[1] Chandrasekaran, B.; Design Problem Solving: A Task Analysis; AI Magazine,
Winter 1990, p.59- 7l.
[2] Clancey, W.J.; Heuristic Classification; Artificial Intelligence, 27,1985, p.289-350.
[3] J ackson, Peter; Introduction to Exper't Systems; Addison- Wesley, 1990.
[4] Lauriere, J .L.; Problem Solving and Artificial Intelligence; Prentice RaU, 1990.
[5] Liu, B.; A Comparison of Charme, Pecos and ConstraintLisp; Technical Report,
Information Technology Institute, 1991.
[6] Liu, B. e Ku, Y-W.j ConstraintLisp: An 0.0. Constraint Programming Language;
ACM SIGPLAN, 11, Nov 92, p.17-26.
[7] Mackworth, A.K.; Constmint Satisfaction; Encyclopedia of AI, 1986.
[8] Menezes, Credinéj Ambientes Para Processamento de Conhecimento; PUCjRJDI, 'Tese de Doutorado, 1989.
[9] Menezes, Crediné e Carvalho, R.L.; Processamento de Conhecimento em Ambientes Multinivelados; Relatório de Pesquisa, LNCC, 1990.
[10] Polya, George; A Arte de Resolver Problemas; Ed. Interciência, 1981.
[11] Simon, H.A.; Science of the Artificialj The MIT press, 1969.
[12] Steels, L.; Components of Expertisej AI Magazine, Summer 1990, p.28-49.
[13] Van Hentenryck, P.; Constraint Satisfaction in Logic Programmingj The MIT
Press, 1989.
[14] Vieira, Newton; Máquinas de Inferência para Processamento de Conhecimento;
PUCjRJ-DI, Tese de Doutorado, 1987.
- 95-
Download

uma arquitetura adequada à resolução de problemas de configuração