First working version
Fixed a bug in `coverSwitchWithVM`, where the flow amount in `amount` may go wrong
Handled the case where alpha = 0.8, flows = [0.6, 0.6] → two vnf's will be deployed, while they should both be pushed up for better matching. Enhanced the bin-packing algorithm by using the first-fit heuristic, and added 'Number of VMs' in the report.
Use recursive greedy method to find the best host to deploy VMs
Added visualization using pydot
Hide the redundant "vm" display on flows. Added a newline between flow name and flow amount
Some clean-ups for refactoring and extracting test cases
Added traffic calculation, better code reusability for TestCase
Fixed a bug that causes crashes when a testcase is run multiple times. Refactored the Solver class to be a base class for inheritance. Implemented another two Solvers for comparison
Renamed Node to TreeNode for better comprehension, added pngOutputDir option to TestCase.run
Merge remote-tracking branch 'origin/master'
Added lib/*.py, main.py