terça-feira, 3 de junho de 2014

Linguagem de simulação e tipos de simuladores

Linguagens de Simulação
Modelos de simulação são geralmente muito complicados, tendo várias interações dentro de elementos de sistema e muitas destas alterações transformam dinamicamente durante a execução do programa. Assim, começou a se desenvolver linguagens especiais que promovem a tradução mais fácil do que as linguagens genéricas.
A simulação de sistemas pode envolver vários níveis de complexidade e assim softwares específicos têm sido desenvolvidos para diferentes casos.
As linguagens de simulação e os pacotes de simulação discreta são ferramentas muito úteis para a simulação de sistemas discretos. Alguns pacotes também incluem recursos para modelar sistemas de variáveis contínuas ou com um mix de variáveis contínuas e discretas.
As linguagens de simulação em computador facilitam o desenvolvimento e execução de simulações de sistemas complexos do mundo real. Neste contexto existem as linguagens de programação de uso geral como o FORTRAN, Pascal, C, C++, entre outros (MIYAGI, 2006).
As linguagens de simulação economizam tempo de desenvolvimento, utilizam-se de recursos para avançar o tempo, programar eventos, manipular entidades, gerar valores aleatórios coletar dados estatísticos e gerar relatórios.
Características
ü  Fornece automaticamente a maioria dos aspectos necessários na programação;
ü  Reduz o trabalho de programação;
ü  Fornece um framework natural para modelagem;
ü  Os modelos podem ser alterados facilmente;
ü  Fornece melhor detecção de erros.

Tipos de Linguagens de Simulação
ü  Linguagens de simulação contínuas - CSMP, DYNAMO, Equações diferenciais e Usadas em engenharia química;
ü  Linguagens de simulação de eventos discretos – SIMULA e GPSS;
ü  Combinadas - SIMSCRIPT e GASP e, Permitem simulações discretas, contínuas ou combinadas.

Tipos de Simulações
ü  Emulação - utilizam do hardware ou firmware;
ü  Simulação de Monte Carlo;
ü  Simulação Dirigida por Traces;
ü  Simulação de Eventos Discretos.

Linguagens específicas
As linguagens específicas como GPSS, SIMAN V, SIMSCRIPT II.5, SLAM II, e pacotes de simulação são orientadas para objetos como MODSIM III e similares.
Como a linguagem especificada nessa pesquisa, foi preferencialmente, o GPSS, buscou-se uma ênfase maior para sua definição.
ü  GPSS (General Purpose Simulation System)
A primeira versão do GPSS foi lançada em 1961, pela IBM. O GPSS sempre foi a principal linguagem de simulação da IBM, e um grande número de aplicações foram desenvolvidas nestes longos anos de existência.
Um modelo GPSS é um diagrama de blocos, por onde fluem transações, que são as entidades temporárias do sistema. Atualmente, as versões disponíveis mais conhecidas são GPPS/H, GPSS World e WebGPSS. A linguagem Arena, ferramenta de simulação bastante conhecida atualmente, também foi fortemente influenciada pelo GPSS.
Na linguagem GPSS, um modelo é descrito através de um diagrama de blocos. Onde há um conjunto de blocos à disposição do programador, os quais podem ser interconectados para representar um sistema.
GPSS é uma linguagem de programação para o fim específico de simulação e com alto grau de estruturação e orientada para transações. Foi projetada para facilitar a simulação de sistemas de filas.
            A figura abaixo apresenta os principais blocos, no ambiente WebGPSS.

Alguns Blocos do Ambiente GPSS
Ÿ  GENERATE e TERMINATE - Criar e destruir transações;
Ÿ  ASSIGN - Alterar parâmetros de transações;
Ÿ  TEST, TRANSFER - Desviar o fluxo de transações;
Ÿ  ADVANCE - Fazer uma transação esperar por um período de tempo;
Ÿ  SEIZE/RELEASE - Requisitar/liberar recurso;
Ÿ  ENTER/LEAVE - Requisitar/liberar um depósito;
Ÿ  QUEUE, TABULATE - Coletar estatísticas;
Ÿ  SPLIT - Duplicar transações;
Ÿ  LINK - Encadear transações à filas

