Software

Prof. Dr. Thomas Weise (汤卫思) is a proponent of open source software with three decades of experience in programming, using languages ranging from Python, Java, C, C++, Turbo Pascal, Delphi, Visual Basic, to Assembler. Most of the software and tools that he develops are free open source projects.

moptipy: Metaheuristic Optimization in Python

moptipy is a library with implementations of metaheuristic optimization methods in Python that also offers an environment for replicable experiments. Metaheuristic optimization algorithms are methods for solving hard problems. moptipy provides an API, several algorithm implementations, as well as experiment execution and evaluation facilities for metaheuristics. Here you can find a small presentation outlining some of the concepts of the system. moptipy is structured with performance, ease-of-use, and generality in mind, but also based on an educational and research perspective. It is therefore (hopefully) suitable for practical industrial applications, scientific research, and for students who are just entering the field of metaheuristic optimization.

moptipyapps: Applications of Moptipy

moptipyapps is a Python library that implements algorithms, benchmark instances, search spaces, encodings, and other tools for various important problems from the domain of optimization and operations research based on the moptipy package. moptipyapps implements tools for the Traveling Salesperson Problem (TSP), the Quadratic Assignment Problem (QAP), two-dimensional bin packing, the Traveling Tournament Problem (TTP), and production scheduling / material flow control tasks.

texgit: Accessing Git Repositories from LaTeX

texgit is a preprocessor for accessing files from git repositories from LaTeX. It has two components, namely the Python package texgit and the LaTeX style texgit. Together, they enable you to automatically download git repositories, include files from these repositories in your LaTeX documents or even execute them and capture their outputs. The process is similar to BibTeX: The requests for repositories and files are collected from the LaTeX document during the first LaTeX run. This is done by the texgit LaTeX package (which stores the requests into the aux file). During this first LaTeX run, the contents of the requested files are returned as empty strings. Then the texgit Python program is executed, which downloads the repositories, executes programs in them if requested, and collects the files and outputs locally. During the second LaTeX run, these contents are available and can be included in the LaTeX document in any way you like.

pycommons: Some Shared Python Functionality

In the pycommons project, several Python functions that are shared between my Python projects are provided. These include, for example, a unified build process, used by moptipy, moptipyapps, the texgit Python package, and pycommons itself. There also are some rudimentary statistical functions, caches, math routines, string handling routines, a Path object, and so on. In short, this is my tool belt for Python projects.

bookbase

These are the shared files in my book and teaching material building projects. The files, bibliography, and scripts in this repository are used by several of my writing and teaching projects, including Programming with Python, Databases, and Talks. The repository offers LaTeX styles for books and slides (with background photos taken from our university), glossary support, my personal bibliography, scripts for compiling books and slides to PDF and to minify those PDFs, listings, support for including files from other git repositories (via texgit), support for Python code and virtual environments, and many more utilities. These are all designed particularly as foundation for my personal projects, tailored to our uni, and so on. However, there might be bits and pieces of code useful for others in here as well.