Luigi Poderico


Software and Operational Research


Professional activity

A first listing of my jobs can be the follow:

studies on operational research - where the greater part of the result is of theoretical type;
applications of the operational research - where the final result was been a software;
others activities - where the operational research does not enters at all.

Where it is possible I will supply a link to greater deepens.

Studies on operations research

Optimal Layout of convex polygons

It's the title of my bachelor thesis in Computer Sciences, achieved at the Pisa University with rank 109/110; surveys Prof. G.Gallo, Prof. M.Pappalardo. The thesis draft of the minimization of the surface necessary to contain a family of convex polygons.

Here you can download the Italian version.

Farm Planning Method

Collaboration with the Department of Agrarian Economics of the Pisa University for the implementation of a Montecarlo method for the determination of a linear programming problem's suboptimum solutions. The turning out software was used to simulate various economic scenarios of agricultural companies.

You can download and use the c code, the user manual and the tutorial without warranty.

Optimization of guillotine cuts

The problem was birth from a real existing requirement in some printing offices, specialized in the press of labels (adhesive, for the bottles of wine, etc.). Generally one of this printing office has more orders for the production of labels, varying for shape and number. These are printed out on a given number of sheets that are then collected into a stack and worked with "guillotines" that carry out cuts parallel to sides of the sheets and always from part to part. The problem consists to determine the disposition of the labels on the sheet in order to minimize the number of sheets necessary to satisfy the demands. The things are complicated to some technological constraints to hold in consideration, as an example, the preference to having closer the labels of equal colors, or to hold on the edges of the sheet the labels gilded or silver-plated.

Here you can download a working paper.

Two-dimensional cutting stock

The two dimensional cutting stock problem is very similar to the optimization of guillotine cuts, where the sheets are cut singularly instead of all together. This is a typical problem of glassmakers that obtain the panels of glasses to apply to doors and windows from larger glass plates.

You can download a set of benchmark test problem at SICUP web pages.

One-dimensional cutting stock

The problem is a particular instance of two dimensional cutting stock problem: the possible cuts can not be them self orthogonal but only parallels. An example of application of one-dimensional cutting stock can be found in the industries that work the aluminum in order to obtain doors and windows. These, in fact, cut from long aluminum bars the pieces necessary to satisfy their production.

Software for operational research

Bus Drivers Scheduling Algorithm

As employee of MAIOR s.r.l., farm in Lucca, maintenance of a highly sophisticated c++ software of optimization for the determination of the bus drivers shifts. This software solve a set partitioning with a column generation technique.

Also it was developed a module for simplify the customization of the software in the various transportation company, that have different roles for the shifts. This module has a formal requirement specification in prolog and an object oriented design in Boock notation. The software is written in c++ and actually run on Macintosh, Windows and Linux systems.

Determination of "basic ration"

Collaboration with the Department of Agrarian Economics of the Pisa University, to develop an auxiliary software to modeling a class of linear programming problem solving the classic diet problem. The "basic ration" is referred to the basic ration of alimentation that guarantee the minimal bring of nutrients for the cows of a farm.

The software has a graphical interface in Delphi 4 and lp_solve as linear programming solver.

Set Partitioning

Collaboration with the Department of Computer Science of the Pisa University, group of operational research, to write a c++ library that solve the set partitioning problem with constraints, using the column generation procedure. We have exploited the use of bundle algorithm and CPLEXtm as solvers for lagrangean relaxation of the original problem.


Collaboration with the Electronic and Information Engineering Department of the Perugia University and Department of Computer Science of the Pisa University, group of operational research, to design and implement a c++ code solving the linear relaxation of one dimensional cutting stock problem. The solver implement a special case of simplex over hypergraph, and run on both Windows and Linux systems.

Non Differentiable Optimization

Collaboration with the Department of Computer Science of the Pisa University, group of operational research, to extend a c++ library that minimize convex non differentiable function. The extension involves disaggregate functions and the introduction of an abstraction layer for linear subproblem solver, such as CPLEXtm , OSLtm, and Mosektm. For more information on non differentiable optimization and bundle algorithms, please refers to Prof. Frangioni's home page.

Unit commitment

Within a CNR project and in collaboration with the Department of Computer Science of the Pisa University, group of operational research, object oriented design and c++ develop of a unit commitment solver for hydro-thermal problems. The main characteristics are:

The resulting code is written in c++ and run under both Windows and Linux systems.


As employee of MBI s.r.l., leadership of the development team that has built the PowerSchedO software suite. Design, code documentation and code engineering of the entire system in UML using Enterprise Architect tool. The system solve the Unit Commitment problem and the bidding problem in the day ahead electricity market. It consist of three modules: a scalable server for the algorithms built in ansi c++ with an interface layer in python; a data base representing the data models running on Oracle or Postgres; a graphical user interface built in Visual Basic .NET.

An instance generator ucig is also availables on this site.


Multi-criteria analysis tool for optimal routing of international telephonic traffic. This is a typical problem of telephonic providers that haven't own network to satisfy completely the international traffic, buying from international carriers the required capacity. More information on the product at BestPrice page. The graphical interface was written in wxPython, the model in pulp and glpk as integer linear programming solver.

Others activities

Bus Drivers Scheduling Interface

Design and implementation of a complex software for Macintosh for the complete management of bus drivers scheduling, including a graphical user interface for shifts handling. That application was also ported under Windows.

The software has a textual requirement specification and an object oriented design with Booch method. The Macintosh release provide a multi-platform core written in ansi c++ with a PowerPlant graphical interface. The graphical interface was then ported under Windows using MFC.

Bus Drivers Rostering Problem

Porting from Macintosh to Windows of a complex software for the solution and management of bus drivers rosters. For that problem, was also designed and implemented an Oracle data base that support the problem model.

The Macintosh software is written in c++ and MacApp; it's ported under Windows using MFC.

Quota – simple versioning system for mechanical components

Easy Windows application for the versioning of mechanical components in a multi users environment. Using a simple and effective users granting right system, the application is able to trace all the history of a piece, logging who and when someone made a modification, including also state modification (design, prototype, production, ...).

The software is written in c++ with MFC and use Oracle as data base.

MDF – A Multicast Delivery Framework

As employee of MBI s.r.l., leadership of the development team that has built the MDF. MDF is a client -server framework that allows the multicast file transmission from one server to more clients. The server provides a SOAP interface that make easy the integration and the deployment. The client is provided as a c++ class library that make easy the integration in many environments as PC, hand-held, STB, etc. MDF is completely written in C++ granting optimal performance in term of CPU and memory usage.

MAD_FCL – The Tampere University flute implementation

I'm one of the contributors of mad_fcl. I have worked on make more robust the application; suggest some features; discovering and solving some defects; provide an automatic unit test framework. By definition “FLUTE is a protocol for the unidirectional delivery of files over the Internet, which is particularly suited to multicast networks. The specification builds on Asynchronous Layered Coding (ALC), the base protocol designed for massively scalable multicast distribution.”