*About me* 

Hi, my name is Rajat Kapoor and I'm currently pursuing Engg. in Electrical 
and Electronics along with M.S. in Mathematics in BITS Pilani Goa. 

I'm from India, and have sheer interest in computer programming as well as 
Mathematics. Few of my favorite areas in Mathematics include Optimization 
Techniques and Graph Theory

*Contact*: rajat100...@gmail.com , rajat100493(skype), rajatkapoor(github)
 *Programming Skills* 

I've done coding in several high-level languages (C, C++,Java, C#, Python). 
My most preferred among all these is C#, mostly because of the powerful IDE 
options available but when it comes to cross platform development, I prefer 
Python because of its simplicity. I have completed a few intermediate level 
virtual courses in Python at college and have had guidance from a helpful 
lot of seniors with regard to a few informal projects in python. Apart from 
this I have amateur programming skills in web technologies including HTML, 
CSS, XML, PHP. Other areas of interest include Image Processing(using 
SimpleCV and OpenCV). I also have a very basic knowledge of GUI based 
programming in Java as well as python(using PyQt and wxWidgets). I have a 
negligible experience with git but I've learnt the concept well and have 
started using it lately.
 *Project Idea:* 

Becasue of my avid interest in the above mentioned areas I propose the idea 
of working on ONE of the following projects, which seems viable as well as 
pretty apt to be merged into sympy

   - 
   
   Addition of a new Optimization module 
   
 OR

   - 
   
   Addition of Graph Theory Module
   
 Though my peak interest is in developing the above mentioned modules, but 
due to its strong dependencies on the matrices module, I'll have to add 
some more functionality to the matrices module.

*Optimization Module:*

Features of the optimization module:

   - 
   
   Solving to linear programming problems from the given matrix or 
   polynomial input: Simplex algorithms along with a few variations(M-method, 
   Two Phase, Dual Simplex, and Generalised Simplex methods) will be used to 
   solve such problems
   - 
   
   Recognition of special cases(degeneracy, alternative optima, 
   unboundedness, infeasability)
   - 
   
   Transformation into dual problems: using primal dual relations
   - 
   
   Post optimal analysis: how feasibility and optimality are affected
   - 
   
   Transportation model solving: Starting solution to be obtained via 
   northwest corner method/ least cost method/vogel approximation method then 
   proceeding towards optimality using simplex iterations
   - 
   
   Assignment model solving: using Hungarian method.
   - 
   
   Any other ideas relating to the optimization field will also be added
   
 *Graph Theory Module(which i personally prefer more):*

Input of graphs will be taken in form of adjacency list/adjacency matrix/ 
incidence matrix. Interconversion between these three forms will be 
provided.This module will initially aim to provide the following 
functionality:

   - 
   
   Manipulation with degree of vertices, including detection of cut 
   vertices, formation of line graphs, finding closure, eccentricity,girthof 
   a graph
   - 
   
   Simple graph operations like join, subtract, union, etc will be added
   - 
   
   Isomorphic graph detection will be implemented, by using some of the 
   functions in the already existing matrices module. Extra functions required 
   will be added to the matrices module itself.
   - 
   
   Functionality relating to the regularity as well as planarity(Tarjan's 
   algorithm) of graphs will also be added.
   - 
   
   Cycles: number of cycles and the cycles itself will be found out. 
   Detection of cycles in the graph will be done using Tarjan's algorithm or 
   any other algorithm that can be implemented with ease.
   - 
   
   Trees: all functions regarding no of nodes, root node, nodes at seperate 
   levels, etc. Trees will be recognized by cycle detection process. Minimum 
   spanning tree finding functionality will be added using Krusal's or 
   Prim's algorithm.
   - 
   
   Hamiltonian graphs: methods of detection will be implemented using 
   Dirac's, Ore's definition or Bondy-Chvátal theorem or by finding a cut 
   vertex.
   - 
   
   Eulerian graphs : Checking the “even-ness” of degree of all vertices. 
   Fleury algorothm (implemented using Tarjan's algorithm to detect 
   bridges) or Hierholzer's algorithm to find the eulerian cycle.
   - 
   
   Special classes of graphs viz. Complete graphs, bipartite graphs, 
   multipartite graphs and hypercubes will also be pre-defined
   
 I have a very clear idea on how to implement the ideas stated above. These 
functions will be first implemented for simple, undirected graphs and then 
will be extended to multigraphs, directed graphs in due course of time. 
Moreover, other suggested functionality will also be added.

*Main Question*: Please give me advice on which module do you think will be 
more useful for integrating with sympy, OPTIMIZATION or GRAPH THEORY. This 
would help me focus the efforts on the preferred module before the GSOC 
official dates so i can get a headstart.(I'll be working on graph theory 
module anyways, if you agree to add its functionality in sympy).

Although I prefer working on the above mentioned ideas,but I am open to 
working on your suggested ideas too due to my familiarity with sympy.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to