Example #1
0
 def mutate_brain(brain):
     """ Add random mutations to a brain """
     # For all synapses: shift in some direction with random chance
     for s in brain.synapses:
         if util.rand(0, 1) <= Agent._MUTATE_SYNAPSE_ODDS:
             s.weight += Agent._MUTATE_SYNAPSE_SHIFT * util.rand(-1, 1)
             s.weight = util.clamp(s.weight, -1, 1)
	def mutate_brain(brain):
		""" Add random mutations to a brain """
		# For all synapses: shift in some direction with random chance
		for s in brain.synapses:
			if util.rand(0, 1) <= Agent._MUTATE_SYNAPSE_ODDS:
				s.weight += Agent._MUTATE_SYNAPSE_SHIFT * util.rand(-1, 1)
				s.weight = util.clamp(s.weight, -1, 1)
Example #3
0
def setup_scene():
    # Create camera
    target = util.ensure_target()
    util.ensure_camera((util.rand(), util.rand(), 8 + util.rand()), target)

    # Create light
    util.ensure_light(origin=(0, 0, 10))

    # Create backdrop
    util.ensure_cube()

    # Create paper
    paperGen = paper.create_random_paper()
    minHeight = util.ensure_paper(paperGen)

    def adjust_height(world):
        return mathutils.Vector((world[0], world[1], world[2] - minHeight))

    # Return lambda that maps paper coordinates to world
    return lambda coord: adjust_height(paperGen(*coord))
Example #4
0
    def breed_brain(parent_1_brain, parent_2_brain):
        """
		Create a brain with mixed traits from two parents by starting with a
		copy of parent_1_brain then swapping or mixing with parent_2_brain
		"""
        brain = parent_1_brain.make_copy()

        # For all synapses: replace with parent 2, average, or leave the same
        for i, s in enumerate(brain.synapses):
            chance = util.rand(0, 1)
            parent_2_weight = parent_2_brain.synapses[i].weight
            if chance > 0.66:
                s.weight = parent_2_weight
            elif chance > 0.33:
                s.weight = (s.weight + parent_2_weight) / 2.0

        return brain
	def breed_brain(parent_1_brain, parent_2_brain):
		"""
		Create a brain with mixed traits from two parents by starting with a
		copy of parent_1_brain then swapping or mixing with parent_2_brain
		"""
		brain = parent_1_brain.make_copy()

		# For all synapses: replace with parent 2, average, or leave the same
		for i, s in enumerate(brain.synapses):
			chance = util.rand(0, 1)
			parent_2_weight = parent_2_brain.synapses[i].weight
			if chance > 0.66:
				s.weight = parent_2_weight
			elif chance > 0.33:
				s.weight = (s.weight + parent_2_weight) / 2.0

		return brain
Example #6
0
#!/usr/bin/python
from util import rand, ls, load, promptint, promptstr
print("XKCD Password Generator.")
dicts = ls("/usr/share/dict")

print("{:d} files found in /usr/share/dict".format(len(dicts)))
print("Choose which one to use 0-{:d}".format(len(dicts)-1))
for i in range(len(dicts)):
    print(str(i) + ": "+dicts[i].split("/")[-1])

d  = load("/usr/share/dict/"+dicts[promptint("Choice (0-{:d}): ".format(len(dicts)-1))], 
        promptint("Minimum word length: "), 
        promptint("Maximum word length: "))

pw = ""
for i in range(promptint("Number of words: ")):
    pw = pw + d[rand(len(d))][:-1] + " "

print(pw)

Example #7
0
from flask import redirect
from flask import render_template
from flask import request
from flask.ext.socketio import SocketIO
from models import App
import traceback
import client
import config
import helpers
import util

client.set_validate_ssl(config.validate_ssl)

app = helpers.CustomFlask(__name__)
app.debug = os.getenv('APP_DEBUG', 'false') == 'true'
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', util.rand(16))

socketio = SocketIO(app)

routes_whitelist = [
    '/signin',
]


def form_as_dict():
    form = {}
    for key, val in request.form.items():
        if key not in form:
            form[key] = val
        elif not isinstance(form[key], list):
            form[key] = [form[key], val]
