简体   繁体   中英

Mincuts from graphs to find permutations that break the system into disjoint sets?

Assume an undirected system, graph where you want to find out elements in their permutations that makes the system disjoint such that each set is minimum. This graph has two special nodes: sink and source that cannot be in the elements.

How can you computationally find the minimum cuts given some graph G=(V,E)?

Feel free to choose any method to calculate mincuts computationally from graphs. I list below a simple example, relevant research, models, storage methods, lemmas, theorems -- and something about visualisation and computing on which this thread is focused on. Next step after the simple example is the parametrisation of the graphical model and then computation.

Simple example with Python and Cartesian product

Assume a 3x2x2 graph with 3 parallel where 1st branch with 3 things, 2nd branch with 2 things and last branch 2 things. The minimum cuts are {{1,4,6},{1,4,7},{1,5,6},{1,5,7},{2,4,6},{2,4,7},{2,5,6},{2,5,7},{3,4,6},{3,4,7},{3,5,6},{3,5,7}} .

在此处输入图片说明

import itertools;

somelists = [
   [1, 2, 3],
   [4, 5],
   [6, 7]
]

print list(itertools.product(*somelists))

Computing

  • General question How to analyse a sparse adjacency matrix? but relevant because graphs often are sparse.

  • Graph Complement useful in finding mincuts: a trial with Mathematica below but notice that some bugs in Mathematica found in at least 10.1 related to mincut and VertexConnectivity commands.

Mathematics

Visualising series-parallel graphs with sink and source

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM