# AnyLogic

AnyLogic é uma ferramenta de modelagem de simulação multi-método desenvolvida pela The AnyLogic Company (antiga XJ Technologies). Ele suporta metodologias de simulação baseada em agentes, eventos discretos, e dinâmica de sistemas. A Edição AnyLogic PLE (Personal Learning Edition) está disponível gratuitamente para fins de auto aprendizado e educacionais.

## A História do AnyLogic

No início da década de 1990, houve um grande interesse na abordagem matemática para modelagem e simulação de processos paralelos. Esta abordagem pode ser aplicada à análise de exatidão de programas paralelos e distribuídos. Um grupo de pesquisa na Saint Petersburg Technical University chamado The Distributed Computer Network (DCN) desenvolveram um software para a análise de exatidão de programas; essa nova ferramenta foi batizada de COVERS (Concurrent Verification and Simulation). Este sistema permitiu notação de modelagem gráfica para estrutura e comportamento do sistema. A ferramenta foi aplicada para a pesquisa financiada pela Hewlett Packard.
Em 1998, o sucesso desta pesquisa inspirou o laboratório DCN a organizar uma empresa com a missão de desenvolver um inovador software de simulação. A ênfase no desenvolvimento foi focada em métodos aplicados: simulação, análise de desempenho, comportamento de sistemas estocásticos, otimização e visualização. Novo software lançado em 2000, usufruiu das mais atuais vantagens competitivas das tecnologias de informação: abordagem orientada a objetos, elementos no padrão UML, uso de Java, interface gráfica moderna, etc.
A ferramenta se chama AnyLogic (QualquerLógica traduzindo ao pé da letra), pois ela suporta muito bem todos os três tipos de abordagem de modelagem:
* Dinâmica de Sistemas,
* Eventos Discretos,
* Modelagem Baseada em Agentes.
Além dessas três, é possível realizar qualquer combinação desses métodos dentro de um mesmo modelo.
A primeira versão do AnyLogic foi a 4 pois o número da versão foi a continuação do COVERS 3.0.
Um grande passo foi dado em 2003 quando o AnyLogic 5 foi lançado. Ele foi focado em simulações de negócio nos seguintes domínios:
* Mercado e competição,
* Saúde,
* Manufatura,
* Supply Chain,
* Logística,
* Alugueis,
* Gestão de Processos,
* Dinâmica EcoSocial,
* Defesa,
* Gestão de Projetos e Ativos,
* Infraestrutura de TI,
* Dinâmica de Pedestres e Simulação de Tráfego,
* Aeroespaço,
* Fotovoltaicos.
AnyLogic 7 foi lançado em 2014, sendo sua maior revisão nos últimos 7 anos. Suas características foram significativamente atualizadas procurando a simplicidade de construção de um modelo, incluindo um suporte para modelagem multi-método, reduzindo a necessidade de programação, renovando bibliotecas e outras melhorias de usabilidade. AnyLogic 7.1, também lançado em 2014, incluiu a implementação de GIS no software. Em adição aos mapas shapefiles, AnyLogic começou o suporte aos mapas por camadas dos fornecedores gratuitos online, incluindo OpenStreetMap.
Em 2015 foi lançado ao mercado o AnyLogic 7.2 que incluía uma base de dados interna e uma nova biblioteca de Fluidos. A edição gratuita AnyLogic P.L.E. (Personal Learning Edition) também foi apresentada em 2015.
A Biblioteca de Trafego Urbano foi introduzida em 2016 com a versão AnyLogic 7.3.
A Plataforma do ambiente de desenvolvimento do AnyLogic 7 é o Eclipse. AnyLogic é um software de simulação multi-plataforma que funciona com o Windows, Mac OS e Linux.
O Anylogic 8 foi lançado em 2017. Partindo da versão 8.0, o ambiente de desenvolvimento Anylogic foi integrado com o Anylogic Cloud, um serviço web para análise de simulação.

## AnyLogic e o Java

AnyLogic inclui uma linguagem de modelagem gráfica de programação, mas também permite ao usuário refinar seus modelos de simulação utilizando código Java. A natureza do Java no AnyLogic permite ao usuário a criação de applets (mini aplicativos) Java de modo que a mesma possa ser aberta em qualquer web browser e inclusive permitindo que os applets sejam facilmente compartilhados ou colocados em websites. A edição AnyLogic Professional permite a exportação de modelos como aplicações Java para sua distribuição entre usuários. Essas aplicações podem servir de ferramenta de suporte para tomada de decisões.

