Skip to content

Commit

Permalink
update decision function. allows one pudgi to make decisions
Browse files Browse the repository at this point in the history
  • Loading branch information
Kcunningham20 committed Apr 26, 2018
1 parent 8c1bad6 commit 290b14d
Show file tree
Hide file tree
Showing 27 changed files with 130 additions and 2,592 deletions.
2 changes: 1 addition & 1 deletion virtupet/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

106 changes: 96 additions & 10 deletions virtupet/Pudgi.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,6 @@ def go_left(self):
def stop(self):
self.change_x = 0

def make_decision(self):
# make decision
return

def import_from_json(self, load):
self.handler.load_file(load)
self.json_object = self.handler.get_data()
Expand Down Expand Up @@ -335,12 +331,102 @@ def select_parents(active_agent_list):

return parents

def make_decicion(self):
self.handler.load_file("./data/decisions.py")
def make_decision(self):
self.handler.load_file("./data/decisions.json")
decision_file = self.handler.get_data()
self.handler.load_file("./data/pudgi" + self.uid + ".json")
pudgi_file = self.handler.get_data()

if (random.random() > 0.5):
self.handler.load_file("./data/pudgies/" + self.uid + ".json")
choice_index = -1
happiness_optimized = 0
t = 0
choice = None

w_att = self.weights["attachment"]
w_hum = self.weights["humor"]
w_enj = self.weights["enjoyment"]
w_exc = self.weights["excitement"]
w_conf = self.weights["confidence"]
w_cont = self.weights["contentment"]
w_vit = self.weights["vitality"]
w_phy = self.weights["physical"]
w_ment = self.weights["mental"]

if random.random() > 1.0:
index = 0
for decision in self.known_decisions:
name = decision["name"]

att = None
hum = None
enj = None
exc = None
conf = None
cont = None
vit = None
phy = None
ment = None
ent = None

for dec in decision_file:
if dec["name"] == name:

att = dec["values"]["attachment"]
hum = dec["values"]["humor"]
enj = dec["values"]["enjoyment"]
exc = dec["values"]["excitement"]
conf = dec["values"]["confidence"]
cont = dec["values"]["contentment"]
vit = dec["values"]["vitality"]
phy = dec["values"]["physical_energy"]
ment = dec["values"]["mental_energy"]
ent = dec["values"]["entertainment"]

for dec in self.known_decisions:
if dec["name"] == name:
t = dec["count"]

happiness = pow(ent, t) * ((pow(att, w_att))+(pow(hum, w_hum))+(pow(enj, w_enj)) +
(pow(exc, w_exc)) + (pow(conf, w_conf))+(pow(cont, w_cont)) -
(pow(vit, w_vit)) - (pow(phy, w_phy)) - (pow(ment, w_ment)))

if happiness > happiness_optimized:
happiness_optimized = happiness
choice = decision
choice_index = index

index += 1

else:
dec_attempt = random.choice(decision_file)
for known in self.known_decisions: # iterate through all known
if dec_attempt["name"] == known["name"]: # if we find a match, break out. We don't want this
break
else:
choice = dec_attempt
att = choice["values"]["attachment"]
hum = choice["values"]["humor"]
enj = choice["values"]["enjoyment"]
exc = choice["values"]["excitement"]
conf = choice["values"]["confidence"]
cont = choice["values"]["contentment"]
vit = choice["values"]["vitality"]
phy = choice["values"]["physical_energy"]
ment = choice["values"]["mental_energy"]
ent = choice["values"]["entertainment"]

happiness_optimized = pow(ent, t)*((pow(att, w_att)) + (pow(hum, w_hum)) + (pow(enj, w_enj)) +
(pow(exc, w_exc)) + (pow(conf, w_conf)) + (pow(cont, w_cont)) -
(pow(vit, w_vit)) - (pow(phy, w_phy)) - (pow(ment, w_ment)))

self.known_decisions.append({"name": choice["name"], "count": 0})
choice_index = len(self.known_decisions) - 1

if choice is not None:
if self.happiness + happiness_optimized <= 0:
self.happiness = 0
else:
if self.happiness + happiness_optimized <= 10:
self.happiness += happiness_optimized
else:
self.happiness = 10

self.known_decisions[choice_index]["count"] += 1
45 changes: 24 additions & 21 deletions virtupet/data/decisions.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
"confidence": 0.2,
"contentment": 0.6,
"entertainment": 1,
"vitality": -0.1,
"mental_energy": -0.2,
"physical_energy": -0.2
"vitality": 0.1,
"mental_energy": 0.2,
"physical_energy": 0.2
}
},
{"name": "push_car", "values":
Expand All @@ -20,9 +20,9 @@
"confidence": 0.3,
"contentment": 0.6,
"entertainment": 1,
"vitality": -0.1,
"mental_energy": -0.2,
"physical_energy": -0.2
"vitality": 0.1,
"mental_energy": 0.2,
"physical_energy": 0.2
}
},
{"name": "eat_cake", "values":
Expand All @@ -33,12 +33,12 @@
"confidence": 0.1,
"contentment": 0.7,
"entertainment": 1,
"vitality": -0.7,
"mental_energy": -0.5,
"vitality": 0.7,
"mental_energy": 0.5,
"physical_energy": 0.3
}
},
{"name": "sleep", "values":
{"name": "sleep", "values":
{"attachment": 0.1,
"humor": 0.1,
"enjoyment": 0.1,
Expand All @@ -49,21 +49,23 @@
"vitality": 0.8,
"mental_energy": 0.5,
"physical_energy": 0.5
}
},
}
},
{
"name": "reading",
"values": {
"attachment": 0.1,
"values":
{"attachment": 0.1,
"humor": 0.5,
"enjoyment": 0.9,
"excitement": 0.4,
"confidence": 0.3,
"contentment": 0.7,
"entertainment": 0.7,
"vitality": -0.1,
"mental_energy": -0.5,
"physical_energy": -0.1
"vitality": 0.1,
"mental_energy": 0.5,
"physical_energy": 0.1
}
},
{ "name": "eat_veggies", "values":
{"attachment": 0.3,
"humor": 0.1,
Expand All @@ -72,9 +74,10 @@
"confidence": 0.4,
"contentment": 0.1,
"entertainment": 0.1,
"vitality": -0.1,
"vitality": 0.1,
"mental_energy": 0.1,
"physical_energy": 0.1}
"physical_energy": 0.1
}
},
{"name": "meditate", "values":
{"attachment": 0.3,
Expand All @@ -98,9 +101,9 @@
"confidence": 0.1,
"contentment": 0.1,
"entertainment": 0.5,
"vitality": -0.1,
"mental_energy": -0.1,
"physical_energy": -0.1
"vitality": 0.1,
"mental_energy": 0.1,
"physical_energy": 0.1
}
}
]
84 changes: 0 additions & 84 deletions virtupet/data/pudgies/0x11979.json

This file was deleted.

Loading

0 comments on commit 290b14d

Please sign in to comment.