Project Topic: 2D Oscillators for ONNs to solve CSPs
Team Members: Sai Gaurav, Vishwas Bharti
Mentor: Shashwat Shukla
Objective: Use 2D n- Oscillator Neural Network as an extension to 1D n-ONN, with the required Cost function to solve Constraint Satisfactory Problems like the Travelling Salesman (TSP).
Implementation:
As a part of 1st week, we had read the paper “n-Oscillator Neural Network based Efficient Cost Function for n-city Traveling Salesman Problem” by Shruti et al. A synopsis of this paper is as follows:
CSPs like the Travelling Salesman are NP hard problems, difficult to be solved by digital computers/algos. Alternatively, Neural Networks(NNs) with appropriate cost function can be made to solve such problems with parallel processing. Many other papers also suggested this idea, and designed appropriate NNs with the required cost function to be minimised. One interesting idea was to map it to oscillator units instead of usual neural activators and encode the problem in the phases, as implemented in one such paper with oscillators. The Cost function has been designed to map the optimal solution/route on to a unit circle with each city mapped to each root of unity, keeping in mind the invalid routes, taken care of by appropriate distance and syntactic constraints. The cost function is minimzed using Gradient Descent. To avoid getting stuck in a local minima, simulated annealing is used wherein stochastic noise that decayed with time has been added.
The complexity has further been reduced to the order of ‘n’ as implemented in this paper. Most of the constraints were similar i.e. to encode the problem onto the roots of unity onto a unit circle, with similar syntactic constraints, with a slight modification on the distance one wherein the weight was decided based on a gaussian function with decreasing variance, rather than absolute difference in unity roots as implemented in previous paper. A comparison has been made between both the implementations on the factors like computation, time of convergence, search space, hardware requirements, etc depticting the latter to be better in these aspects.
The code based on this implementation was also shared with us, which further aided in understanding of the paper. We did run the code and here are some of the results:
Further Plan: Dynamics of 2D Oscillators shall be thought of, after discussing with the Mentor and its implementation. The previous code shall also be rewritten in Python for future use in our project.