ü  SIMAN V, SINSCRIPT II.5 e SLAM II
São programas de simulação de alto nível, que têm estruturas especialmente concebidas para facilitar a construção de modelos. Estas linguagens derivam da escolha da abordagem (por interação de processos, agendamento de eventos, etc.) para a modelagem de um sistema. Estas linguagens possuem praticamente todos os recursos e facilidades do GPSS mais a capacidade de realizar simulação contínua (sistemas com variação contínua do estado das variáveis).
ü  MODSIM III
É um descendente da linguagem que uma empresa desenvolveu para o exército americano. Sua sintaxe é herdada do Modula-2 e Ada, assim como os conceitos de simulação provêm do SIMSCRIPT e Simula.

Pacotes de simulação
Os pacotes de software mais populares atualmente, são os seguintes:
ü  ProModel / MedModel
No ProModel / MedModel, um modelo é construído definindo-se um caminho ou rota para uma entidade ou várias entidades (itens como peças, partes, etc.), as capacidades de cada um dos pontos ao longo de uma rota destas entidades, os recursos envolvidos tais como os operadores, o sistema de movimentação das entidades, o agendamento das chegadas de entidades e a especificação dos parâmetros de simulação. Este pacote permite ao usuário a inclusão de sub-rotinas em C ou Pascal.
ü  SIMFACTORY II.5
É um simulador de sistemas escrito em SIMSCRIPT II.5 e MODSIM III para profissionais que não possuem muita experiência nas técnicas de análise de sistemas. Um modelo é construído em etapas: definindo primeiramente o layout (arranjo físico do sistema) que consiste em estações de processamento, buffers, áreas de recepção de partes e caminhos dos transportadores, definição do produto, recursos e por fim, as interrupções.
ü  AutoMod
AutoMod, combina as características de uma linguagem de simulação para fins gerais e um simulador de sistemas específicos. Possui recursos de programação gerais incluindo a especificação de processos e procedimentos, recursos, filas e variáveis. O simulador é voltado para análise de sistemas de movimentação de materiais onde pode-se definir elementos como: esteiras, veículos transportadores, pontes rolantes, etc.
ü  Taylor II
Um modelo em Taylor II consiste de quatro entidades fundamentais: elements, jobs, routings e products. Os tipos de elements são classificados em estação de entrada/saída, máquina, buffer, esteira transportadora, transporte, caminho, apoio, estoque. As três operações básicas são: processamento, transporte e armazenamento.
ü  Witness
WITNESS contém elementos próprios para sistema de manufatura e é orientada às máquinas (machine-oriented). Por exemplo, máquinas podem ser do tipo: single, batch, production, assembly, multi-station ou multi-cycle.
ü  Arena
Arena é um pacote de simulação extensível e com recursos de animação. O modelo é construído selecionando-se módulos que contêm características do processo. Por exemplo, um módulo de inspeção pode modelar a tarefa de inspeção de um processo. Depois da escolha e especificação dos parâmetros dos módulos, o Arena executa uma animação do processo (MIYAGI, 2006).


Vantagens da Simulação

ü  Uma vez criado, um modelo pode ser utilizado inúmeras vezes para avaliar projetos e políticas propostas;
ü  A metodologia de análise utilizada pela simulação permite a avaliação de um sistema proposto, mesmo que os dados de entrada estejam, ainda, na forma de “esquemas” ou rascunhos;
ü  A simulação é, geralmente, mais fácil de aplicar do que métodos analíticos;
ü  Uma vez que os modelos de simulação podem ser quase tão detalhados quanto os sistemas reais, novas políticas e procedimentos operacionais, regras de decisão, fluxos de informação etc., podem ser avaliados sem que o sistema real seja perturbado;
ü  Hipóteses sobre como ou por que certos fenômenos acontecem podem ser testadas para confirmação;
ü  O tempo pode ser controlado. Permitindo reproduzir os fenômenos de maneira lenta ou acelerada, para que se possa melhor estudá-los;
ü  Pode-se compreender melhor quais variáveis são as mais importantes em relação a performance e como as mesmas interagem entre si e com os outros elementos do sistema;
ü  A identificação de “gargalos”, pode ser obtida de forma facilitada, principalmente com a ajuda visual;
ü  Um estudo de simulação  mostra como realmente um sistema opera;

