This comes up often enough that we ought to add a note about it to the
ideas page.

Aaron Meurer

On Mon, Mar 18, 2013 at 1:59 PM, Brian Granger <elliso...@gmail.com> wrote:
> A number of people have asked about graph theory in sympy in the past.
>  Our feeling is that with the high quality of NetworkX, it doesn't
> make sense to reinvent graph theory in sympy.  Maybe talk to the
> NetworkX folks about doing a GSoC with them?
>
> On Mon, Mar 18, 2013 at 2:06 AM, Rajat Kapoor <rajat100...@gmail.com> wrote:
>> 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,girth of 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.
>>
>>
>
>
>
> --
> Brian E. Granger
> Cal Poly State University, San Luis Obispo
> bgran...@calpoly.edu and elliso...@gmail.com
>
> --
> 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.
>
>

-- 
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