/* * Author: tdanford * Date: Nov 20, 2008 */ package org.seqcode.gseutils.graphs; import java.util.*; /** * Erdos-Renyi random graph! Directed, in particular. * * @author tdanford * */ public class RandomDirectedGraph extends DirectedGraph { private Random rand; private String[] vertices; public RandomDirectedGraph(int n, double p) { rand = new Random(); vertices= new String[n]; for(int i = 0; i < vertices.length; i++) { String name = String.format("%d", i); addVertex(name); vertices[i] = name; } for(int i = 0; i < vertices.length; i++) { for(int j = 0; j < vertices.length; j++) { if(i != j) { double pedge = rand.nextDouble(); if(pedge <= p) { addEdge(vertices[i], vertices[j]); } } } } } public String chooseVertex() { return vertices[rand.nextInt(vertices.length)]; } }