public void AddSubset(Subset subset)
        {
            if (subset.TotalArea > Area)
            {
                return;
            }

            var duplicate = Subsets.FirstOrDefault(s =>
                                                   s.Items.SequenceEqual(subset.Items, new ItemDimensionalComparer()));

            if (duplicate != null)
            {
                if (duplicate.TotalValue >= subset.TotalValue)
                {
                    return;
                }

                Subsets.Remove(duplicate);
                Subsets.Add(subset);
            }
            else
            {
                Subsets.Add(subset);
            }
        }