Desvantagens da Simulação
ü  A construção de modelos requer treinamento especial. Envolve arte e, portanto, o aprendizado se dá ao longo do tempo, com a aquisição de experiência;
ü  Os resultados da simulação são, muitas vezes, de difícil interpretação. Uma vez que os modelos tentam capturar a variabilidade do sistema, é comum que existam dificuldades em determinar quando uma observação realizada durante uma execução se deve a alguma relação significante no sistema ou a processos aleatórios construídos e embutidos no modelo;
ü  A modelagem e a experimentação associadas a modelos de simulação consomem muitos recursos, principalmente tempo. A tentativa de simplificação na modelagem ou nos experimentos objetivando economia de recursos costuma levar a resultados insatisfatórios (FREITAS).

Simuladores
Um simulador é um aparato/software capaz de reproduzir o comportamento de algum sistema. Os simuladores reproduzem sensações que na realidade não estão ocorrendo (ARAUJO, 2007).

Tipos de Simuladores
ü  Simulador de carros;
ü  Simulador de voo;
ü  Simulador de vida;
ü  Simulador de Guerra;
ü  simulador de raios X.




Fontes

 ARAUJO, S. Nascimento A. Simulação e Modelação Computacional Aplicada. Disponível em: <http://simulacaoemodelacaocomputacional.blogspot.com.br/2007/10/tipos-de-simuladores.html> Acesso em 01/ 06/2014.

FREITAS, Paulo José de Filho. Modelagem e Simulação de Sistemas. Disponível em: <http://www.inf.ufsc.br/~guiga/ine5101/LivroPF/Cap%201.pdf> Acesso em : 31/05/2014.

Linguagem de Simulação. Disponível em:
<http://www.comp.ita.br/~rahiman/CC236/Linguagens%20de%20Simulacao.pdf> Acesso em 01/ 06/2014.

MIYAGI, Prof. Dr. Paulo E. Introdução a Simulação Discreta. Disponível em: <http://minerva.ufpel.edu.br/~alejandro.martins/dis/2012_2/simulacao/Apostila_Simulacao.pdf> Acesso em 01/ 06/2014.

sexta-feira, 30 de maio de 2014

Sistemas Especialistas

Sistemas Especialistas
Os sistemas especialistas são programas destinados a solucionar problemas em campos específicos de conhecimento. Estes programas devem ter desempenho comparável ao dos especialistas humanos na execução dessas tarefas.
A maior capacidade  de um Sistema Especialista consiste em sua especialidade de alto nível que auxilia na solução de problemas. Este conhecimento especializado pode representar a experiência dos melhores peritos no campo. Sua especialização de alto nível, juntamente com a habilidade de aplicação, torna seu custo competitivo e apto a ganhar espaço no mercado comercial. A flexibilidade do sistema também auxilia, pois ele pode crescer incrementalmente segundo as necessidades do negócio ou organização.
A formação de um sistema especialista é basicamente composta por três componentes principais:
Base de dados - responsável por armazenar os dados pré-levantados e as possíveis respostas de um determinado conjunto de entradas, é também chamada de base de conhecimento;
Conjunto de operadores - são mecanismos que fazem as buscas na base de dados a fim de encontrar respostas aos dados informados inicialmente;
Estratégia de controle - que assim como uma árvore binária, é a responsável por facilitar a localização do conjunto de operadores, restringindo a base de dados a um subconjunto de metas, a fim de diminuir, a cada dado fornecido, a gama de possíveis respostas aos problemas especificados (BARRETO e PREZOTO, 2010).
Um sistema especialista pode ser aplicado em:
ü  Sistemas de diagnóstico;
ü  Sistemas de planejamento;
ü  Sistemas de previsão;
ü  Sistemas de controle;
ü  Sistemas de Instrução;
ü  Sistemas de Interpretação.

