**Tom Kelliher, CS 315**

**Apr. 19, 1999**

Read openings of 3.1, 3.2, 3.3.

Multiplication, convolution on linear arrays.

- Hypercubes.
- Butterflies.

Shuffle-Exchanges.

Definition of **r**-dimensional hypercube:

- Has nodes and edges.
- Each node is labeled with an
**r**-bit number. - Two nodes are connected only if they differ in one bit.
- Edges partition nicely along dimensions. An edge is called a
*dimension*only if it connects two nodes which differ in the**k**edge**k**th bit position. - Recursive structure.

Examples: 0- through 4-dimensional hypercubes.

- How can we find a path from node to
node ?
- What is the diameter of the graph?
- What is the bisection width of the graph? ( --- remove any
dimension's edges.)

- Mapping a linear array.
- Hamiltonian cycles.
- Proof by induction. Basis:
**N=4**.Step: Partition the

**N**-node hypercube into 2 -node hypercubes. Assume that there is an edge (x010, x110) and, symmetrically, (x011, x111) in each sub-hypercube, respectively.To construct the linear array for the hypercube, remove those edges and add edges (x010, x011) and (x110, x111).

- Hamiltonian cycles.
- Mapping a 2-D array. Example: construct a 4x4 array from a 16 node
hypercube.

Definition of **r**-dimensional butterfly:

- Has nodes and edges.
- Each node is labeled , where
**r**(binary) is the row and**l**(decimal) is the level. - Two types of edges:
- Straight edges connect and .
- Cross edges connect and , where
**r**and differ only in the**l**th bit position. - Recursive structure.

- Straight edges connect and .

Example: 3-dimensional butterfly.

Observation: Collapsing horizontally, we get the hypercube.

- How can we find a path from node to node (r',l)?
Extend to nodes on arbitrary levels.

- What is the diameter of the graph?
- What is the bisection width of the graph? Is
**r**correct?

Mon Apr 19 09:48:13 EDT 1999