## Modelagem de Simulação Multi-métodos

Modelos no AnyLogic podem se basear em qualquer um dos principais paradigmas de modelagem e simulação: eventos discretos ou centrado em processos (DE), dinâmica de sistemas (SD) e modelagem baseada em agentes (AB).
Dinâmica de sistemas e eventos discretos são os tradicionais paradigmas de simulação. Modelagem baseada em agentes é o mais recente paradigma. Tecnicamente, a abordagem de dinâmica de sistemas lida majoritariamente com processos contínuos, enquanto modelagem por eventos discretos e modelagem baseada em agentes funcionam majoritariamente por tempo discreto, por exemplo passando de um evento para o outro.
Dinâmica de sistemas e eventos discretos historicamente foram ensinados em universidades para diferentes grupos de estudantes como administradores e economistas, engenheiros industriais e de pesquisas operacionais. Como resultado temos duas comunidades praticantes distintas que não conversam entre si.
Modelagem baseada em agentes até recentemente tem sido aplicada puramente em tópicos acadêmicos. Contudo, com a demanda crescente por ferramentas de otimização de negócios global conduziu modeladores/modelistas a procurarem uma abordagem com paradigmas combinados a fim de ganhar uma visão profunda dos processos interdependentes de naturezas distintas.
Dinâmica de sistemas é utilizada para o entendimento do comportamento de sistemas complexos, é obviamente usado no nível de abstração mais elevado. Modelagem por eventos discretos é usada em baixa em baixa e médio nível de abstração. Quanto à modelagem baseada em de agentes, esta tecnologia é usada em todos os níveis de abstração. Um agente pode ser modelado como objetos de diversas naturezas e escalas. Os agentes de nível “baixo” podem ser, por exemplo, pedestres, carros ou robôs; no nível médio - os clientes e ao nível mais alto - as empresas concorrentes.
O Anylogic permite que o modelador combine essas abordagens de simulação dentro de um mesmo modelo. Não há hierarquia fixa. Assim, como exemplo, pode-se criar um modelo de indústria de transporte do pacote em que as transportadoras são modelados como agentes para agirem/reagirem de forma independente enquanto que o funcionamento interno de sua rede de transportes e de infraestrutura podem ser modelados com simulação de eventos discretos. Da mesma forma, pode-se modelar os consumidores como agentes cujo comportamento alimenta um modelo de dinâmica de sistemas capturando fluxos, tais como receitas ou despesas que não precisam ser vinculados a agentes individuais. Esta abordagem mista é diretamente aplicável a uma grande variedade de problemas de modelos complexos que podem ser modeladas por meio de qualquer uma abordagem.

## Características
### Linguagem de Simulação

A linguagem de simulação AnyLogic consiste nos seguintes itens:
* Diagrama de Fluxo e Estoque (Stock & Flow Diagrams) são usados para modelagem de dinâmica de sistemas.
* Gráficos de estado (Statecharts) são usados principalmente em modelagem baseada em agentes para definir o comportamento do agente. Eles também são frequentemente utilizados nos modelos de eventos discretos, como por exemplo, para simular falha de uma máquina.
* Gráficos de ação (Action charts) são usados para definir algoritmos. Eles podem ser utilizados nos modelos de eventos discretos, por exemplo, para o roteamento de chamadas, ou em modelagem baseada em agentes, por exemplo, para a lógica de decisão do agente.
* Fluxogramas de processo (Process flowcharts) são a construção básica usada para definir processo de modelagem de eventos discretos. Olhando para este fluxograma que você pode ver por que o estilo de eventos discretos é muitas vezes chamado centrado em processos.
A linguagem também inclui: baixos níveis de construções de modelagem (variáveis, equações, parâmetros, eventos etc.), formas de apresentação (linhas, polilinhas, ovais, etc.), ferramentas de análise (conjuntos de dados, histogramas, gráficos), ferramentas de conectividade, imagens e tela de experimentos.

### Bibliotecas AnyLogic

