Next Article in Journal
Unification of Quantum and Gravity by Non Classical Information Entropy Space
Next Article in Special Issue
Combination Synchronization of Three Identical or Different Nonlinear Complex Hyperchaotic Systems
Previous Article in Journal
Objective Bayesianism and the Maximum Entropy Principle
Previous Article in Special Issue
Information Entropy As a Basic Building Block of Complexity Theory
Article Menu

Export Article

Entropy 2013, 15(9), 3592-3601; doi:10.3390/e15093592

Article
A Discrete Meta-Control Procedure for Approximating Solutions to Binary Programs
Department of Industrial and Systems Engineering, University of Washington, Seattle, WA 98195, USA
*
Author to whom correspondence should be addressed.
Received: 15 June 2013; in revised form: 30 August 2013 / Accepted: 30 August 2013 / Published: 4 September 2013

Abstract

: Large-scale binary integer programs occur frequently in many real-world applications. For some binary integer problems, finding an optimal solution or even a feasible solution is computationally expensive. In this paper, we develop a discrete meta-control procedure to approximately solve large-scale binary integer programs efficiently. The key idea is to map the vector of n binary decision variables into a scalar function defined over a time interval [ 0 , n ] and construct a linear quadratic tracking (LQT) problem that can be solved efficiently. We prove that an LQT formulation has an optimal binary solution, analogous to a classical bang-bang control in continuous time. Our LQT approach can provide advantages in reducing computation while generating a good approximate solution. Numerical examples are presented to demonstrate the usefulness of the proposed method.
Keywords:
large-scale binary integer programs; linear quadratic tracking; optimal control

1. Introduction

Many decision problems in economics and engineering can be formulated as binary integer programming (BIP) problems. These BIP problems are often easy to state but difficult to solve due to the fact that many of them are NP-hard [1], and even finding a feasible solution is considered NP-complete [2,3]. Because of their importance in formulating many practical problems, BIP algorithms have been widely studied. These algorithms can be classified into exact and approximate algorithms as follows [4]:
(1) Exact algorithms: The exact algorithms are guaranteed either to find an optimal solution or prove that the problem is infeasible, but they are usually computationally expensive. Major methods for BIP problems include branch and bound [5], branch-and-cut [6], branch-and-price [7], dynamic programming methods [8], and semidefinite relaxations [9].
(2) Approximate algorithms: The approximate algorithms are used to achieve efficient running time with a sacrifice in the quality of the solution found. Examples of well-known metaheuristics, as an approximate approach, are simulated annealing [10], annealing adaptive search [11], cross entropy [12], genetic algorithms [13] and nested partitions [14]. Moreover, many hybrid approaches that combine both the exact and approximate algorithms have been studied to exploit the benefits of each [15]. For additional references regarding large-scale BIP algorithms, see [1,16,17,18].
Another effective heuristic technique that transforms discrete optimization problems into problems falling in the control theory and information theory or signal processing domains has also been studied recently. In [19,20], circuit related techniques are used to transform unconstrained discrete quadratic programming problems and provide high quality suboptimal solutions. Our focus is on problems with linear objective functions, instead of quadratic, and linear equality constraints, instead of unconstrained.
In our previous work [21], we introduced an approach to approximating a BIP solution using continuous optimal control theory, which showed promise for large-scale problems. The key innovation to our optimal control approach is to map the vector of n binary decision variables into a scalar function defined over a time interval [ 0 , n ] and define a linear quadratic tracking (LQT) problem that can be solved efficiently. In this paper, we use the same mapping, but instead of solving the LQT problem in continuous time, we explore solving the LQT problem in discrete time, because the time index in our reformulation of the BIP represents the dimension of the problem, { 0 , 1 , , n } , and a discrete time approach more accurately represents the partial summing reformulation than the continuous approach. In addition, in our previous work, the transformation into a continuous LQT problem was based on a reduced set of constraints, and a least squares approach was used to estimate the error due to the constraint reduction. The algorithm iteratively solved the LQT problem and the least squares problem until convergence conditions were satisfied. In this paper, instead of iteratively solving the LQT problem based on a reduced set of constraints, we solve the LQT problem only once for the full state space. This approach improves the flow of information for convergence.
We have chosen a quadratic criterion for our approach because its formalism includes a measure of the residual entropy of the dynamics of the algorithm as it computes successive approximation to a solution. Because of the mapping used in our algorithm, the information measure is given by the inverse of the Riccati equation that we solve. That inverse of the solution of the Riccati equation is a Fisher information matrix of the algorithm as a dynamical system [22,23]. The information from the algorithm in the criterion determines the quality of the solution.
The computational complexity for solving the LQT problem is polynomial in the time horizon, the dimension of the state space and the number of control variables. In our LQT problem, the time horizon is n, the dimension of the state space is the number of constraints m, and the number of control variables is 1. Our meta-control approach solves the LQT problem to obtain an efficient approximate solution to the original BIP problem.
In Section 2, our approach is presented in detail, and numerical results are given in Section 3. In Section 4, we state the conclusions of this work.