Classificação dos Sistemas Especialistas
ü  Sistema Especialista de Interpretação
            Esse sistema fornece a descrição de situações de solução para determinados problemas, realizando uma análise nos pontos chave do problema e relacionando com situações parecidas que este tenha em sua base de conhecimento. Assim, é possível fazer uma análise por aproximação das causas que sejam parecidas com a causa do atual problema, e oferecer uma solução equivalente a de outros problemas apresentados.
ü  Sistema Especialista de Diagnóstico
São sistemas que apontam falhas provenientes da interpretação de dados. A análise dessas falhas pode conduzir a uma conclusão diferente da simples interpretação de dados. Detectam os problemas disfarçados por falhas dos equipamentos e falhas do próprio diagnóstico, que não o detectou, possivelmente por ter falhado.
ü  Sistema Especialista de Monitoramento
Explica as observações de sinais sobre o comportamento monitorado. Verifica continuamente um determinado comportamento em limites pré-estabelecidos, sinalizando quando forem requeridas intervenções para o sucesso da execução.
ü  Sistema Especialista de Predição
Este sistema permite uma previsão do futuro, baseando-se de em uma modelagem de dados do passado e do presente, fazendo uso de raciocínios hipotéticos e verificando a tendência de acordo com a variação dos dados de entrada através de mecanismos que possam verificar os vários futuros possíveis, a partir da análise do comportamento desses dados.
ü  Sistema Especialista de Planejamento
Neste sistema, prepara-se um programa de iniciativas a serem tomadas para que se alcançar objetivo determinado. São estabelecidas etapas e subetapas e, em caso de etapas conflitantes, são definidas as prioridades. Possui características parecidas com o sistema para a predição e normalmente opera em grandes problemas de solução complexa.
ü  Sistema Especialista de Projeto
Este sistema tem características semelhantes as do planejamento, e devem-se confeccionar especificações capazes de atender os objetivos dos requisitos particulares. É um sistema capaz de justificar a alternativa tomada para o projeto final, e de fazer uso dessa justificativa para alternativas futuras ( MANCHINI E  PAPPA).
ü  Sistema Especialista de Depuração
Fornece soluções para um possível mau-funcionamento por distorção das bases de dados e de regras do sistema. Desta forma, age como um agente de validação de quebra de regras de um sistema especialista, validando os processos executados dentro do sistema e identificando possíveis procedimentos danosos ao programa.
ü  Sistema Especialista de Reparo
Sistema especialista em executar as correções sugeridas pelos sistemas especialistas de depuração, administrando as falhas que necessitem de paradas de sistema para conserto e agendando tais paradas para efetuar a manutenção.
ü  Sistema Especialista de Instrução
Essa sistema tem o objetivo de propor desafios a seu operador, de forma a instruí-lo a realizar determinadas tarefas, de forma a ensinar sobre determinado assunto a um possível estudante que opere o sistema. Pode incorporar subsistemas especialistas, como de depuração ou reparo, para a obtenção de situações parecidas durante a operação com o sistema.
ü  Sistema Especialista de Controle
Sistema especialista de maior nível de complexidade. Esse sistema controla diversos outros tipos de sistemas, não somente os computacionais. Realiza análises baseadas nos sistemas especialistas de diagnóstico e predição, de forma a determinar horizontes de negócio para os próprios sistemas especialistas incorporados a ele (BARRETO e PREZOTO, 2010).

Principais Elementos que Compõem os Sistemas Especialistas
            Os principais elementos que compõem os sistemas especialistas formam uma Estruturação Básica que é dividida em sete partes:
