Hi all, My student proposal which I made with help of mentors Dr. Stefan van Zwam and Dr. Rudi Pendavingh. Your suggestions are welcome.
*Personal*: Jayant Apte [email protected] Drexel University, Philadelphia PA Timezone: ET *Background*: *What are your technical skills, education, experience, etc. Especially make sure to explain with what level of mathematics you are comfortable with and on what level you would like to program.* I am PhD student at Drexel University with research interests in the intersection of information theory, algorithms and combinatorics. I am being superwised by *Dr. John Walsh* <http://www.ece.drexel.edu/walsh/web/>. I have completed my MS with coursework involving information theory, algorithms and optimization. I learnt about several interesting matroid theory concepts from my advisor John Walsh and also from *Dr. Rakesh Vohra*<http://economics.sas.upenn.edu/faculty/rakesh-vohra> via a course titled Submodularity and Discrete Convexity at CIS Dept. of University of Pennsylvania. *Who are you? What makes you the best person to work on this particular project? Special motivation?* My work involves using matroids as abstraction of network codes and developing algorithms based on matroid theory to compute fundamental information theoretic limits on storage and transfer of information in a network. I use programming languages C/C++ extensively and have worked with parallel programming paradigms such as MPI, OpenMP, SSE, CUDA and p-threads. (In Fall 2013, I worked as teaching assistant for Parallel Computer Architecture course at Drexel University by *Dr. Naga Kandasamy*<http://www.ece.drexel.edu/kandasamy/>). Efficient implementation has been one of the themes of my work towards my PhD thesis. Additionally, I’m using matroid theory for designing algorithms related to my research which gives me natural motivation to explore computational aspects of matroid theory. *What platform and operating-system are you using on your computer? (Sage development is done best on Linux and OSX)* I currently use ubuntu. *Are you or have you been engaged in other open-source projects?* I'm working on the *Entropic vectors software project* at ASPITRG<http://www.ece.drexel.edu/walsh/aspitrg/home.html>. A part of it called *chmlib* which is implementation of polyhedral projection algorithm Convex Hull Method was recently released. It uses FLINT library for rational arithmetic and qsopt for rational LP solving. I'm still in the process of writing documentation and adding some new features. The tarball can be found here: My Homepage<https://sites.google.com/site/jayantapteshomepage/> *Do you code on your own pet projects?* One of my pet projects was to implement sets as bitwise data structures and implement set operations as logical AND, OR etc. The tarball can be found here: My Homepage <https://sites.google.com/site/jayantapteshomepage/> *Are you a Sage user, how long do you know Sage?* I started using sage to learn group theory one and half year ago. Since then I have been using it as a learning/experimentation tool. *Project:* Combinatorics - Matroid Theory *Title*: Efficient implementation of matroid class membership checks, class-specific approaches for enumeration of matroids belonging to specific class and matroid visualization *What is your personal involvement or relationship with your proposed project?* I will be involved as a programmer *Details**:* The basic procedures to be implemented(first there will be a review of existing procedures, possibly profiling to find bottlenecks) will be as follows: 1. Matroid class membership checks: This would involve profiling of existing procedures for class membership checks and implementing new procedures for classes not supported so far *Deliverable*: At least 2 new class membership checks(GF2 and GF3 first, others will be a nice bonus) 2. Matroid extension: Profiling current procedures and exploring possibility of simplifying extension process for specific classes of matroids *Deliverable*: Specialized extension for at least 2 classes of matroids 3. Visualization of matroids: One of the softwares that already has matroid visualization is Oid. However, it is written in Java. The low hanging fruit here will be to port their code. *Deliverable*: Procedure to display geometric representation given a matrix representation of matroid (potentially other oracles as well) 4. A network coding supplement: Given a small network(basically a directed acyclic graph with a set of sources and subsets of it being demanded by various sink nodes in the network) find matroids that form optimal codes. Connectivity of matroids can be tied to optimality of codes. Essentially, this is matroid enumeration subject to network constraints. (Again, I have C code for testing a matroid rank vector for constraint satisfaction(These are equality constraints stating r(S1)=r(S2) ) for some subsets S1,S2 of ground set) *Deliverable*: Implement atleast scalar code functionality. *Schedule*: 1. Now--19th May: Background research: Learning Cython, explore potential options for porting Oid's Java code. Reading up on existing procedures to understand details of implementation 2. 19th May – 7th June: Class membership checks. Parallely work on visualization Ideas. 3. 8th June – 23rd June: Class-specific extension. Parallely work on visualization Ideas. 4. 24th June – 27th June: While this is midterm evaluation period, it can be used as buffer for finishing up on leftovers 5. 28th June – 5th July: Travel to International Symposium on Information Theory (If paper gets accepted) 6. 6th July – 23rd July: Work on visualization ideas developed already. 7. 23rd July – 11th August: Work on Network Coding supplement. Will basicallly involve using as much as possible existing C code. 8. 11th August-- 18th August: Pencils down, code scrubbing *Risk Management*: It is possible that task 4 might become computationally burdensome. If it is not looking very good and there is time left, I would rather use this period to enhance tasks 1,2,3 above. e.g. membership checks/extension for extra classes of matroids. -- You received this message because you are subscribed to the Google Groups "sage-gsoc" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-gsoc. For more options, visit https://groups.google.com/d/optout.