2. Development of the Meta-Control Algorithm for BIP Problems

The original BIP problem is:
Problem 1.
min u j j = 0 , , n - 1 j = 0 n - 1 c ˜ j u j
s.t. j = 0 n - 1 a ˜ i j u j = b ˜ i i = 1 , , m
u j 0 , 1 j = 0 , , n - 1
where u j for j = 0 , , n - 1 are binary decision variables. We assume c ˜ j , a ˜ i j , and b ˜ i are real known values for i = 1 , , m and j = 0 , , n - 1 and there exists at least one feasible point.

2.1. Partial Summing Formulation

We start by defining partial summing variables as in [21] from the original BIP problem as
f 0 , j + 1 = f 0 , j + c ˜ j u j
f i , j + 1 = f i , j + a ˜ i j u j
for i = 1 , , m and j = 0 , , n - 1 , with initial conditions f 0 , 0 = f i , 0 = 0 .
For ease of notation, we create a new m + 1 × 1 vector x j = f 0 , j , f 1 , j , , f m , j T and the i t h element of x j is denoted x j ( i ) for i = 1 , , m + 1 and for j = 0 , , n . We also define the m + 1 × 1 vector a j = c ˜ j , a ˜ 1 j , , a ˜ m j T for j = 0 , , n - 1 , and the m + 1 × 1 vector b = 0 , b ˜ 1 , , b ˜ m T , where the i t h element of b is denoted b ( i ) for i = 1 , , m + 1 . We define Problem 2 as follows, with initial conditions x 0 as a vector of zeros:
Problem 2.
min u j j = 0 , , n - 1 x n ( 1 )
s.t. x j + 1 = x j + a j u j j = 0 , , n - 1
x 0 = 0
x n ( i ) = b ( i ) i = 2 , , m + 1
u j ( u j - 1 ) = 0 j = 0 , , n - 1
Proposition 1. 
Problem 2 exactly represents Problem 1.
The proof is straight-forward; the constraints ensure feasibility and the objective function is equivalent to Problem 1.

2.2. Construct the LQT Problem