Anylogic inclui as seguintes bibliotecas padrão:
* Biblioteca de Modelagem e Processo (Process Modeling Library) é projetada para suportar simulação de eventos discretos em Manufatura, Supply Chain, Logística e áreas de saúde. Usando os objetos da Biblioteca de Modelagem e Processo você pode modelar sistemas do mundo real em termos de entidades (operações, clientes, produtos, peças, veículos, etc.), processos (sequências de operações que envolvem normalmente filas, atrasos, utilização de recursos) e recursos. Os processos são especificados na forma de fluxogramas. A Biblioteca de Modelagem e Processo é a sucessora da Biblioteca de Empresas (Enterprise Library) do AnyLogic 6, que também está disponível no AnyLogic 7.
* Biblioteca de Pedestres (Pedestrian Library) é dedicada à simulação do fluxo de pedestres em um ambiente físico. Ele permite que você crie modelos de intensa circulação de pedestres como estações de metrô, check de segurança em aeroportos, ou ruas com um grande número de pedestres. Os modelos suportam apuração de estatísticas sobre a densidade de pedestres em diferentes áreas, isso pode assegurar e definir um desempenho aceitável de pontos de serviço com uma carga hipotética, estimação de tempo de permanência em áreas específicas e detecção de possíveis problemas com a geometria espacial - como o efeito da adição de muitos obstáculos - e outras aplicações. Em modelos criados com a Biblioteca de Pedestres, os pedestres se movem no espaço contínuo, reagindo a diferentes tipos de obstáculos (paredes, diferentes tipos de áreas), bem com os outros pedestres. Os pedestres são simulados como agentes com comportamento complexo interagindo, mas a Biblioteca de Pedestres AnyLogic fornece uma interface de nível superior para a criação rápida de modelos de pedestres no estilo de fluxogramas.
* Biblioteca de Ferrovia (Rail Library) suporta modelagem, simulação e visualização de operações de um pátio ferroviário de qualquer escala e complexidade. Os modelos de pátio ferroviário podem ser combinados com eventos discretos ou modelagem baseada em agentes relacionados a: carregamento e descarregamento de cargas, alocação de recursos, manutenção, processos de negócios, transporte de passageiros e outras atividades de transportes.
* Biblioteca de Fluidos (Fluid Library) permite ao usuário modelar o armazenamento e transporte de fluidos, produtos à granel, ou grandes quantidades de itens discretos que não são desejáveis modelar como objetos separados. A biblioteca inclui blocos tais como o tanque, oleoduto, válvula, e objetos para o encaminhamento, mesclagem e divergentes o fluxo. Para melhorar a velocidade de execução do modelo, a Biblioteca de Fluidos usa um solver de programação linear. A biblioteca é projetada para melhorar o uso do AnyLogic em indústrias de manufatura, petróleo, gás e mineração. O usuário pode simular tubulações e tanques de petróleo, minerodutos, transportadores de correias, e processos de produção, onde líquidos ou materiais a granel estão envolvidos, por exemplo, na fabricação de concreto.
* Biblioteca de Tráfego Urbano (Road Traffic Library) permite ao usuário simular o tráfego de veículos nas estradas. A biblioteca suporta modelagem de nível detalhado e física do movimento do veículo. Cada veículo representa um agente que pode ter seus próprios padrões de comportamento. A biblioteca permite que os usuários simulem o movimento de veículos nas estradas, tendo em conta as regras de condução, semáforos, faixas de pedestres, prioridades nos cruzamentos, estacionamentos e os movimentos de transporte público. A biblioteca é adequada para a modelagem de tráfego da estrada, tráfego de ruas, transportes internos em locais de fabricação, ou quaisquer outros sistemas com veículos, estradas e pistas. Uma ferramenta especial de densidade de tráfego está incluída para ajudar a analisar as cargas na rede da estrada.
* Biblioteca de Movimentação de Materiais auxilia no processo de simulação em fábricas e armazéns. A biblioteca conta com esteiras, transportadores e outros elementos que simplificam a criação de modelos detalhados de produção.
Além destas bibliotecas padrão, usuários podem criar suas próprias bibliotecas e distribuí-las.

### Animações nos Modelos

O AnyLogic suporta animações interativas em 2D e 3D
AnyLogic permite aos usuários importar plantas em CAD como arquivos DXF, e, em seguida, criar modelos em cima delas. Este recurso pode ser usado para animar processos dentro de lugares como um chão de fábrica, armazéns, hospitais, etc. Esta funcionalidade é usada principalmente em modelos de eventos discretos como manufatura, saúde, engenharia civil e de construção. O software AnyLogic também suporta animações em 3D e inclui uma coleção de objetos 3D ready-to-use para animações relacionadas a diferentes indústrias, incluindo: edifícios, objetos rodoviários, objetos ferroviários, marítimos, transportes, energia, armazém, hospitalar, equipamentos, itens relacionados com aeroportos, supermercados, e outros objetos.