Example #8
0
    def create_random_brain():
        """ Create a brain with randomized parameters """
        brain = nnet.NeuralNetwork()

        # Logic neurons
        logic_0 = nnet.Neuron("lgc_0")
        logic_1 = nnet.Neuron("lgc_1")
        logic_2 = nnet.Neuron("lgc_2")
        logic_3 = nnet.Neuron("lgc_3")
        # Input (hunger) neuron turns on as health goes down
        hunger = nnet.Neuron("hunger", is_input=True)
        # Input (smell) neurons for nearby Food
        food_left = nnet.Neuron("fd_lft", is_input=True)
        food_right = nnet.Neuron("fd_rght", is_input=True)
        # Input (sight) neurons for nearby Agents
        agent_left = nnet.Neuron("agnt_lft", is_input=True)
        agent_right = nnet.Neuron("agnt_rght", is_input=True)
        # Output (movement) neurons
        move_left = nnet.Neuron("mv_lft")
        move_right = nnet.Neuron("mv_rght")
        # Output (attack) neuron
        attack = nnet.Neuron("atk")

        # Input layer
        brain.add_neuron(agent_left)
        brain.add_neuron(food_left)
        brain.add_neuron(hunger)
        brain.add_neuron(food_right)
        brain.add_neuron(agent_right)
        # Hidden layer
        brain.add_neuron(logic_0)
        brain.add_neuron(logic_1)
        brain.add_neuron(logic_2)
        brain.add_neuron(logic_3)
        # Output layer
        brain.add_neuron(move_left)
        brain.add_neuron(attack)
        brain.add_neuron(move_right)

        # Input to hidden layer: left side
        brain.add_synapse(
            nnet.Synapse(agent_left, logic_0, util.rand(-0.25, 1)))
        brain.add_synapse(nnet.Synapse(agent_left, logic_1, util.rand(-1, 1)))
        brain.add_synapse(
            nnet.Synapse(food_left, logic_0, util.rand(-0.25, 0.25)))
        brain.add_synapse(nnet.Synapse(food_left, logic_1, util.rand(-0.25,
                                                                     1)))
        # Input to hidden layer: center
        brain.add_synapse(nnet.Synapse(hunger, logic_1, util.rand(-0.25,
                                                                  0.75)))
        brain.add_synapse(nnet.Synapse(hunger, logic_2, util.rand(-0.25,
                                                                  0.75)))
        # Input to hidden layer: right side
        brain.add_synapse(
            nnet.Synapse(food_right, logic_2, util.rand(-0.25, 1)))
        brain.add_synapse(
            nnet.Synapse(food_right, logic_3, util.rand(-0.25, 0.25)))
        brain.add_synapse(
            nnet.Synapse(agent_right, logic_2, util.rand(-0.25, 0.25)))
        brain.add_synapse(
            nnet.Synapse(agent_right, logic_3, util.rand(-0.25, 1)))
        # Hidden to output layer: left side
        brain.add_synapse(
            nnet.Synapse(logic_0, move_left, util.rand(-0.25, 0.25)))
        brain.add_synapse(nnet.Synapse(logic_0, attack, util.rand(-0.5, 0.5)))
        brain.add_synapse(nnet.Synapse(logic_1, move_left, util.rand(-0.25,
                                                                     1)))
        brain.add_synapse(nnet.Synapse(logic_1, attack, util.rand(-0.25,
                                                                  0.25)))
        # Hidden to output layer: right side
        brain.add_synapse(nnet.Synapse(logic_2, attack, util.rand(-0.25,
                                                                  0.25)))
        brain.add_synapse(
            nnet.Synapse(logic_2, move_right, util.rand(-0.25, 1)))
        brain.add_synapse(nnet.Synapse(logic_3, attack, util.rand(-0.5, 0.5)))
        brain.add_synapse(
            nnet.Synapse(logic_3, move_right, util.rand(-0.25, 0.25)))

        return brain
Example #9
0
 def move_to_random(self):
     """ Move to a random location and heading within the world """
     self.move_to(util.rand(0, Actor._WORLD_SIZE[0]),
                  util.rand(0, Actor._WORLD_SIZE[1]),
                  util.rand(0, 2 * math.pi))
Example #10
0
 def _will_attack(self):
     """ Determine if this Agent will attack another in an interaction """
     prob = self.brain.find_neuron("atk").get_activation()
     prob = util.clamp(prob, 0, 1)
     return util.rand(0, 1) <= prob
Example #11
0
	def create_random_brain():
		""" Create a brain with randomized parameters """
		brain = nnet.NeuralNetwork()

		# Logic neurons
		logic_0 = nnet.Neuron("lgc_0")
		logic_1 = nnet.Neuron("lgc_1")
		logic_2 = nnet.Neuron("lgc_2")
		logic_3 = nnet.Neuron("lgc_3")
		# Input (hunger) neuron turns on as health goes down
		hunger = nnet.Neuron("hunger", is_input = True)
		# Input (smell) neurons for nearby Food
		food_left = nnet.Neuron("fd_lft", is_input = True)
		food_right = nnet.Neuron("fd_rght", is_input = True)
		# Input (sight) neurons for nearby Agents
		agent_left = nnet.Neuron("agnt_lft", is_input = True)
		agent_right = nnet.Neuron("agnt_rght", is_input = True)
		# Output (movement) neurons
		move_left = nnet.Neuron("mv_lft")
		move_right = nnet.Neuron("mv_rght")
		# Output (attack) neuron
		attack = nnet.Neuron("atk")

		# Input layer
		brain.add_neuron(agent_left)
		brain.add_neuron(food_left)
		brain.add_neuron(hunger)
		brain.add_neuron(food_right)
		brain.add_neuron(agent_right)
		# Hidden layer
		brain.add_neuron(logic_0)
		brain.add_neuron(logic_1)
		brain.add_neuron(logic_2)
		brain.add_neuron(logic_3)
		# Output layer
		brain.add_neuron(move_left)
		brain.add_neuron(attack)
		brain.add_neuron(move_right)

		# Input to hidden layer: left side
		brain.add_synapse(nnet.Synapse(agent_left, logic_0, util.rand(-0.25, 1)))
		brain.add_synapse(nnet.Synapse(agent_left, logic_1, util.rand(-1, 1)))
		brain.add_synapse(nnet.Synapse(food_left, logic_0, util.rand(-0.25, 0.25)))
		brain.add_synapse(nnet.Synapse(food_left, logic_1, util.rand(-0.25, 1)))
		# Input to hidden layer: center
		brain.add_synapse(nnet.Synapse(hunger, logic_1, util.rand(-0.25, 0.75)))
		brain.add_synapse(nnet.Synapse(hunger, logic_2, util.rand(-0.25, 0.75)))
		# Input to hidden layer: right side
		brain.add_synapse(nnet.Synapse(food_right, logic_2, util.rand(-0.25, 1)))
		brain.add_synapse(nnet.Synapse(food_right, logic_3, util.rand(-0.25, 0.25)))
		brain.add_synapse(nnet.Synapse(agent_right, logic_2, util.rand(-0.25, 0.25)))
		brain.add_synapse(nnet.Synapse(agent_right, logic_3, util.rand(-0.25, 1)))
		# Hidden to output layer: left side
		brain.add_synapse(nnet.Synapse(logic_0, move_left, util.rand(-0.25, 0.25)))
		brain.add_synapse(nnet.Synapse(logic_0, attack, util.rand(-0.5, 0.5)))
		brain.add_synapse(nnet.Synapse(logic_1, move_left, util.rand(-0.25, 1)))
		brain.add_synapse(nnet.Synapse(logic_1, attack, util.rand(-0.25, 0.25)))
		# Hidden to output layer: right side
		brain.add_synapse(nnet.Synapse(logic_2, attack, util.rand(-0.25, 0.25)))
		brain.add_synapse(nnet.Synapse(logic_2, move_right, util.rand(-0.25, 1)))
		brain.add_synapse(nnet.Synapse(logic_3, attack, util.rand(-0.5, 0.5)))
		brain.add_synapse(nnet.Synapse(logic_3, move_right, util.rand(-0.25, 0.25)))

		return brain
Example #12
0
	def move_to_random(self):
		""" Move to a random location and heading within the world """
		self.move_to(util.rand(0, Actor._WORLD_SIZE[0]),
					 util.rand(0, Actor._WORLD_SIZE[1]),
					 util.rand(0, 2 * math.pi))
Example #13
0
	def _will_attack(self):
		""" Determine if this Agent will attack another in an interaction """
		prob = self.brain.find_neuron("atk").get_activation()
		prob = util.clamp(prob, 0, 1)
		return util.rand(0, 1) <= prob