We construct an LQT problem, Problem 3, by first defining an error term, as a measure of unsatisfied constraints, an ( m + 1 ) × 1 vector e j for j = 0 , , n , as
e j = x j - b
We develop the dynamics in terms of the measure e j , by combining Equation (10) with Equation (6), yielding
e j + 1 = e j + a j u j
and note that e 0 = - b , given initial conditions x 0 = 0 . The criterion is to minimize the measure of unsatisfied constraints using a terminal penalty for infeasibility and objective function value, which is given by
J ( u ) = 1 2 j = 0 n - 1 e j T Q j e j + 1 2 e n T F e n
We also relax constraint (9) with 0 u j 1 .
The parameters Q j and F are positive semi-definite and user-specified. The ( m + 1 ) × ( m + 1 ) matrix Q j is used to penalize the unsatisfied constraints. The ( m + 1 ) × ( m + 1 ) matrix F is used to penalize the terminating conditions and aid in minimizing the original objective function.
We now summarize our discrete LQT problem with the criterion in Equation (12) as follows:
Problem 3.
min u j j = 0 , , n - 1 J ( u ) = 1 2 j = 0 n - 1 e j T Q j e j + 1 2 e n T F e n
s.t. e j + 1 = e j + a j u j j = 0 , , n - 1
0 u j 1 j = 0 , , n - 1
e 0 = - b
It is known that solving Problem 3 directly is numerically unstable [24]. However, Theorem 1 suggests an algorithmic approach to solving Problem 3, by making a discrete analog to a bang-bang control with a switching function.
Theorem 1. 
Analogous to a bang-bang control in continuous time, Problem 3 has an optimal binary solution with u j { 0 , 1 } for discrete times j = 0 , 1 , , n - 1 with non-singular arcs.
Proof. 
We first construct the Hamiltonian function [24] as follows
H ( e j , λ j + 1 , u j ) = 1 2 e j T Q j e j + λ j + 1 T e j + a j u j
where λ j is the ( m + 1 ) × 1 costate vector, for j = 0 , , n - 1 , and it satisfies
λ j = λ j + 1 + Q j e j and λ n = F e n
Let e * , λ * and u * be the optimal solution, by the necessary conditions for the optimality [24], we have: H ( e j * , λ j + 1 * , u j * ) H ( e j * , λ j + 1 * , u j )
1 2 e j * T Q j e j * + λ j + 1 * T e j * + a j u j * 1 2 e j * T Q j e j * + λ j + 1 * T e j * + a j u j
λ j + 1 * T a j u j * λ j + 1 * T a j u j , u j [ 0 , 1 ]
Thus, we have
u j * = 1 if λ j + 1 * T a j < 0 [ 0 , 1 ] if λ j + 1 * T a j = 0 0 if λ j + 1 * T a j > 0
If λ j + 1 * T a j 0 , binary values for u j * are determined by Equation (20). When λ j + 1 * T a j = 0 , the arc is singular, and we may reintroduce constraint (9), u j ( 1 - u j ) = 0 , to force a binary solution.
To get an intuitive understanding of the singularity issue, suppose all Q j = 0 , and the element at row 1, column 1 of matrix F equals zero. Then Problem 3 reduces to minimize the infeasibility penalty term, 1 2 i = 1 m k = 0 n - 1 a ˜ i k u k - b ˜ i 2 F i . If this term equals zero, then e n = 0 , satisfying all of the original constraints (2), and λ n = 0 from Equation (18), and because Q j = 0 , all λ j = 0 . Then λ j + 1 * T a j = 0 for all j. However, if Q j and the first element of F have positive values, then λ j + 1 * T a j may be positive or negative and Equation (20) is useful. An auxiliary problem to determine values for Q j and F that resolve the singularity will be explored in future research.
To create an LQT problem that is practical to solve, we introduce a penalty term u j ( u j - 1 ) R j in the criterion, where R j is a Lagrangian multiplier associated with constraint (9):
Problem 4.
min u j j = 0 , , n - 1 1 2 j = 0 n - 1 e j T Q j e j + u j ( u j - 1 ) R j + 1 2 e n T F e n
s.t. e j + 1 = e j + a j u j j = 0 , , n - 1
e 0 = - b
The optimal control for Problem 4 u ^ j can be solved by the standard dynamic programming method [25] (see appendix for details). The computation associated with solving Problem 4 is O ( n m 3 ) . We then obtain an approximate binary solution to the original BIP problem as follows:
u j * = 0 for u ^ j < 0 . 5 1 for u ^ j 0 . 5
for j = 0 , 1 , , n - 1 .
Motivated by the successive overrelaxation method [24], we introduce a weighting factor ω to improve the stability of our proposed method. Rather than applying quantization at the final step as shown in Equation (24), we did quantization at each step and propagate the binary value u ¯ j during the dynamic programming procedure (see appendix for details). At the final step, we then replace u ^ j in Equation (24) with ω u ^ j + ( 1 - ω ) u ¯ j to get the approximate binary solution.

3. Numerical Results

