ok thats pretty good but what can simulated annealing do
parent
4b846fd9ec
commit
8a9cb5a82d
|
|
@ -24,6 +24,7 @@ def main():
|
||||||
args = ap.parse_args()
|
args = ap.parse_args()
|
||||||
|
|
||||||
w_translation = json.loads(args.translation) if args.translation else None
|
w_translation = json.loads(args.translation) if args.translation else None
|
||||||
|
|
||||||
w = writer.Writer(writer.PyAutoGUIWriter(w_translation))
|
w = writer.Writer(writer.PyAutoGUIWriter(w_translation))
|
||||||
if args.stdout:
|
if args.stdout:
|
||||||
w = writer.Writer(writer.StdoutWriter())
|
w = writer.Writer(writer.StdoutWriter())
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import threading
|
import threading
|
||||||
import math
|
import math
|
||||||
|
import json
|
||||||
import queue
|
import queue
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
|
|
@ -69,11 +70,18 @@ class StdinReader:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
class RandomReader:
|
class RandomReader:
|
||||||
def __init__(self, keys):
|
def __init__(self, translation):
|
||||||
self.keys = keys
|
self.translation = translation
|
||||||
self.pool = bucket.Bucket(1)
|
self.pool = bucket.Bucket(1)
|
||||||
self.pool.chooser = bucket.BucketChooserProportionalRandom()
|
self.pool.chooser = bucket.BucketChooserProportionalRandom()
|
||||||
for k,v in keys.items():
|
|
||||||
|
total_weight = float(sum([i["weight"] for i in translation.values()]))
|
||||||
|
for v in translation.values():
|
||||||
|
v["weight"] = float(v["weight"]) / total_weight
|
||||||
|
for v in translation.values():
|
||||||
|
v["weight"] = int(1000 * math.sqrt(v["weight"]))
|
||||||
|
print(1, json.dumps(translation, indent=" "))
|
||||||
|
for k,v in translation.items():
|
||||||
for i in range(v["weight"]):
|
for i in range(v["weight"]):
|
||||||
self.pool.push(k)
|
self.pool.push(k)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue