Forum Replies Created

Viewing 15 posts - 16 through 30 (of 467 total)
  • Author
    Posts
  • in reply to: did not receive the license #6320
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi Caitlin,

    many thanks for your purchase and post.

    Your email provider (@satellitedna.org) rejected the email containing the license. It also rejected my emails from @fuzzylite.com and @gmail.com addresses.

    Could you please email me a working email address of yours at jcrada@fuzzylite.com? I will forward you the email containing the license immediately.

    Thanks again for your purchase.

    Cheers.

    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    An extract of QtFuzzyLite.pro:

    
    FL_HOME=../fuzzylite-master/fuzzylite
    release:{
        FL_CONFIG=release
        FL_LIBRARY=fuzzylite-static
    }
    debug:{
        FL_CONFIG=debug
        FL_LIBRARY=fuzzylite-static-debug
    }
    INCLUDEPATH += . $${FL_HOME} \
    
    LIBS *= -L$${FL_HOME}/$${FL_CONFIG}/bin
    LIBS *= -l$${FL_LIBRARY}
    
    message("FL_HOME=$${FL_HOME}")
    message("FL_CONFIG=$${FL_CONFIG}")
    message("FL_LIBRARY=$${FL_LIBRARY}")
    

    some further ideas here: https://github.com/fuzzylite/fuzzylite/tree/release/examples/application

    my suggestion is to start simple and build on top of that.

    Cheers,

    Juan.

    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    Thanks for posting. I have sent you a private email about it.

    Cheers.

    in reply to: 3D surface #6300
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    thanks for your post and for your support.

    You can export the engine’s surface as Tab-Separated Values (tsv) and open the tsv file in excel.

    Please export your engine to the FuzzyLite Dataset format using QtFuzzyLite 6:
    (1) from the menu bar: File/Export To/FuzzyLite Dataset (FLD)
    (2) Choose the options as shown in the image below
    Screen-Shot-2019-01-13-at-20-54-59
    (3) open your tsv file in excel.

    Let me know if you were able to do it.

    Cheers,

    Juan

    in reply to: double-promotion warning in Operation.h #6287
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Thanks for reporting this.

    What compiler are you using? You do not need to worry about it. It might be just a new warning implemented in a new compiler version. I will take a look at this for the next version.

    Cheers,
    Juan

    in reply to: Migration to jfuzzylite #6268
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    I think the problem you are having is with locales. Take notice that you export values with , as decimal separators. I think R is not handling this well.

    Please try changing the locale in java before exporting to something like Locale.setDefault(new Locale("en", "NZ"));, make sure the exported values use . for decimals, and try running the script in R.

    You do not need to change anything from the R script.

    Cheers.

    in reply to: Migration to jfuzzylite #6267
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    oh, never mind. just saw it in the R code.

    in reply to: Migration to jfuzzylite #6266
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    could you please post the FLL code of your engine?

    Thanks.

    in reply to: Migration to jfuzzylite #6264
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi Andrey,

    thanks for your post and for using jfuzzylite.

    Could you please post the FLL code?

    As for the previous question, glad you found the mistake. The FCL engine you posted, the equivalent in FLL is:

    Engine: proximity
    InputVariable: signal
      enabled: true
      range: 30.000 120.000
      lock-range: false
      term: strong Discrete 0.000 1.000 30.000 1.000 65.000 0.000
      term: decent Discrete 25.000 0.000 60.000 1.000 90.000 0.000
      term: weak Discrete 80.000 0.000 120.000 1.000
    InputVariable: distance
      enabled: true
      range: 0.000 200.000
      lock-range: false
      term: low Discrete 0.000 1.000 20.000 0.000
      term: medium Discrete 15.000 0.000 30.000 1.000 70.000 0.000
      term: high Discrete 60.000 0.000 200.000 1.000
    OutputVariable: proximity
      enabled: true
      range: 0.000 100.000
      lock-range: false
      aggregation: Maximum
      defuzzifier: Centroid 100
      default: 0.000
      lock-previous: false
      term: immediate Discrete 0.000 1.000 30.000 0.000
      term: near Discrete 20.000 0.000 40.000 1.000 80.000 0.000
      term: far Discrete 70.000 0.000 100.000 1.000
    RuleBlock: first
      enabled: true
      conjunction: Minimum
      disjunction: none
      implication: Minimum
      activation: General
      rule: if signal is strong and distance is low then proximity is immediate
      rule: if signal is strong and distance is medium then proximity is immediate
      rule: if signal is strong and distance is high then proximity is immediate
      rule: if signal is decent and distance is low then proximity is immediate
      rule: if signal is decent and distance is medium then proximity is near
      rule: if signal is decent and distance is high then proximity is near
      rule: if signal is weak and distance is low then proximity is immediate
      rule: if signal is weak and distance is medium then proximity is near
      rule: if signal is weak and distance is high then proximity is far
    

    Take a look at the engine:
    Screen-Shot-2018-11-18-at-09-47-44

    in reply to: importing my code to qtfuzzylite #6258
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    what is your FIS file like?

    Thanks.

    in reply to: Version 6 #6252
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi Joel,

    thanks for bringing this up.

    We recently changed hosting provider, which broke the links. Sorry about that.

    The links should be working again.

    Cheers,

    Juan.

    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    sorry for the delay.

    What I mentioned is meant to be done programmatically in the fuzzylite libraries for Java, C++ or Python, not within QtFuzzyLite.

    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Interesting question.

    I think the easiest is to create an output variable that you construct and use as input variable. For example, create output variable output_state, your rules in the form “if output_state is walking then …”.

    The trick is that you are going to manipulate the fuzzy value of output_state. Every time that you get your set of three values, you are going to do something like:

    
    output_state = engine.output_variable("output_state")
    
    walking = output_state.terms[0]
    running = output_state.terms[1]
    stationary = output_state.terms[2]
    
    output_state.clear()
    
    implication = engine.rule_block[0].implication
    output_state.fuzzy.terms.append(Activated(walking, walking_value, implication))
    output_state.fuzzy.terms.append(Activated(running, running_value, implication))
    output_state.fuzzy.terms.append(Activated(stationary, stationary_value, implication))
    

    (The code above is Python, but should give you an idea to do so in C++/Java)

    You will also need to process the engine manually because in engine.process() all the output variables are cleared, and you do not want this output_state cleared.

    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    thanks for your questions.

    You can merge the two models into a single engine (just append the contents of one FLL into the other without the Engine tag). This merge assumes you have different names for Variables and RuleBlocks.

    Once merged, you could add in your relevant rule block a rule using the output variable in the antecedent.

    Check this example: https://github.com/fuzzylite/fuzzylite/blob/release/examples/mamdani/SimpleDimmerChained.fll

    Just make sure that the order of rules execution updates the output variable (to be used as input) before the rule.

    Also, have in mind that this approach is not exactly piping. Piping to me means that you defuzzify your output and use it as input in an input variable, thereby losing information in the process. The approach I am suggesting uses the fuzzy output directly, without defuzzification, thereby not losing information in the process.

    If this approach does not work for you, I am afraid that piping as you want it is not currently possible in QtFuzzyLite, but would be pretty easy to set up programmatically using the libraries.

    Cheers.

    in reply to: fl/Headers.h: No such file or directory #6218
    Juan Rada-Vilela
    Juan Rada-Vilela
    Keymaster

    Hi,

    your problem is that the paths are wrong. In particular, -l/fuzzylite-6.0/fuzzylite is pointing to root /, and same as -L/fuzzylite-6.0/fuzzylite/release/bin. They should be -l/home/yourname/fuzzylite-6.0/fuzzylite -L/home/yourname/fuzzylite-6.0/fuzzylite/release/bin`.

    In any case, make sure that both paths are accessible from where you run. Just executing the path will tell you whether it is a directory or not in terminal:

    juan@macbook:~$ /fuzzylite-6.0/fuzzylite
    -bash: /fuzzylite-6.0/fuzzylite: No such file or directory
    juan@macbook:~$ /Users/juan/dev/fuzzylite-6.0
    -bash: /Users/juan/dev/fuzzylite-6.0/: is a directory

Viewing 15 posts - 16 through 30 (of 467 total)