We explore the limits of the algorithm with some test problems obtained from MIPLIB [27]. MIPLIB is a standard and widely used benchmark for comparing the performance of various mixed integer programming algorithms, and most of the problems in the MIPLIB arise from real-world applications. We have presented 6 tests in our numerical result section, where a i r 01 , a i r 03 , a i r 04 , a i r 05 and n w 04 are airline crew scheduling type problems. The dimensions and the optimal solutions for the test problems and the numerical results are shown in Table 1. The CPU time is given for a single run with branch-and-cut with CPLEX, branch-and-bound in MATLAB, and our method in MATLAB. In Table 1, the feasibility measure is the summation of the absolute differences of feasibility over all constraints, and the optimality measure is defined as f ^ - f * f W - f * [28], where f * denotes the true objective function value, f ^ denotes the function value found by our proposed method and f W denotes the worst (largest) function value. All tests are done on an Intel(R) Core(TM) i3 CPU @2.4 GHz machine under 64bit Windows7 with 4 GB RAM.
Table 1. Test Problems from MIPLIB.
Table 1. Test Problems from MIPLIB.
Problem n m Time(sec) with branch-and-cut in CPLEXTime(sec) with branch-and-bound in MATLABTime(sec) with our method in MATLABFeasibility measureOptimality measure (%)
enigma211000.234.020.03180
air01771230.282.860.22132.55%
air0312410,7571.0517.6434.00138-11.68%
air048,90482334.35too large to run3231.58111.43%
air054267,19526.66too large to run698.6322-0.55%
nw0487,482369.83too large to run37.9191.36%
In the numerical tests, we experimented with different values for parameters Q j , R j and F on the small problems e n i g m a and a i r 01 . The diagonal elements of Q j were set to 0, 1 and 10, and we found that smaller values were better, so we report results with Q j = 0 in Table 1. We also tested values for parameter R j set to 1, 10, 100 and 1000, and there was not much difference in performance, so we set R j = 10 . As for parameter F, we found that bigger values were better, so we set the diagonal elements of F to 100 , 000 . The parameters Q j penalize the intermediate error values whereas the parameter F penalizes the terminal error at n. Since the terminal error better reflects the original BIP optimality and infeasibility measures, intuitively, it makes sense to set Q j = 0 and F large.
Values for the weighting factor ω ranged between 0 . 5 to 0 . 9 in our exploratory tests, and the best results were typically for ω between 0 . 5 and 0 . 6 .
CPLEX ran very quickly and always found an optimal solution; branch-and-bound in MATLAB was slower and only found a feasible solution for e n i g m a , a i r 01 and a i r 03 ; our method in MATLAB ran slower than CPLEX, but generally faster than branch-and-bound in MATLAB. Even though our numerical results are “worse" than CPLEX, our methodology has a potential for extension with polynomial computational complexity.

4. Summary and Conclusion

The meta-control algorithm for approximately solving large-scale BIPs shows much promise because the computational complexity is linear in n (the number of variables) and polynomial in m (the number of constraints), specifically on the order of O ( n m 3 ) . An LQT approach is suggested by the result in Theorem 1, which proves the existence of an optimal binary solution to the LQT problem. We provide numerical results with experimentally chosen parameter values that demonstrate the effectiveness of our approach.
In our future research, we will develop an auxiliary iterative method that can provide an explicit algorithm for detecting valid parameter values automatically and investigate other ways to integrate the quantization into the meta-control algorithm to improve the performance of this algorithm. We will also develop a stochastic decomposition method to reduce the computation time.

Acknowledgements

This research is sponsored, in part, by the National Science Foundation through Grant CMMI-0908317.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix

