Optimizing weights of Open Shortest Path First (OSPF): Algorithms, Techniques, and Methods