ok thats pretty good but what can simulated annealing do
parent
4b846fd9ec
commit
8a9cb5a82d
|
|
@ -24,6 +24,7 @@ def main():
|
|||
args = ap.parse_args()
|
||||
|
||||
w_translation = json.loads(args.translation) if args.translation else None
|
||||
|
||||
w = writer.Writer(writer.PyAutoGUIWriter(w_translation))
|
||||
if args.stdout:
|
||||
w = writer.Writer(writer.StdoutWriter())
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import threading
|
||||
import math
|
||||
import json
|
||||
import queue
|
||||
import time
|
||||
import sys
|
||||
|
|
@ -69,11 +70,18 @@ class StdinReader:
|
|||
return None
|
||||
|
||||
class RandomReader:
|
||||
def __init__(self, keys):
|
||||
self.keys = keys
|
||||
def __init__(self, translation):
|
||||
self.translation = translation
|
||||
self.pool = bucket.Bucket(1)
|
||||
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"]):
|
||||
self.pool.push(k)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue