Пример #1
0
import subprocess


class Account(pso.ShmObject):
    def __init__(this, id, starting_value):
        this.id = id
        this.balance = starting_value


number_of_accounts = 200

print('sys.argv: ', sys.argv)

if len(sys.argv) != 3 or sys.argv[1] != 'worker':
    # main process
    coord_name = pso.init()

    pso.root().worker_count = 3
    if len(sys.argv) >= 2:
        pso.root().worker_count = int(sys.argv[1])

    pso.root().accounts = {
        f'client{i}': Account(i, random.randrange(1000))
        for i in range(number_of_accounts)
    }
    #original_values = [client.balance for client in pso.root().accounts.values()]
    original_values = [
        pso.root().accounts[f'client{i}'].balance
        for i in range(number_of_accounts)
    ]
    original_sum = sum(original_values)
Пример #2
0
        if errcode != pso.errs['FOLDER_IS_NOT_EMPTY']:
            print 'errcode = ', pso.err_names[errcode]
            print 'message = ', msg
            raise
    else:
        raise pso.error, 'failed'

# --+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--

def get_def_test():
    global s

# --+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--

try:
    pso.init("10701", False )
    
except pso.error:
    print "Is Quasar running? Does the shared-memory file exists?"
    raise
    
try:
    s = pso.Session()

    create_test()

    s.create_object( 'sess_folder1', pso.BaseDef(pso.FOLDER, 0) )
    s.create_object( 'sess_folder1/folder2', pso.BaseDef(pso.FOLDER, 0) )
    s.create_object( 'sess_folder1/folder3', pso.BaseDef(pso.FOLDER, 0) )
    s.create_object( 'sess_folder1/folder3/queue1', pso.BaseDef(pso.QUEUE, 3),
        [ pso.FieldDefinition('field1', pso.STRING,    20, 0,   0, 0, 0),
Пример #3
0
# imports
import pso
import numpy as np
import matplotlib.pyplot as plt

#
popsize = 200
xmin = -5.12
xmax = 5.12
degree = 2000

pop, v = pso.init(popsize, xmin, xmax)
value, gbest_value, gbest = pso.calfitvalue(pop)
pbest = pop

# plt.figure()

# plt.ion()
xx = []
ymax = []
ymin = []
ymean = []
for i in range(degree):
    plt.cla()

    xx.append(i)

    newpop, newv = pso.updatepop(pop, v, pbest, gbest, xmin, xmax)
    v = newv
    pop = newpop
    newvalue, newgbest_value, newgbest = pso.calfitvalue(newpop)
Пример #4
0
def main(argv):
    arguments = docopt(__doc__, version="PSO-Cancer-Evolution 1.0")

    particles = int(arguments['--particles'])
    iterations = int(arguments['--iterations'])
    alpha = float(arguments['--alpha'])
    beta = float(arguments['--beta'])
    k = int(arguments['--k'])
    c1 = float(arguments['--c1'])
    c2 = float(arguments['--c2'])
    seed = int(arguments['--seed'])
    runs = list(map(int, arguments['<runptcl>']))

    with open(arguments['--infile'], 'r') as f:
        # reading the file and feeding it to numpy
        # assuring that we at least have 2D array to work with
        matrix = np.atleast_2d(np.loadtxt(io.StringIO(f.read())))

    # number of mutations = number of columns
    mutations = matrix.shape[1]
    # number of cells = number of rows
    cells = matrix.shape[0]

    if arguments['--mutfile']:
        with open(arguments['--mutfile']) as f2:
            mutation_names = [l.strip() for l in f2.readlines()]
            if len(mutation_names) != mutations:
                raise Exception(
                    "Mutation names number in file does not match mutation number in data!",
                    len(mutation_names), mutations)
    else:
        mutation_names = [i + 1 for i in range(mutations)]

    if k == mutations:
        raise Exception("Cannot have same possibile losses as mutations")

    matrix = matrix.tolist()

    base_dir = "results" + datetime.now().strftime("%Y%m%d%H%M%S")

    if runs:
        runs_data = []
        for r, ptcl in enumerate(runs):
            print("=== Run number %d ===" % r)
            run_dir = base_dir + "/p%d_i%d" % (ptcl, iterations)
            if not os.path.exists(run_dir):
                os.makedirs(run_dir)
            data, helper = pso.init(ptcl, iterations, matrix, mutations,
                                    mutation_names, cells, alpha, beta, k, c1,
                                    c2, seed)
            data.summary(helper, run_dir)
            runs_data.append(data)

        Data.runs_summary(runs, runs_data, base_dir)

    else:
        run_dir = base_dir + "/p%d_i%d" % (particles, iterations)
        if not os.path.exists(run_dir):
            os.makedirs(run_dir)
        data, helper = pso.init(particles, iterations, matrix, mutations,
                                mutation_names, cells, alpha, beta, k, c1, c2,
                                seed)
        data.summary(helper, run_dir)