We solve for u ^ j in Problem 4 using a dynamic programming approach. We write the cost-to-go equation as:
V e j , j = min u j 1 2 e j T Q j e j + 1 2 u j ( u j - 1 ) R j + V ( e j + 1 , j + 1 )
with V ( e n , n ) = 1 2 e n T F e n , and equate it to the Riccati form
V e j , j = 1 2 e j T Σ j e j + e j T Ψ j + Ω j
where Σ j represents a symmetric positive-definite m + 1 × m + 1 matrix, Ψ j is a positive m + 1 × 1 vector, and Ω j is a positive scalar.
Combining the Equations (25), (26) and the dynamics in Equation (22), we have
V e j , j = min u j { 1 2 e j T Q j e j + 1 2 u j ( u j - 1 ) R j + 1 2 e j + a j u j T Σ j + 1 e j + a j u j
+ e j + a j u j T Ψ j + 1 + Ω j + 1 }
In order to minimize this expression we isolate the terms with u j in them
1 2 u j ( u j - 1 ) R j + 1 2 u j 2 a j T Σ j + 1 a j + u j a j T Σ j + 1 e j + u j a j T Ψ j + 1
and take the derivative with respect to u j and set the value to 0,
( u j - 1 2 ) R j + a j T Σ j + 1 a j u j + a j T Σ j + 1 e j + a j T Ψ j + 1 = 0
This yields the solution u j for the optimal control
u ^ j = 1 2 R j - a j T Σ j + 1 e j - a j T Ψ j + 1 R j + a j T Σ j + 1 a j
In order to simplify notation, we let
S j = - a j T Σ j + 1 R j + a j T Σ j + 1 a j
δ j = 1 2 R j - a j T Ψ j + 1 R j + a j T Σ j + 1 a j
and we can now write
u ^ j = S j e j + δ j
We equate the Riccati form Equation (26) with the value function in Equation (27) evaluated at u ^ j from Equation (31), yielding
1 2 e j T Σ j e j + e j T Ψ j + Ω j = 1 2 e j T Q j e j + 1 2 S j e j + δ j S j e j + δ j - 1 R j + 1 2 e j + a j ( S j e j + δ j ) T Σ j + 1 e j + a j ( S j e j + δ j ) + e j + a j ( S j e j + δ j ) T Ψ j + 1 + Ω j + 1
We now solve for Σ j and Ψ j by separating the quadratic terms from the linear terms in e j . Isolating the quadratic terms in e j , we have
1 2 e j T Σ j e j = 1 2 e j T Q j e j + 1 2 e j T S j T R j S j e j + 1 2 e j T I + a j S j T Σ j + 1 I + a j S j e j
which yields the Riccati equation corresponding to Σ j
Σ j = Q j + S j T R j S j + I + a j S j T Σ j + 1 I + a j S j
Isolating the linear terms in e j , we have
e j T Ψ j = e j T S j T ( δ j - 1 2 ) R j + e j T I + a j S j T Σ j + 1 a j δ j + 1 + e j T I + a j S j T Ψ j + 1
and factoring out e j T , the tracking equation for Ψ j is
Ψ j = S j T ( δ j - 1 2 ) R j + I + a j S j T Σ j + 1 a j δ j + I + a j S j T Ψ j + 1
Therefore, Σ j and Ψ j can be found backwards in time by Equations (32) and (33) from initial conditions Σ n = F , Ψ n = 0 .
Given Σ j and Ψ j , we can calculate u ^ j from Equations (28), (22) and (23). To calculate u ¯ j for our implementation with quantization, we use the same Σ j and Ψ j , but introduce rounding to the nearest integer in Equations (28), (22) and (23) to obtain:
u ¯ j = int 1 2 R j - a j T Σ j + 1 e ^ j - a j T Ψ j + 1 R j + a j T Σ j + 1 a j
and
e ¯ j + 1 = int [ e ¯ j + a j u ¯ j ]
with e ¯ 0 = - int [ b ] .