ü  Base de Conhecimento
Local de armazenagem de todas as regras e fatos dos sistemas especialistas. Compara-se ao banco de dados de um sistema tradicional ou a área do cérebro humano que armazena o conhecimento adquirido.
ü  Quadro Negro
Local de compartilhamento de regras dos sistemas especialistas. Assim como um código em Prolog que carrega bases de regras na memória do computador, disponibilizando tais regras para que outros sistemas possam utilizar, o quadro negro compartilha informações levantadas pela Base de Conhecimento e Mecanismo de Inferência com os demais softwares que compartilham informação.
ü  Mecanismo de Inferência
Mecanismo compartilhado entre sistemas especialistas para busca de dados na base de conhecimento. Tendo a premissa de que as bases de conhecimento são padronizadas e que os mecanismos de inferência sigam um padrão de busca, o mecanismo de inferência irá encontrar a melhor solução dentre um conjunto racional pré-determinado na base de conhecimento, chegando a resposta mais próxima do ideal esperado pelo usuário.
ü  Processador de Linguagem Natural
Sistema responsável por manter a interface com o usuário na área de regras do sistema, de forma a receber e enviar regras ao usuário, da forma mais transparente possível para o mesmo.
ü  Justificador de Conhecimento
Trabalha com as saídas do processo de Regras do Mecanismo de Inferência, este módulo é responsável por detalhar como o sistema chega a determinada conclusão, para utilizar do Processador de Linguagem Natural e interagir com o usuário e, se necessário, solicitar ao usuário as entradas de sistema necessárias para a finalização.
ü  Sequenciador
Seleciona regras que serão utilizadas de acordo com fatos e hipóteses, colocando-as em ordem de execução para que o interpretador trabalhe com elas.
Com isso, executa as operações Fuzzy necessárias para desenvolver uma sequência de processamento interno, concluir em uma resposta e enviar ao interpretador para execução.
ü  Interpretador
Responsável por interpretar as regras advindas do sequenciador, ou seja, processa as informações e regras que lhes são enviadas para processamento. Logo, torna-se em parte o núcleo do sistema, para que este possa trabalhar com as informações passadas.

Principais Benefícios da Utilização dos Sistemas Especialistas
ü  Velocidade na determinação dos problemas;
ü  A decisão está fundamentada em uma base de conhecimento;
ü  Segurança;
ü  Exige pequeno número de pessoas para interagir com o sistema;
ü  Estabilidade;
ü  Dependência decrescente de pessoal específico;
ü  Flexibilidade;
ü  Integração de ferramentas;
ü  Evita interpretação humana de regras operacionais.

Principais Problemas Enfrentados pelos Sistemas Especialistas Atuais
ü  Fragilidade
Pelo fato de os Sistemas Especialistas terem acesso somente a conhecimentos altamente específicos do seu domínio, eles não possuem conhecimentos mais genéricos quando a necessidade surge;
ü  Falta de meta-conhecimento
Geralmente não possuem conhecimentos sofisticados sobre sua própria operação, o que dificulta o raciocínio sobre seu próprio escopo e restrições. A aquisição do conhecimento continua sendo um dos maiores obstáculos para aplicação de tecnologia dos Sistemas Especialistas a novos domínios.
ü  Validação
A medição do desempenho de Sistemas Especialistas é muito difícil porque não é possível quantificar o uso de conhecimento (FÁVERO e SANTOS).

Exemplos de sistemas especialistas
ü  MYCIN - para diagnosticar doenças infecciosas;
ü  PROSPECTOR - informações geológicas;
ü  LOGIC THEORIST - provador de teoremas.


Referências

BARRETO, Luiz Rodolfo; PREZOTO, Marcelo Godoi. Introdução a Sistemas Especialistas. Disponível em:
<http://www.ft.unicamp.br/liag/wp/monografias/monografias/2010_IA_FT_UNICAMP_sistemasEspecialistas.pdf> Acesso em: 23/05/2014.                    

Disponível em: <www.ic.uff.br/~ferraz/IA/Ppt/SistemasEspecialistas/Expert01.ppt> Acesso em: 23/05/2014.

FÁVERO, Alexandre José e SANTOS, Nilson Moutinho dos. Sistemas Especialistas. Disponível em: <http://www.din.uem.br/~ia/especialistas/index.html>Acesso em: 23/05/2014.

MANCHINI, Daniella Patrícia  e PAPPA, Gisele Lobo . Sistemas Especialistas Disponível em: <www.din.uem.br/ia/intelige/especialistas/especialistas/index.html> Acesso em: 23/05/2014.