home Forums # Technical Support Rule Block Requires Conjunction Operator

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #1688

    Hi there,

    I’ve been trying to use Fuzzylite via a matlab .fis file and I’m getting an error that 7 of my rules require a conjunctor operator, but I’m not sure what that actually means.

    I’ve had a look at the engine source code but there’s no documentation explaining if there are any standard conjunction operators.

    How I initialize my engine is below;

    	//Read fis file into a string 
    	std::ifstream in("bin/fis/Car.fis");
    	std::string file((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
    	//Import file into fuzzy engine
    	mEngine = std::unique_ptr<fl::Engine>(fl::FisImporter().fromString(file));
    	mEngine->configure("", "", "Minimum", "Maximum", "Centroid");

    I’m sure I’m probably missing something but I’m not sure what, any help would be much appreciated.



    Hi Dillanm,

    if you are using fuzzylite 5, you can create the Engine straight using Engine* e = fl::FisImporter().fromFile("bin/fis/Car.fis").

    If you are using fuzzylite 5 and your rules contain and in the antecedent (e.g., if A is a and B is b), then you need a Conjunction operator. In the documentation available at http://www.fuzzylite.com/downloads, you can find that typical conjunction operators are Minimum and AlgebraicProduct. As such, you would need to e->configure("Minimum","","Minimum","Maximum","Centroid"), furthermore, you can always check the engine using

    std::string check; 
     if (not engine->isReady(&check)){

    These errors are very easily found using QtFuzzyLite 5.



    Hi Juan,

    I was hoping there was a short way of doing the load from file, thanks for that.

    I was using the engine isready function to get that error message about the conjunctions.


Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.