Определить, существуют ли стабильные размещения домов среди владельцев

Помогите, пожалуйста, если не кодом, то хотя бы развернутым пояснением, что должна делать программа.

Составить класс, имеющий графический интерфейс и окна для ввода/отображения данных. В программе должна быть панель инструментов, на которой есть возможность выбора режима работы: изменение свойств добавленных элементов управления, добав-ление кнопки, добавление метки и т.д. При выборе уже добавленного элемента управ-ления или при создании нового на отдельной панели отображаются их свойства. Выде-ление уже добавленного элемента управления происходит по событию Click этого эле-мента. Есть ограничения: не должно быть видно лишних свойств (например, позиции при редактировании свойств кнопки).

Метод класса выполняет задачу перераспределения домов для двух типов «агентов» — владельцов домов (12 владельцев) и самих домов (12 домов). Владельцы домов могут заглядываться на дома соседей. Результатом реализации класса должен быть ответ на во-прос: существуют ли стабильные размещения домов среди владельцев, такие, что ника-кая подгруппа владельцев не захочет перераспределить дома между собой?