Uma memória associativa difusa (FAM para abreviação) é uma ferramenta lógica difusa para a tomada de decisão. A Fuzzy Logic FAMS tem uma ampla gama de aplicações práticas:
Uma memória associativa difusa usa conjuntos difusos para estabelecer um conjunto de regras de natureza linguística; Exemplos podem incluir:
As regras linguísticas e os conjuntos difusos que eles contêm são definidos por um "especialista" humano (presumivelmente, você). Ou seja, as regras codificam a inteligência e mapeiam esse conhecimento do domínio humano para o digital.
Depois que as regras forem definidas, uma família é consultada para ajudar sua IA a fazer uma descisão:
Como você pode ver, as regras difusas são deliberadamente vagas e usam qualificadores como "um pouco" e "muito". Além disso, as linhas entre conjuntos difusos são intencionalmente embaçadas. Esta é a natureza dos conjuntos difusos; Eles capturam tanta fuzzinha humana de uma maneira que extrai um comportamento altamente natural das regras difusas. Ao definir essas regras, ajuda a imaginar entrevistar um especialista em boa fé no domínio e anotar as habilidades necessárias para ter sucesso no domínio.
Variáveis linguísticas difusas podem ser difíceis de visualizar, especialmente quando ficam complexas e incluem triângulos e trapézios em combinação. Para responder a isso, este software agora pode (opcionalmente) ser lançado para o seu GNUPLOT instalado e criar renderizações PNG ou SVG de seus FLVs. Aqui está um exemplo:
Isso está funcionando, software funcional, adequado para uso em seu próprio jogo ou aplicativo. Atualmente suporta:
if A then Z
)if A or B, then Z
/ if A and B, then Z
)Fazer (em importância descendente, aproximadamente):
Assista ao Changelog para notícias.
Eu recomendo que você clone o repositório Git e navegue pelos exemplos e código -fonte para entender completamente como os FAMS funcionam.
Mas se / quando você quiser usar isso em seu próprio projeto, a maneira mais fácil de fazê -lo é através da jóia:
gem install fuzzy_associative_memory
Então, em seu código:
require 'fuzzy_associative_memory'
A jóia está totalmente nomes para evitar colisões. Veja os exemplos para detalhes de uso.
O diretório bin
contém os seguintes exemplos:
hvac_system_example
ilustra como uma família poderia governar uma unidade de ventilador HVAC para manter uma temperatura constante e confortávelweapon_choice_example
ilustra como uma família poderia deixar um jogo de jogo de maneira inteligente decidir qual arma usarAs parcelas das variáveis lingüísticas difusas dos exemplos foram pré-renderizadas e estão no diretório do compartimento. Isso o ajudará a visualizar os FLVs.