# Overview: Deprecation of Compound Sets¶

## Overview¶

In May 2018 AIMMS announced a plan to deprecate compound sets in stages. Support for compound sets will be fully deprecated after January 1, 2020.

To find out how to identify and remove compound sets from your model without losing functionality, read AIMMS Knowledge: Prepare for the Deprecation of Compound Sets.

## Definition of compound sets in AIMMS¶

As you may know, a relation $$R$$ is a subset of a Cartesian product: $$S_1 \times S_2 \times ... \times S_n$$ with $$n \geq 2$$, and $$S_1, S_2, ..., S_n$$ being one-dimensional sets.

In AIMMS, a compound set, $$C$$, is a relation, $$R$$, whose attribute form contains the declaration of an index, $$c$$ or an element parameter, $$e$$. Thus a compound set is a one-dimensional set, and can be ordered.

A compound set allows the use of tags to select components in tuples. Let’s assume $$C$$ is declared with the tags $$(T_1, T_2, ..., T_n)$$. Then you may select component $$i$$ of tuple $$c$$ using the notation $$c.T_i$$.

## Reason to deprecate compound sets¶

There are several technical reasons to deprecate compound sets.

• AIMMS created compound sets for root sets with an index or parameter in the set declaration. This causes unexpected behavior in some cases:

• When the root sets of two conceptually different compound sets collide, then numbering and ordering of elements is different than expected.
• When an index or element parameter is added to the declaration of a relation, the application’s performance may degrade.
• Compound sets are implemented differently than other sets and indexing mechanisms. This makes it expensive to support compound sets, especially for components such as:

You can replace the compound sets with a set mapping, which is a one-dimensional root set and a relation.

This conversion procedure is designed to make minimal changes to your application while:

• Maintaining original functionality
• Improving efficiency
• Producing more predictable behavior

Read AIMMS Knowledge: Prepare for the Deprecation of Compound Sets for the procedure to replace compound sets in your model.