# Case Study: ANetworkDesignProblem

## Problem Description

THE NETWORK DESIGN PROBLEM

Adapted from a real world problem

Before undertaking this case study you must (at least) read the DataNetworkFlows case study to learn about the components that make up Storage Area Networks (SANs).

The company that commissioned the initial research on routing their data (see DataNetworkFlows) has decided to add another storage device (Device C) to their network. They have also performed some extensive data traffic measurement and determined the actual data flow requirements they need to support. These flows are shown in Table 1.

Source Destination Requirement Mb/s
Host 1 Device A 65
Host 1 Device B 50
Host 1 Device C 30
Host 2 Device A 25
Host 2 Device B 70
Host 3 Device A 35
Host 3 Device C 65

They estimate they will need either an extra hub or an extra switch or some combination of the 3 hubs and 2 switches. They commissioned the same network consultant to design their new network for them. He finished the job, but left for his honeymoon before writing a management summary or documenting his work. The files he left are contained in:

The company want to use these files to find the optimal SAN design that will support their data flow requirements.

1. Comment the AMPL files `san_design_neos.mod`, `san_design.dat` and `san_design_neos.run` from `san_design.zip`. Run these files to find the optimal SAN design to support the flow requirements. Write a management summary for your solution.

What to hand in ??? Mike to look at??? You commented AMPL files. Your management summary.

1. One problem that often arises in network design (and other mixed-integer programming) is that of symmetry. If components in the network have the same properties, then mixed-integer programming will consider all the combinations of these components even though many combinations represent the same network. The following constraints:

```subject to LinkAntisymmetry {l in LINKS} :
card({k in LINKS : (from[k] = from[l]) and (to[k] = to[l]) and
(ord(k) > ord(l))}) * UseLink[l] >=
sum {k in LINKS : (from[k] = from[l]) and (to[k] = to[l]) and

subject to HubAntisymmetry {h in HUBS} :
card({g in HUBS : ord(g) > ord(h)}) * UseHub[h] >=
sum {g in HUBS : ord(g) > ord(h)} UseHub[g];

subject to SwitchAntisymmetry {s in SWITCHES : s <> last(SWITCHES)} :
card({t in SWITCHES : ord(t) > ord(s)}) * UseSwitch[s] >=
sum {t in SWITCHES : ord(t) > ord(s)} UseSwitch[t];
```

can be used to remove symmetry from the SAN design problem if all the hubs, switches and links have the same properties (i.e., bandwidth capacity, number of port slots, etc).

Add these constraints to `san_design_neos.run` and solve the SAN design problem again. Describe how these constraints remove symmetry. Comment on their effect on the solver's progress.

What to hand in A brief (1 page or less) summary comprised of your description of how the antisymmetry constraints work and their effect on the solver's progress.

This topic: OpsRes > SubmitCaseStudy > ANetworkDesignProblem
Topic revision: r6 - 2008-03-01 - TWikiAdminUser

Copyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback