This section presents the projects on network programming, and mailing that I have compiled during my stay in Kiruna/Sweden from February until July 2007.

Some projects were originally designed as a small exercise. But, then I put more effort into them.

BombMaster SpaceBomber
WebScan Boten-Anna
AuroraAlert using Kiruna All-Sky camera
AMoDeus • Orchestrate your own fleet of robotic taxis!
VectorMail Quokka

No two people are more than six degrees apart.

AMoDeus • Orchestrate your own fleet of robotic taxis!

From January 2017 until December 2019, Claudio Ruch and I have worked on fleet managing algorithms at the IDSC of ETH Zürich. We developed the fleet simulation software AMoDeus which is hosted open source on github::amodeus-science.

The following publications are the result of our collaboration and the creativity and contributions of the students at ETH.

Learning to Operate a Fleet of Cars

Christian Fluri, Claudio Ruch, Julian Zilly, Jan Hakenberg and Emilio Frazzoli
Abstract: In a mobility-on-demand system, travel requests are handled by a fleet of shared vehicles in an on-demand fashion. An important factor that determines the operational efficiency and service level of such a mobility-on-demand system is its operational policy that assigns available vehicles to open passenger requests and relocates idle vehicles. Previously described operational policies are based on control theoretical approaches, most notably on receding horizon control. In this work, we employ reinforcement learning techniques to design an operational policy for a mobility-on-demand system. In particular, we propose a cascaded learning framework to reduce the number of state-action pairs which allows for more efficient learning. We train our model using the AMoDeus simulation environment and real taxi trip travel data from the city of San Francisco. Finally, we demonstrate that our reinforcement learning based operational policy for mobility-on-demand systems outperforms state-of the art fleet operational policies that are based on conventional control theoretical approaches.

The +1 Method • Model-Free Adaptive Repositioning Policies for Robotic Multi-Agent Systems

Claudio Ruch, Joel Gächter, Jan Hakenberg and Emilio Frazzoli
Abstract: Robotic multi-agent systems can efficiently handle spatially distributed tasks in dynamic environments. Problem instances of particular interest and generality are the dynamic vehicle routing problem and the dynamic traveling repairman problem. Operational policies for robotic fleets solving these two problems take decisions in an online setting with continuously arriving dynamic demands to optimize system time and efficiency. They can be classified along several lines. First, some require a model of the demand, e.g., based on historical information, while others work model-free. Second, they are designed for different operating conditions from light to heavy system load. Third, they work in a time-invariant or time-varying setting. We present a novel class of model-free operational policies for time-varying demands, with performance independent of the load factor and applicable to any number of dimensions, a combination of properties not achieved by any other operational policy in the literature. The underlying principle of the introduced policies is to send available robots to recent realizations of the stochastic process that generates service requests. In simple terms, the strategies rely on sending more than one robot for every service request arriving to the system. This leads to an advantage in scenarios where demand is non-uniformly distributed and correlated in space an time. We provide theoretical stability and performance guarantees for both the time-invariant and the time-varying cases as well as for correlated demand. We verify our theoretical results numerically. Finally, we apply our operational policy to the problem of mobility-on-demand fleet operation and demonstrate that it outperforms model-based and complex algorithms across all load ranges despite of its simplicity.

The Impact of Fleet Coordination on Taxi Operations

Claudio Ruch, Sebastian Hörl, Jan Hakenberg and Emilio Frazzoli
Abstract: On-demand mobility has existed for more than 100 years in the form of taxi systems. Comparatively recent, ride-hailing schemes have also grown to a significant mode share. Most types of such one-way mobility-on-demand systems allow drivers to take independent decisions. These systems are not or only partially coordinated. In a different operating mode, all decisions are coordinated by the operator, allowing for the optimization of certain metrics. Such a coordinated operation is also implied if human-driven vehicles are replaced by self-driving cars. This work quantifies the service quality and efficiency improvements resulting from the coordination of taxi fleets. Results based on high-fidelity transportation simulations and data sets of existing taxi systems are presented for the cities of San Francisco, Chicago and Zurich. They show that fleet coordination can strongly improve efficiency and service level of existing systems. Depending on the operator’s and the city’s preferences, empty vehicle miles driven and fleet sizes could be substantially reduced or the wait times could be reduced while maintaining the current fleet sizes. The study provides clear evidence that full fleet coordination should be implemented in existing mobility-on-demand systems, even before the availability of self-driving cars.
No man is good enough
to govern another man
without the other's consent.
Abraham Lincoln

VectorMail Quokka

content of csv-file

one of the mails

To keep my friends informed, on what is going on in the north of Sweden, I made a program that helps me sending personalized newsletters. Marcel Koch reviewed the code and suggested modifications, that are implemented in the latest version VectorMail Quokka, named after the endangered animals that live on Rottnest Island, an islet close to Perth/Australia.

The input to the program are

We summarize the available commands for mail.tex:

\title{ X }                   subject X of email
\\                            enforces line feed
\space                        insert space character
\bigskip                      separator between two paragraphs
\to{ X }{ Y }                 sends content Y to a selection of people X (see example above!)
\appendix{ X }                attaches file X
#1                            is a placeholder for an entry from the csv-table
#2                            the digit defines the column (also use #3,#4,...,#9)
\#                            produces the character #
\emptyset{ X }{ Y }{ Z }      if X produces any output parse Y otherwise parse Z

The file mail.tex is parsed for each recipient address that is listed in the file vector.csv.

To send the first email via the account specified in, the program prompts for the password to the account. You do not need to enter the password again, until you restart the program.

Program, source, and example (Java 1.6) * 430 kB
* a helpful reference for sending emails in Java by Sudhir Ancha.
Im Leben lernt der Mensch zuerst gehen und sprechen.
Später lernt er dann, still zu sitzen und den Mund zu halten.
Marcel Pagnol