Skip to content

Nada-Khafagy/optimization_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

optimization_project

Optimization of the merging of vehicles on ramps into highways We assume one lane on the highway The intial scenario to optimize is generated stochasticly The following optimization algorithims are tested:

  • Simulated annealing
  • Genetic algorithim
  • Discrete particle swarm
  • Return cost - binary firefly algorithm

Installation instructions

  • go to optimization_project\code
  • run main.py

we have implemented platooning and substituted in the objective function enjoy looking at the vehicles on the map :)

Team members

Name ID GUC-mail personal E-mail
Dina Mohamed 49-18602 dina.mohamed dina67724@gmail.com
Marwa Lotfy 49-18054 marwa.hassan lotfymarwa410@gmail.com
Ahmed Mohamed Sleem 49-18230 ahmed.sleem ahmedsleem.mail@gmail.com
Nada Tamer 49-13614 nada.abdelhay nadatameer@outlook.com

To do list

  • change how ramp looks in visualtion
  • make visualzation start from zero and start platooning from decsision point
  • use throuhput and change how we do loop the cars

code of conduct

  • please don't use 'i' or 'j' or one letter as names for variables
  • function names should be verbs and as descriptive as possible
  • write the code in an abstract way, from the bigger picture to the smaller picture
  • write polite code as uncle bob said
  • add comments plz
  • break the code into smaller reusable moduls
  • avoid hard codded magic numbers
  • use try-except blocks in error handling
  • try to write in the documentation a lil bit just so people understand plz
  • DON'T REPEAT CODE
  • be as descriptive as possible! i swear if i see one more 'i' i will kill someone.
  • The No surprise principle
  • the open close principle.
  • take care of side effect functions (a function that returns a value should not have a side effect).
  • use exceptions, inside functions don't write anything except the try block.