Move updateTemperature() from workspaceFormulas to workspace.

And remove dead and/or logging code to simplify the logic.
This commit is contained in:
Arthur O'Dwyer
2017-04-16 17:46:00 -07:00
parent 8171b68cbe
commit 5423d078e8
5 changed files with 18 additions and 35 deletions

View File

@ -1,7 +1,6 @@
import logging import logging
from workspace import workspace from workspace import workspace
from workspaceFormulas import workspaceFormulas
from slipnet import slipnet from slipnet import slipnet
from temperature import temperature from temperature import temperature
from coderack import coderack from coderack import coderack
@ -12,7 +11,7 @@ def updateEverything():
workspace.updateEverything() workspace.updateEverything()
coderack.updateCodelets() coderack.updateCodelets()
slipnet.update() slipnet.update()
workspaceFormulas.updateTemperature() workspace.updateTemperature()
coderackPressures.calculatePressures() coderackPressures.calculatePressures()

View File

@ -8,7 +8,6 @@ class Temperature(object):
self.clampTime = 30 self.clampTime = 30
def update(self, value): def update(self, value):
logging.debug('update to %s', value)
self.value = value self.value = value
def tryUnclamp(self): def tryUnclamp(self):

View File

@ -1,5 +1,7 @@
import logging import logging
import formulas
from temperature import temperature
from workspaceString import WorkspaceString from workspaceString import WorkspaceString
@ -83,6 +85,20 @@ class Workspace(object):
self.initial.updateIntraStringUnhappiness() self.initial.updateIntraStringUnhappiness()
self.target.updateIntraStringUnhappiness() self.target.updateIntraStringUnhappiness()
def updateTemperature(self):
self.assessTemperature()
ruleWeakness = 100.0
if self.rule:
self.rule.updateStrength()
ruleWeakness = 100.0 - self.rule.totalStrength
values = ((self.totalUnhappiness, 0.8), (ruleWeakness, 0.2))
above_actual_temperature = formulas.actualTemperature + 0.001
formulas.actualTemperature = formulas.weightedAverage(values)
if temperature.clamped:
formulas.actualTemperature = 100.0
formulas.Temperature = formulas.actualTemperature
temperature.update(formulas.Temperature)
def numberOfUnrelatedObjects(self): def numberOfUnrelatedObjects(self):
"""A list of all objects in the workspace with >= 1 open bond slots""" """A list of all objects in the workspace with >= 1 open bond slots"""
objects = [o for o in self.objects objects = [o for o in self.objects

View File

@ -6,37 +6,6 @@ from slipnet import slipnet
import formulas import formulas
class WorkspaceFormulas(object):
def __init__(self):
self.clampTemperature = False
def updateTemperature(self):
logging.debug('updateTemperature')
workspace.assessTemperature()
ruleWeakness = 100.0
if workspace.rule:
workspace.rule.updateStrength()
ruleWeakness = 100.0 - workspace.rule.totalStrength
values = ((workspace.totalUnhappiness, 0.8), (ruleWeakness, 0.2))
above_actual_temperature = formulas.actualTemperature + 0.001
logging.info('actualTemperature: %f', above_actual_temperature)
formulas.actualTemperature = formulas.weightedAverage(values)
logging.info('unhappiness: %f, weakness: %f, actualTemperature: %f',
workspace.totalUnhappiness + 0.001, ruleWeakness + 0.001,
formulas.actualTemperature + 0.001)
if temperature.clamped:
formulas.actualTemperature = 100.0
logging.info('actualTemperature: %f',
formulas.actualTemperature + 0.001)
temperature.update(formulas.actualTemperature)
if not self.clampTemperature:
formulas.Temperature = formulas.actualTemperature
temperature.update(formulas.Temperature)
workspaceFormulas = WorkspaceFormulas()
def numberOfObjects(): def numberOfObjects():
return len(workspace.objects) return len(workspace.objects)

View File

@ -1,6 +1,7 @@
import logging import logging
from description import Description from description import Description
from formulas import weightedAverage
from slipnet import slipnet, distinguishingDescriptor from slipnet import slipnet, distinguishingDescriptor
from workspaceStructure import WorkspaceStructure from workspaceStructure import WorkspaceStructure
@ -106,7 +107,6 @@ class WorkspaceObject(WorkspaceStructure):
self.intraStringSalience = 100.0 self.intraStringSalience = 100.0
self.interStringSalience = 100.0 self.interStringSalience = 100.0
else: else:
from formulas import weightedAverage
self.intraStringSalience = weightedAverage(( self.intraStringSalience = weightedAverage((
(self.relativeImportance, 0.2), (self.relativeImportance, 0.2),
(self.intraStringUnhappiness, 0.8))) (self.intraStringUnhappiness, 0.8)))