Как я могу создать планарный график? (основанный на графике метод) - PullRequest
0 голосов
/ 22 мая 2019

Создание плоского графа с использованием метода на основе графиков - моя домашняя работа.

Метод на основе графиков заключается в максимизации веса между отделами.

Этапы графического метода

  • Шаг 1: Выберите пару отделов с наибольшим весом
  • Шаг 2: Выберите третий отдел на основе суммывеса с
    двумя выбранными отделами
  • Шаг 3: Выберите следующий невыбранный отдел для входа, оценивая сумму весов и поместите отдел в графе
  • Шаг 4: подсчетшаг 3, пока все отделы не выбраны

Я закончил Шаг 3.

это диаграмма отношений для создания planrgraph. введите описание изображения здесь

Мой код:

for (int i = 0; i <= in_step4_1.size() - 1; i++)
{
    for (int j = 0; j <= in_step4_1.size() - 1; j++)
    {
        for (int k = 0; k <= in_step4_1.size() - 1; k++)
        {
            if ((in_step4_1[i] < in_step4_1[j]) && (in_step4_1[j] < in_step4_1[k]) && (in_step4_1[j] < in_step4_1[k]))
            {
                cout << "(" << in_step4_1[i] << "," << in_step4_1[j] << "," << in_step4_1[k] << ")";
                in_step4[count].push_back(in_step4_1[i]);
                in_step4[count].push_back(in_step4_1[j]);
                in_step4[count].push_back(in_step4_1[k]);

                if (++count % 4 == 0) cout << endl;

            }
        }
    }
}
n=count;
cout << endl;
}

Я хочу найти только возможные комбинации, а не все комбинации.

1 Ответ

0 голосов
/ 22 мая 2019

Шаг 1: выберите пару отделов с наибольшим весом

Просто отсортируйте ваш контейнер, используя алгоритм сортировки, например std::sort:

std::sort(std::begin(in_step4_1), std::end(in_step4_1));
// largest weight is in_step4_1[in_step4_1.size() - 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...