Ejemplo n.º 1
0
 def test_save_load_json(self):
     write_json(self.output_machine, "sample_graph.json")
     parsed_machine = read_json("sample_graph.json")
     dict1 = json.load(open("sample_graph.json", 'r'))
     dict2 = write_json(parsed_machine, "sample_graph.json")
     self.assertTrue(dicts_are_equal(dict1, dict2))
Ejemplo n.º 2
0
 def test_save_json(self):
     write_json(self.output_machine, "sample_graph.json")
Ejemplo n.º 3
0
def run_python():
    json = request.get_json()
    print(json)
    output_machine = read_json(json_dict=json)
    maximize_output(output_machine)
    return write_json(output_machine)
Ejemplo n.º 4
0
def run_python():
    json = request.get_json()
    print(json)
    ExternalSupplier.reset_instance_tracker()
    flour = Product(name="flour", units='kg')
    water = Product(name="water", units='liter')
    cream = Product(name="cream", units='kg')
    dough = Product(name="dough",
                    units='kg',
                    sub_products_quantities={
                        flour: 0.4,
                        water: 0.6
                    })
    filling = Product(name="filling",
                      units='liter',
                      sub_products_quantities={
                          cream: 0.4,
                          flour: 0.3
                      })
    pie = Product(name="pie",
                  units='unit',
                  sub_products_quantities={
                      dough: 0.4,
                      filling: 0.4
                  })
    dough_maker1 = Machine(name="Dough maker 1",
                           min_batch_time=200,
                           max_batch_time=1000,
                           batch_time=500,
                           batch_size=50,
                           output_product=dough)
    dough_maker2 = Machine(name="Dough maker 2",
                           min_batch_time=200,
                           max_batch_time=1000,
                           batch_time=500,
                           batch_size=50,
                           output_product=dough)
    filling_maker1 = Machine(name="Filling maker 1",
                             min_batch_time=100,
                             max_batch_time=500.0,
                             batch_time=150,
                             batch_size=20,
                             output_product=filling)
    filling_maker2 = Machine(name="Filling maker 2",
                             min_batch_time=100,
                             max_batch_time=500.0,
                             batch_time=150,
                             batch_size=20,
                             output_product=filling)
    filling_maker3 = Machine(name="Filling maker 3",
                             min_batch_time=100,
                             max_batch_time=500.0,
                             batch_time=150,
                             batch_size=20,
                             output_product=filling)
    output_machine = Machine(name="Pie maker",
                             min_batch_time=10,
                             max_batch_time=300,
                             batch_time=50,
                             batch_size=30,
                             output_product=pie,
                             suppliers=[
                                 dough_maker1, dough_maker2, filling_maker1,
                                 filling_maker2, filling_maker3
                             ],
                             delays=[22.3, 20.1, 13.2, 11.1, 15.3])

    # maximum_output = ale_optimizer.maximize_output(output_machine)
    maximum_output = ale_optimizer.optimize_topology(output_machine, 1.55)
    print("\nMaximum production is 1 pie every {:.2f} seconds".format(
        1 / maximum_output))
    write_json(output_machine, filename="../Optimized_plant2.json")

    return write_json(output_machine)
Ejemplo n.º 5
0
                  dough: 0.5,
                  filling: 0.2
              })
dough_maker1 = Machine(name="Dough maker 1",
                       min_batch_time=200,
                       max_batch_time=1000,
                       batch_time=500,
                       batch_size=50,
                       output_product=dough)
filling_maker1 = Machine(name="Filling maker 1",
                         min_batch_time=100,
                         max_batch_time=500.0,
                         batch_time=150,
                         batch_size=20,
                         output_product=filling)
output_machine = Machine(name="Pie maker",
                         min_batch_time=10,
                         max_batch_time=300,
                         batch_time=50,
                         batch_size=30,
                         output_product=pie,
                         suppliers=[dough_maker1, filling_maker1],
                         delays=[22.3, 20.1])

# maximum_output = ale_optimizer.maximize_output(output_machine)
# maximum_output = ale_optimizer.optimize_topology(output_machine, 1.55)
# maximum_output = ale_optimizer.maximize_output(output_machine)
output_machine.set_supplier_rates(0.2)
write_json(output_machine, "Optimized_plant.json")
# print("\nMaximum production is {} pies every second".format(maximum_output))