References

  1. Wolsey, L.A. Integer Programming; Wiley: New York, NY, USA, 1998. [Google Scholar]
  2. Danna, E.; Fenelon, M.; Gu, Z.; Wunderling, R. Generating Multiple Solutions for Mixed Integer Programming Problems. In Integer Programming and Combinatorial Optimization; Fischetti, M., Williamson, D.P., Eds.; Springer: Berlin, Germany, 2007; pp. 280–294. [Google Scholar]
  3. Jarre, F. Relating Max-Cut Problems and Binary Linear Feasibility Problems. Available online: http://www.optimization-online.org (accessed on 15 June 2013).
  4. Bertsimas, D.; Tsitsiklis, J.N. Introduction to Linear Optimization; Athena Scientific: Nashua, NH, USA, 1997. [Google Scholar]
  5. Mitten, L.G. Branch-and-bound methods: General formulation and properties. Oper. Res. 1970, 18, 24–34. [Google Scholar] [CrossRef]
  6. Caprara, A.; Fischetti, M. Branch-and-Cut Algorithms. In Annotated Bibliographies in Combinatorial Optimization; Wiley: Chichester, UK, 1997; pp. 45–64. [Google Scholar]
  7. Barnhart, C.; Johnson, E.L.; Nemhauser, G.L.; Savelsbergh, M.W.P.; Vance, P.H. Branch-and-price: Column generation for solving huge integer programs. Oper. Res. 1998, 46, 316–329. [Google Scholar] [CrossRef]
  8. Lew, A.; Holger, M. Dynamic Programming: A Computational Tool; Springer: New York, NY, USA, 2007; Volume 38. [Google Scholar]
  9. Jünger, M.; Liebling, T.; Naddef, D.; Nemhauser, G.; Pulleyblank, W.; Reinelt, G.; Rinaldi, G.; Wolsey, L. 50 Years of Integer Programming 1958–2008: From the Early Years to the State-of-the-Art; Springer: Berlin, Germany, 2009. [Google Scholar]
  10. Kirkpatrick, S.; Gelatt, C.D., Jr.; Vecchi, M.P. Optimization by simulated annealing. Science 1983, 220, 671–680. [Google Scholar] [CrossRef] [PubMed]
  11. Zabinsky, Z.B. Stochastic Adaptive Search for Global Optimization; Kluwer Academic Publishers: Boston, MA, USA, 2003. [Google Scholar]
  12. Rubinstein, R.Y.; Kroese, D.P. The Cross Entropy Method: A Unified Combinatorial Approach to Combinatorial Optimization, Monte-Carlo Simulation and Machine Learning; Springer: Berlin, Germany, 2004. [Google Scholar]
  13. Haupt, R.L.; Sue, E.H. Practical Genetic Algorithms; Wiley: New York, NY, USA, 2004. [Google Scholar]
  14. Shi, L.; Ólafsson, S. Nested partitions method for global optimization. Oper. Res. 2000, 48, 390–407. [Google Scholar] [CrossRef]
  15. Hoffman, K.L. Combinatorial optimization: Current successes and directions for the future. J. Comput. Appl. Math. 2000, 124, 341–360. [Google Scholar] [CrossRef]
  16. Grötschel, M.; Krumke, S.O.; Rambau, J. Online Optimization of Large Scale Systems: State of the Art; Springer: Berlin, Germany, 2001. [Google Scholar]
  17. Martin, R.K. Large Scale Linear and Integer Optimization; Kluwer: Hingham, MA, USA, 1998. [Google Scholar]
  18. Schrijver, A. Combinatorial Optimization: Polyhedra and Efficiency; Springer: Berlin, Germany, 2003. [Google Scholar]
  19. Callegari, S.; Bizzarri, F.; Rovatti, R.; Setti, G. On the Approximate solution of a class of large discrete quadratic programming problems by ΔΣ modulation: The case of circulant quadratic forms. IEEE Trans. Signal Process. 2010, 58, 6126–6139. [Google Scholar] [CrossRef]
  20. Callegari, S.; Bizzarri, F. A Heuristic Solution to the Optimisation of Flutter Control in Compression Systems (and to Some More Binary Quadratic Programming Problems) via ΔΣ Modulation Circuits. In Proceedings of the 2010 IEEE International Symposium Circuits and Systems (ISCAS), Paris, France, 30 May–2 June 2010; pp. 1815–1818.
  21. Von Haartman, K.; Kohn, W.; Zabinsky, Z.B. A meta-control algorithm for generating approximate solutions to binary programming problems. Nonlinear Anal. Hybrid Syst 2008, 2, 1232–1244. [Google Scholar] [CrossRef]
  22. Frieden, B.R. Science from Fisher Information: A Unification; Cambridge University Press: Cambridge, UK, 2004. [Google Scholar]
  23. Zhen, S.; Chen, Y.; Sastry, C.; Tas, N.C. Optimal Observation for Cyber-Physical Systems: A Fisher-Information-Matrix-Based Approach; Springer: Berlin, Germany, 2009. [Google Scholar]
  24. Lewis, F.L.; Syrmos, V.L. Optimal Control; Wiley: New York, NY, USA, 1995. [Google Scholar]
  25. Bertsekas, D.P. Dynamic Programming and Optimal Control, 3rd ed.; Athena Scientific: Nashua, NH, USA, 2005; Volume I. [Google Scholar]
  26. Varga, R.S. Matrix Iterative Analysis; Springer: Berlin, Germany, 2000. [Google Scholar]
  27. MIPLIB—Mixed Integer Problem Library. Available online: http://miplib.zib.de/ (accessed on 15 June 2013).
  28. Ali, M.M.; Khompatraporn, C.; Zabinsky, Z.B. A numerical evaluation of several stochastic algorithms on selected continuous global optimization test problems. J. Glob. Optim. 2005, 31, 635–672. [Google Scholar] [CrossRef]
Entropy EISSN 1099-4300 Published by MDPI AG, Basel, Switzerland RSS E-Mail Table of Contents Alert
Back to Top