Package edu.cnu.mdi.sim.demo.network
Class NetworkModel
java.lang.Object
edu.cnu.mdi.sim.demo.network.NetworkModel
World-coordinate network model for the decluttering demo.
All coordinates are normalized to the unit square:
x in [0,1]y in [0,1]
Servers are stored first, followed by clients. Every client connects to
exactly one server via an NetworkModel.Edge.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classDirected edge from a node to another node. -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal intNumber of clients.final List<NetworkModel.Edge> Each client has exactly one edge to a server.final intNumber of printers.final intNumber of servers.Nodes (servers, clients, printers). -
Method Summary
Modifier and TypeMethodDescriptionstatic NetworkModelCreate a random world-based network model in the unit square.
-
Field Details
-
servers
Nodes (servers, clients, printers). -
clients
-
printers
-
nodes
-
edges
Each client has exactly one edge to a server. -
serverCount
public final int serverCountNumber of servers. -
clientCount
public final int clientCountNumber of clients. -
printerCount
public final int printerCountNumber of printers.
-
-
Method Details
-
random
Create a random world-based network model in the unit square.Servers are placed first, then clients, then printers. Every client is assigned to exactly one randomly chosen server via an
NetworkModel.Edge. Each printer is assigned to between 1 and 4 clients (capped atclientCountto prevent an infinite loop when the client pool is very small). All assignments are unique per printer.- Parameters:
serverCount- number of servers; must be ≥ 4clientCount- number of clients; must be ≥ 6printerCount- number of printers; must be ≥ 0rng- random number generator; must not benull- Returns:
- a freshly constructed, randomized
NetworkModel - Throws:
IllegalArgumentException- if any count constraint is violated orrngisnull
-