Compute minimum peak

1. apply pseudo code
2. create compute_map and node_mem in new method
Here b will be True if the last element of node_list is executable. I don't think we want that. I think it should be "if len(node_list) == 1". When we are processing the last element of all the nodes. This should be always executable.

The logic to generate all possible order seem good, but I don't think the logic to compute the current mem and min mem are good. For example, you never decrease current_mem. As you generate all order, it mean it is be the sum of all order. Also, you don't remove the memory from nodes that are freed after the node execution.