Bah! Remove CoderackPressures as it's not hooked up to anything.
This commit is contained in:
@ -3,7 +3,6 @@ class Codelet(object):
|
|||||||
self.name = name
|
self.name = name
|
||||||
self.urgency = urgency
|
self.urgency = urgency
|
||||||
self.arguments = []
|
self.arguments = []
|
||||||
self.pressure = None
|
|
||||||
self.timeStamp = timestamp
|
self.timeStamp = timestamp
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import random
|
|||||||
import codeletMethods
|
import codeletMethods
|
||||||
import formulas
|
import formulas
|
||||||
from codelet import Codelet
|
from codelet import Codelet
|
||||||
from coderackPressure import CoderackPressures
|
|
||||||
from temperature import temperature
|
from temperature import temperature
|
||||||
from workspace import workspace
|
from workspace import workspace
|
||||||
|
|
||||||
@ -74,7 +73,6 @@ def howManyToPost(workspace, codeletName):
|
|||||||
class Coderack(object):
|
class Coderack(object):
|
||||||
def __init__(self, slipnet):
|
def __init__(self, slipnet):
|
||||||
self.slipnet = slipnet
|
self.slipnet = slipnet
|
||||||
self.pressures = CoderackPressures()
|
|
||||||
self.reset()
|
self.reset()
|
||||||
self.runCodelets = {}
|
self.runCodelets = {}
|
||||||
self.postings = {}
|
self.postings = {}
|
||||||
@ -116,7 +114,6 @@ class Coderack(object):
|
|||||||
self.codelets = []
|
self.codelets = []
|
||||||
self.codeletsRun = 0
|
self.codeletsRun = 0
|
||||||
temperature.clamped = True
|
temperature.clamped = True
|
||||||
self.pressures.reset()
|
|
||||||
|
|
||||||
def updateCodelets(self):
|
def updateCodelets(self):
|
||||||
if self.codeletsRun > 0:
|
if self.codeletsRun > 0:
|
||||||
@ -125,7 +122,6 @@ class Coderack(object):
|
|||||||
|
|
||||||
def post(self, codelet):
|
def post(self, codelet):
|
||||||
self.postings[codelet.name] = self.postings.get(codelet.name, 0) + 1
|
self.postings[codelet.name] = self.postings.get(codelet.name, 0) + 1
|
||||||
self.pressures.addCodelet(codelet)
|
|
||||||
self.codelets += [codelet]
|
self.codelets += [codelet]
|
||||||
if len(self.codelets) > 100:
|
if len(self.codelets) > 100:
|
||||||
oldCodelet = self.chooseOldCodelet()
|
oldCodelet = self.chooseOldCodelet()
|
||||||
@ -178,7 +174,6 @@ class Coderack(object):
|
|||||||
|
|
||||||
def removeCodelet(self, codelet):
|
def removeCodelet(self, codelet):
|
||||||
self.codelets.remove(codelet)
|
self.codelets.remove(codelet)
|
||||||
self.pressures.removeCodelet(codelet)
|
|
||||||
|
|
||||||
def newCodelet(self, name, oldCodelet, strength, arguments=None):
|
def newCodelet(self, name, oldCodelet, strength, arguments=None):
|
||||||
#logging.debug('Posting new codelet called %s' % name)
|
#logging.debug('Posting new codelet called %s' % name)
|
||||||
@ -188,7 +183,6 @@ class Coderack(object):
|
|||||||
newCodelet.arguments = [arguments]
|
newCodelet.arguments = [arguments]
|
||||||
else:
|
else:
|
||||||
newCodelet.arguments = oldCodelet.arguments
|
newCodelet.arguments = oldCodelet.arguments
|
||||||
newCodelet.pressure = oldCodelet.pressure
|
|
||||||
self.post(newCodelet)
|
self.post(newCodelet)
|
||||||
|
|
||||||
# pylint: disable=too-many-arguments
|
# pylint: disable=too-many-arguments
|
||||||
|
|||||||
@ -1,115 +0,0 @@
|
|||||||
import logging
|
|
||||||
from formulas import Temperature
|
|
||||||
from slipnet import slipnet
|
|
||||||
|
|
||||||
|
|
||||||
class CoderackPressure(object):
|
|
||||||
def __init__(self, name):
|
|
||||||
self.name = name
|
|
||||||
|
|
||||||
def reset(self):
|
|
||||||
self.values = []
|
|
||||||
self.codelets = []
|
|
||||||
|
|
||||||
|
|
||||||
def _codelet_index(codelet):
|
|
||||||
name_indices = {
|
|
||||||
'bottom-up-bond-scout': 0,
|
|
||||||
'top-down-bond-scout--category': {
|
|
||||||
slipnet.successor: 1,
|
|
||||||
slipnet.predecessor: 2,
|
|
||||||
None: 3
|
|
||||||
},
|
|
||||||
'top-down-bond-scout--direction': {
|
|
||||||
slipnet.left: 4,
|
|
||||||
slipnet.right: 5,
|
|
||||||
None: 3,
|
|
||||||
},
|
|
||||||
'top-down-group-scout--category': {
|
|
||||||
slipnet.successorGroup: 6,
|
|
||||||
slipnet.predecessorGroup: 7,
|
|
||||||
None: 8,
|
|
||||||
},
|
|
||||||
'top-down-group-scout--direction': {
|
|
||||||
slipnet.left: 9,
|
|
||||||
slipnet.right: 10,
|
|
||||||
None: -1,
|
|
||||||
},
|
|
||||||
'group-scout--whole-string': 11,
|
|
||||||
'replacement-finder': 12,
|
|
||||||
'rule-scout': 13,
|
|
||||||
'rule-translator': 14,
|
|
||||||
'bottom-up-correspondence-scout': 15,
|
|
||||||
'important-object-correspondence-scout': 16,
|
|
||||||
'breaker': 17,
|
|
||||||
}
|
|
||||||
i = name_indices.get(codelet.name, -1)
|
|
||||||
try:
|
|
||||||
return int(i)
|
|
||||||
except (TypeError, ValueError):
|
|
||||||
try:
|
|
||||||
node = codelet.arguments[0]
|
|
||||||
return i[node]
|
|
||||||
except KeyError:
|
|
||||||
return i[None]
|
|
||||||
|
|
||||||
|
|
||||||
class CoderackPressures(object):
|
|
||||||
def __init__(self):
|
|
||||||
self.pressures = [
|
|
||||||
CoderackPressure('Bottom Up Bonds'),
|
|
||||||
CoderackPressure('Top Down Successor Bonds'),
|
|
||||||
CoderackPressure('Top Down Predecessor Bonds'),
|
|
||||||
CoderackPressure('Top Down Sameness Bonds'),
|
|
||||||
CoderackPressure('Top Down Left Bonds'),
|
|
||||||
CoderackPressure('Top Down Right Bonds'),
|
|
||||||
CoderackPressure('Top Down Successor Group'),
|
|
||||||
CoderackPressure('Top Down Predecessor Group'),
|
|
||||||
CoderackPressure('Top Down Sameness Group'),
|
|
||||||
CoderackPressure('Top Down Left Group'),
|
|
||||||
CoderackPressure('Top Down Right Group'),
|
|
||||||
CoderackPressure('Bottom Up Whole Group'),
|
|
||||||
CoderackPressure('Replacement Finder'),
|
|
||||||
CoderackPressure('Rule Codelets'),
|
|
||||||
CoderackPressure('Rule Translator'),
|
|
||||||
CoderackPressure('Bottom Up Correspondences'),
|
|
||||||
CoderackPressure('Important Object Correspondences'),
|
|
||||||
CoderackPressure('Breakers'),
|
|
||||||
]
|
|
||||||
self.reset()
|
|
||||||
|
|
||||||
def calculatePressures(self):
|
|
||||||
scale = (100.0 - Temperature + 10.0) / 15.0
|
|
||||||
values = map(
|
|
||||||
lambda pressure: sum(c.urgency ** scale for c in pressure.codelets),
|
|
||||||
self.pressures
|
|
||||||
)
|
|
||||||
totalValue = sum(values) or 1.0
|
|
||||||
values = [value / totalValue for value in values]
|
|
||||||
self.maxValue = max(values)
|
|
||||||
for pressure, value in zip(self.pressures, values):
|
|
||||||
pressure.values += [value * 100.0]
|
|
||||||
for codelet in self.removedCodelets:
|
|
||||||
if codelet.pressure:
|
|
||||||
codelet.pressure.codelets.remove(codelet)
|
|
||||||
self.removedCodelets = []
|
|
||||||
|
|
||||||
def reset(self):
|
|
||||||
self.maxValue = 0.001
|
|
||||||
self.removedCodelets = []
|
|
||||||
for pressure in self.pressures:
|
|
||||||
pressure.reset()
|
|
||||||
|
|
||||||
def addCodelet(self, codelet):
|
|
||||||
i = _codelet_index(codelet)
|
|
||||||
if i >= 0:
|
|
||||||
codelet.pressure = self.pressures[i]
|
|
||||||
if codelet.pressure:
|
|
||||||
codelet.pressure.codelets += [codelet]
|
|
||||||
logging.info('Add %s: %d', codelet.name, i)
|
|
||||||
|
|
||||||
def removeCodelet(self, codelet):
|
|
||||||
self.removedCodelets += [codelet]
|
|
||||||
|
|
||||||
def numberOfPressures(self):
|
|
||||||
return len(self.pressures)
|
|
||||||
@ -18,7 +18,6 @@ def mainLoop(lastUpdate):
|
|||||||
coderack.updateCodelets()
|
coderack.updateCodelets()
|
||||||
slipnet.update()
|
slipnet.update()
|
||||||
workspace.updateTemperature()
|
workspace.updateTemperature()
|
||||||
coderack.pressures.calculatePressures()
|
|
||||||
lastUpdate = currentTime
|
lastUpdate = currentTime
|
||||||
logging.debug('Number of codelets: %d', len(coderack.codelets))
|
logging.debug('Number of codelets: %d', len(coderack.codelets))
|
||||||
coderack.chooseAndRunCodelet()
|
coderack.chooseAndRunCodelet()
|
||||||
|
|||||||
Reference in New Issue
Block a user