Я работаю над проектом дизайна небольшого дома, и одна из его самых важных частей - это раздел, где пользователь может дать некоторую информацию о том, как он хочет, чтобы его комнаты (например, дом с 10 х 10 метров, имеющий 3x3 гостиная, кухня 3x3, две спальни 4x5 и ванная комната 4x2), а затем программа создает карту дома в соответствии с выполненными требованиями.
Пока я не беспокоюсь о том, чтобы рисовать карту, просто расположив комнаты так, чтобы они не пересекались (да, результат может быть довольно уродливым). Я уже провел некоторые поиски и обнаружил, что то, что я хочу, очень похоже на проблему упаковки , которая имеет некоторые алгоритмы , которые справиться с этой проблемой довольно хорошо (хотя это NP-полная проблема).
Но тогда у меня было еще одно ограничение: пользователь может указать «ссылки» между комнатами, например, он может пожелать, чтобы в комнате была «дверь» в ванную, а в гостиной - прямо на кухню. и т. д. (то есть комнаты должны располагаться рядом), и здесь все усложняется.
Я почти уверен, что то, что я хочу, настраивает NP-проблему, поэтому я прошу советы по созданию хорошей, но не обязательно оптимальной реализации. У меня есть идея использовать графики для представления отношений между комнатами, но я не могу понять, как я могу адаптировать существующие алгоритмы упаковки, чтобы соответствовать этому новому ограничению. Кто-нибудь может мне помочь?