= GSoC 2010 = == Introduction == '''LEMON''' stands for '''L'''ibrary for '''E'''fficient '''M'''odeling and '''O'''ptimization in '''N'''etworks. It is a C++ template library providing efficient implementations of common data structures and algorithms with focus on combinatorial optimization tasks connected mainly with graphs and networks. LEMON is a member of the '''[http://www.coin-or.org/ COIN-OR initiative]''', a collection of [WikiPedia:Operations_Research OR] related [http://opensource.org/ open source] projects. You are free to use it in your commercial or non-commercial applications under very permissive [wiki:License license terms]. The project was launched by the [http://www.cs.elte.hu/egres/ Egerváry Research Group on Combinatorial Optimization (EGRES)] at the Operations Research Department of the Eötvös Loránd University, Budapest in 2003. Up to this point, the developers of the library work at the [http://www.elte.hu/en/ Eötvös Loránd University, Budapest] and at the [http://portal.bme.hu/langs/en/default.aspx Budapest University of Technology and Economics]. For more information about lemon, you may want to see the tutorial : [http://lemon.cs.elte.hu/pub/tutorial/] == Application Template == == Project Ideas == === PyLemon Module === ==== Background ==== LEMON was written in C++ language, because this is tho only widely used programming language nowadays, which gives us opportunity for optimizing run time and memory usage of complex data-structures and algorithms. However C++ is a rather complex language which require deep knowledge of programming, and it's usage is many times complicated. The implementation of a task can be much simpler in some modern (usually interpreted and dynamically linked) languages. Python is a prominent member of these languages, which besides that it can be very easily learned, exceedingly appropriate for quickly writing easily maintainable (?) codes. ==== The Task ==== Our goal is to create module which enables Python users to access LEMON services. The main idea is to use the effective data-structures and methods of LEMON (implemented in C++) to store graphs and maps, and to run algorithms, while creating a user friendly interface fitting to Python. You can find the pre-alpha version of this project in our repository: [http://lime.cs.elte.hu/~alpar/hg/pylemon/] ==== Application conditions ==== - knowledge of C++ language - knowledge of Python language or have a tendency to learn it - basic knowledge of graph theory - English language knowledge