Skip to content

Instantly share code, notes, and snippets.

@senhorinha
Last active May 16, 2016 10:46
Show Gist options
  • Save senhorinha/6ac2c68bdb6149d33e43dbd601c1fdf9 to your computer and use it in GitHub Desktop.
Save senhorinha/6ac2c68bdb6149d33e43dbd601c1fdf9 to your computer and use it in GitHub Desktop.
Fuzzy Logic using R
#!/usr/bin/env Rscript
library("sets")
# Step 1 - Setting up the Fuzzy Logic
sets_options("universe", seq(from = 0, to = 40, by = 1))
# Step 1.1 - Setting up the Variables
variables =
set(
ideal_temperature =
fuzzy_partition(varnames =
c(low = 10, medium = 20, high = 30), sd = 10),
outside_temperature =
fuzzy_partition(varnames =
c(low = 10, medium = 20, high = 30), sd = 10),
internal_temperature =
fuzzy_partition(varnames =
c(low = 10, medium = 20, high = 30), sd = 10),
air_conditioning_consumption =
fuzzy_partition(varnames =
c(low = 10, medium = 20, high = 30), sd = 10),
sustainability_level =
fuzzy_partition(varnames =
c(low = 10, medium = 20, high = 30), sd = 10)
)
# Step 1.2 - Setting Up the Rules
rules =
set(
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% low && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% medium && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% low && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% medium && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% low && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% low, sustainability_level %is% medium),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% medium, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% medium && air_conditioning_consumption %is% high, sustainability_level %is% low),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% low, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% medium, sustainability_level %is% high),
fuzzy_rule(ideal_temperature %is% high && outside_temperature %is% high && internal_temperature %is% high && air_conditioning_consumption %is% high, sustainability_level %is% medium)
)
# Step 2 - Building system
system = fuzzy_system(variables, rules)
print(system)
# Step 3 - Execution of logic
umidity =
ideal_temperature =
most_recent_outside_temperature = 25
most_recent_internal_temperature = 25
air_conditioning_consumption = 1000
temperature_error = external_temperature - internal_temperature
result <- fuzzy_inference(system, list( internal_temperature = input_internal_temperature, air_conditioning_consumption = input_air_conditioning_consumption))
# Step 4 - Defuzzify
defuzzy_result = gset_defuzzify(result, "centroid")
print(defuzzy_result)
# Step 5 - Cleaning the environment
sets_options("universe", NULL)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment