JGraphT создает случайный граф из ранее существующих вершин

Мне нужно создать случайный граф из нескольких ранее существующих вершин. Я еще не нашел способ сделать это. В каждом руководстве используется «VertexFactory» (которую, кстати, нельзя разрешить даже при импорте org.jgraph.generate.*) для создания вершин при создании графа. Но я бы предпочел сгенерировать граф из уже существующих вершин. Меня особенно интересует алгоритм WattsStragotz, но я еще не знаю. Возможно ли это с использованием уже написанных классов RandomGeneration Jgrapht?

Большое спасибо


person ICEBERG    schedule 07.02.2020    source источник


Ответы (1)


Да, вы можете это сделать, но теперь с вершинами, которые уже добавлены в граф. Если по какой-либо причине вы хотите использовать уже существующие объекты в качестве вершин, вы можете сделать что-то вроде следующих строк:

  1. Поместите все ваши ранее существовавшие вершинные объекты в список
  2. Реализовать настраиваемого поставщика вершин (старый VertexFactory был выведен из эксплуатации в пользу парадигмы поставщика в более новых версиях Java). Этот поставщик вершин выполняет итерацию по вашему списку предопределенных вершин и возвращает новую вершину каждый раз, когда вызывается метод поставщика get().
  3. Создайте новый граф с вашим поставщиком вершин. Взгляните на этот пример на нашей вики-странице.
  4. Вызовите любой из генераторов случайных графов на графе.
person Joris Kinable    schedule 09.02.2020