This toolbox contains Matlab code for several graph and mesh partitioning methods, including geometric, spectral, geometric spectral, and coordinate bisection. It also has routines to generate recursive multiway partitions, vertex separators, and nested dissection orderings and it has some sample meshes and mesh generators.
The toolbox contains a Matlab interface to Leland and Hendrickson s Chaco partitioning package, but it doesn t contain Chaco itself. The file "chaco/README" tells how to install the interface to Chaco. It also contains a Matlab interface to Karypis et al. s Metis partitioning package, using Robert Bridson s "metismex" code.
北京大學ACM題
Here is a geometric problem. You have an angle and some squares in the first quadrant of the plane rectangular coordinates. The vertex of the angle is fixed on the origin O of the coordinates, and both of its radial lines are specified by the input. The sizes of the squares are also specified by the input, and the squares can shift vertically and horizontally. Now your job is to use the squares and the radial lines of the angle to enclose the maximum area, which excludes the area of the squares (see Figure 1). You should note that the edges of the squares must be parallel to the axes.
c pgm to find redundant paths in a graph.Many fault-tolerant network algorithms rely on an underlying assumption that there are possibly distinct network paths between a source-destination pair. Given a directed graph as input, write a program that uses depth-first search to determine all such paths. Note that, these paths are not vertex-disjoint i.e., the vertices may repeat but they are all edge-disjoint i.e., no two paths have the same edges. The input is the adjacency matrix of a directed acyclic graph and a pair(s) of source and destination vertices and the output should be the number of such disjoint paths and the paths themselves on separate lines. In case of multiple paths the output should be in order of paths with minimum vertices first. In case of tie the vertex number should be taken in consideration for ordering.
Edge Disjoint Cycles. You are given an input graph that is either directed or undirected. Write a program that reads in a vertex number and lists the number of edge disjoint cycles that start and end at this vertex. The output should also list the edges in each of the cycle discovered. Input will be the adjacency matrix preceded by a 0 or 1 representing Directed or Undirected graphs respectively.
Specification File
adjacencyListGragh
class GeneralGraph:
use adjacency list to implement the graph which data structure is vector
Construct methods:
* public GeneralGraph():
contain an empty vector store the vertex and a boolean determines whether graph is directed or not, defaulted is undirected
Implementation of Edmonds Karp algorithm that calculates maxFlow of graph.
Input:
For each test case, the first line contains the number of vertices (n) and the number of arcs (m). Then, there exist m lines, one for each arc (source vertex, ending vertex and arc weight, separated by a space). The nodes are numbered from 1 to n. The node 1 and node n should be in different sets. There are no more than 30 arcs and 15 nodes. The arc weights vary between 1 and 1 000 000.
Output:
The output is a single line for each case, with the corresponding minimum size cut.
Example:
Input:
7 11
1 2 3
1 4 3
2 3 4
3 1 3
3 4 1
3 5 2
4 6 6
4 5 2
5 2 1
5 7 1
6 7 9
Output:
5
Matlab 畫三維立體圖形
The aim of geom3d library is to handle and visualize 3D geometric primitives
such as points, lines, planes, polyhedra... It provides low-level functions
for manipulating 3D geometric primitives, making easier the development of more
complex geometric algorithms.
Some features of the library are:
- creation of various shapes (3D points, 3D lines, planes, polyhedra...)
through an intuitive syntax.
Ex: createPlane(p1, p2, p3) to create a plane through 3 points.
- derivation of new shapes: intersection between 2 planes, intersection between
a plane and a line, between a sphere and a line...
- functions for 3D polygons and polyhedra. Polyhedra use classical vertex-faces
arrays (face array contain indices of vertices), and support faces with any
number of vertices. Some basic models are provided (createOctaedron,
createCubeoctaedron...), as well as some computation (like faceNormal or
centroid)
- manipulation of planar transformation. Ex.:
ROT = createRotationOx(THETA);
P2 = transformPoint3d(P1, ROT);
- direct drawing of shapes with specialized functions. Clipping is performed
automatically for infinite shapes such as lines or rays. Ex:
drawPoint3d([50 50 25; 20 70 10], 'ro'); % draw some points
drawLine3d([X0 Y0 Z0 DX DY DZ]); % clip and draw straight line
Some functions require the geom2d package.
Additional help is provided in geom3d/Contents.m file, as well as summary files
like 'points3d.m' or 'lines3d.m'.