Une mémoire associative floue (FAM pour faire court) est un outil logique floue pour la prise de décision. Les fammes logiques floues ont un large éventail d'applications pratiques:
Une mémoire associative floue utilise des ensembles flous pour établir un ensemble de règles de nature linguistique; Des exemples peuvent inclure:
Les règles linguistiques et les ensembles flous qu'ils contiennent sont définis par un "expert" humain (vraisemblablement, vous). C'est-à-dire que les règles codifient l'intelligence et mappent ces connaissances du domaine humain au numérique.
Une fois les règles définies, une famille est consultée pour aider votre IA à faire une description:
Comme vous pouvez le voir, les règles floues sont délibérément vagues et utilisent des qualifications comme "un peu" et "beaucoup". De plus, les lignes entre les ensembles floues sont intentionnellement floues. C'est la nature des ensembles flous; Ils capturent une telle floue humaine d'une manière qui extrait le comportement hautement naturel des règles floues. Lors de la définition de ces règles, il est utile d'imaginer l'interview d'un expert de bonne foi dans le domaine et d'écrire les compétences nécessaires pour réussir dans le domaine.
Les variables linguistiques floues peuvent être difficiles à visualiser, en particulier lorsqu'ils deviennent complexes et incluent des triangles et des trapézoïdes en combinaison. Pour répondre à cela, ce logiciel peut désormais (éventuellement) coller à votre gnuplot installé et créer des rendus PNG ou SVG de votre FLVS. Voici un exemple:
Cela fonctionne, un logiciel fonctionnel, adapté à une utilisation dans votre propre jeu ou application. Il prend actuellement en charge:
if A then Z
)if A or B, then Z
/ if A and B, then Z
)À faire (en importance descendante, à peu près):
Regardez le Changelog pour les nouvelles.
Je vous recommande de cloner le référentiel GIT et de parcourir les exemples et le code source pour comprendre pleinement le fonctionnement des Fams.
Mais si / quand vous souhaitez l'utiliser dans votre propre projet, la façon la plus simple de le faire est via le joyau:
gem install fuzzy_associative_memory
Puis dans votre code:
require 'fuzzy_associative_memory'
Le gemme est entièrement des noms de noms pour empêcher les collisions. Voir les exemples pour les détails d'utilisation.
Le répertoire bin
contient les exemples suivants:
hvac_system_example
illustre comment une FAM pourrait gouverner une unité de ventilateur HVAC pour maintenir une température constante et confortableweapon_choice_example
illustre comment une famille pourrait laisser un bot de jeu décider intelligemment quelle arme utiliserLes parcelles des variables linguistiques floues des exemples ont été pré-rendues et sont dans le répertoire des bacs. Ceux-ci vous aideront à visualiser les FLV.