### Modelos geoespaciais, Integração com GIS

Os modelos no AnyLogiс podem usar mapas como um layout, que é muitas vezes exigido por cadeias de suprimentos, logística e indústrias de transporte. O software suporta o padrão de mapa baseado em shapefile tradicional, SHP pela Esri. Além disso, o AnyLogic suporta mapas com camadas (tiles maps) de fornecedores on-line gratuitos, incluindo OpenStreetMap. Mapas com camadas permitem ao modelador usar dados do mapa em modelos e criar automaticamente rotas geoespaciais para os agentes. As principais características dos mapas com camadas no AnyLogic incluem:
* O modelo pode acessar todos os bancos de dados armazenados no mapa on-line como: cidades, regiões, redes de estradas e objetos (hospitais, escolas, pontos de ônibus, etc.).
* Os agentes podem ser colocados em pontos específicos no mapa e moverem-se ao longo das estradas ou rotas existentes.
* Os usuários podem criar elementos necessários dentro do modelo usando a busca embutida.

### Integração do modelo com outras aplicações de TI

Um modelo AnyLogic pode ser exportado como um aplicativo Java, que pode ser executado em separado ou integrado com outro software. Como uma opção, um modelo AnyLogic exportado pode ser criado para outras partes de software e trabalhar como um módulo adicional para um sistema de ERP, MRP e TMS. Outro uso comum é a integração de um modelo AnyLogic com arquivos TXT, MS Excel ou MS Access e bancos de dados (MS SQL, My SQL, Oracle, etc.). Além disso, os modelos AnyLogic incluem seus próprios bancos de dados baseados em HSQLBD.

### AnyLogic Cloud

O AnyLogic Cloud é um serviço web para análise de simulação. Ele permite aos usuários armazenar, acessar, executar e compartilhar modelos de simulação online, assim como analisar os resultados dos experimentos. Utilizando o ambiente de desenvolvimento de modelos AnyLogic, os desenvolvedores podem enviar seus modelos para a AnyLogic Cloud e configurar painéis da web compartilháveis para trabalhar com modelos online. Esses painéis podem conter parâmetros de entrada configuráveis e dados de saída na forma de tabelas e gráficos. Os usuários do modelo podem inserir os dados de entrada na tela do painel, executar o modelo, e analisar as saídas.
O AnyLogic Cloud permite aos usuários executar modelos utilizando navegadores de internet, em computadores locais e dispositivos móveis, com o modelo sendo executado no lado do servidor. Os resultados de todos os experimentos executados são armazenados no banco de dados e podem ser acessados instantaneamente. Os modelos podem ser executados com ou sem animação interativa, baseada em HTML5.
Os desenvolvedores podem escolher se desejam que seus modelos sejam privados ou disponíveis publicamente na biblioteca de modelos, que inclui modelos de outros usuários AnyLogic.

## Versão Educacional Gratuita

Desde 2015, a versão AnyLogic Personal Learning Edition (PLE) está disponível gratuitamente para fins educacionais e auto aprendizado. A licença PLE é perpétua, mas modelos criados possuem algumas limitações.
Para a pesquisa pública nas instituições de ensino, os usuários podem obter uma licença Pesquisador Universitário (University Researcher) com desconto, que não limita o tamanho do modelo e possui várias funcionalidades de uma licença profissional.

## anyLogistix, software de otimização de cadeia de suprimentos

O AnyLogic não inclui uma biblioteca específica para simulação de cadeia de suprimentos, contudo, a AnyLogic Company está focando seus esforços no desenvolvimento de uma nova ferramenta nesse domínio – o anyLogistix. Este produto foi introduzido em 2014 ao mercado como AnyLogic Logistics Network Manager e foi renomeado para anyLogistix em 2015.
O anyLogistix é baseado no AnyLogic engine, GIS, e uma nova GUI orientada para a indústria. Ele também inclui algoritmos e técnicas específicas para o projeto da cadeia de suprimentos e otimização. O anyLogistix é totalmente integrado com o AnyLogic e, por exemplo, o AnyLogic pode ser usado para personalização de objetos dentro do anyLogistix, incluindo armazéns, locais de produção, dos fornecedores, inventário, sourcing, e as políticas de transporte.

## Veja também

* Comparação entre os softwares de simulação de Modelagem Baseada em Agentes
* Lista de softwares de simulação computacional
* Lista de softwares de simulação de Eventos Discretos
* Computer Simulation