Esempio n. 1
0
def main():
  rails_environment = sys.argv[1]
  connection = dbf.connect_to_database(rails_environment)
  connection.autocommit = True

  database_row_id=sys.argv[2]

  cur = connection.cursor()
  cur.execute ("SELECT * FROM metalics WHERE id=\'"+database_row_id+"\' LIMIT 1;")
  database_row = cur.fetchone()
  database_row_id = database_row[0]
  params = database_row[1]
  algorithm = database_row[2]
  solver = None

  if algorithm == "MD Solver":
    solver = md.MDSolver(params)
  elif algorithm =="Genetics":
    solver = gas.GeneticSolver(params)
  elif algorithm == "Simulated Annealing":
    solver = san.simulatedAnnealingNano(params)
  elif algorithm == "Basin Hopping":
    solver = sbh.randomSolver(params)

  if solver is None:
    print "ERROR: Invalid solver!"
  else:
    solver.cur = cur
    solver.database_row_id=database_row_id
    solver.setStatusDone("Calculating solution...")
    solution = solver.solve()
    solver.setSolution(solution)
    solver.setDone('y')
    print solution
def main():
  rails_environment = sys.argv[1]
  connection = dbf.connect_to_database(rails_environment)
  connection.autocommit = True

  database_row_id=sys.argv[2]

  cur = connection.cursor()
  cur.execute ("SELECT * FROM traveling_salesmen WHERE id=\'"+database_row_id+"\' LIMIT 1;")
  database_row = cur.fetchone()
  database_row_id = database_row[0]
  params = database_row[3]
  algorithm = database_row[4] 
  remove_overlaps=database_row[10]

  if algorithm =="Brute Force (n!)":
    solver = bft.BFTS2(params)

  if algorithm =="Ant Total Distance (n^2)":
    solver = atd.AntTotalDistanceSolver(params)

  if algorithm =="Random (n)":
    solver = loe.LineOverlapEliminatorTravelingSalesmanSolver(params)

  if algorithm =="Gravity (n^2)":
    solver = gts.GravitationalTravelingSalesmanSolver(params)

  #Change this to Wheel Dijkstra and the other one to just Dijkstra
  if algorithm =="Wheel Dijkstra (n^3)":
    solver =dts.DijkstraSolver(params)
    
  if algorithm =="Fast Dijkstra (n^2)":
    solver = dts2.DijkstraTravelingSalesmanSolver(params)

  if algorithm =="Annealing (Dijkstra start)":
    solver = sas.SimulatedAnnealingSalesmanSolver(params)
    solver.enforce_random_start = False

  if algorithm =="Annealing (Random start)":
    solver = sas.SimulatedAnnealingSalesmanSolver(params)
    solver.enforce_random_start = True

  solver.REMOVE_LINE_CROSSES=remove_overlaps

  if solver is None:
    print "ERROR: Invalid solver!"
  else:
    solver.cur = cur
    solver.database_row_id=database_row_id
    solver.setStatusDone("Calculating solution...")
    solution =solver.solve()
    solver.setSolution(solution)
    solver.setDone('y')
    print solution
def main():
  rails_environment = sys.argv[1]
  connection = dbf.connect_to_database(rails_environment)
  connection.autocommit = True

  database_row_id=sys.argv[2]

  cur = connection.cursor()
  cur.execute ("SELECT * FROM proteins WHERE id=\'"+database_row_id+"\' LIMIT 1;")
  database_row = cur.fetchone()
  database_row_id = database_row[0]
  params = database_row[3]
  algorithm = database_row[4]
  solver = None

  if algorithm == "Alpha Beta":
    solver = ab.alpha_beta(params)

  if algorithm =="Slithering Snake":
    solver = ss.SlitheringSnakeSolver(params)

  if algorithm == "Alpha Beta 3D AI":
    solver = ab_3d_ai.alpha_beta_ai_3d(params)

  if algorithm == "Alpha Beta 3D":
    solver = ab3d.alpha_beta_3d(params)

  if solver is None:
    print "ERROR: Invalid solver!"
  else:
    solver.cur = cur
    solver.database_row_id=database_row_id
    solver.setStatusDone("Calculating solution...")
    solution =solver.solve()
    solver.setSolution(solution)
    solver.setDone('y')
    print solution