code: @Override
  	public void setInput(DataSet<Tuple2<VertexKey, VertexValue>> inputData) {
  		// sanity check that we really have two tuples
  		TypeInformation<Tuple2<VertexKey, VertexValue>> inputType = inputData.getType();
  		Validate.isTrue(inputType.isTupleType() && inputType.getArity() == 2, "The input data set (the initial vertices) must consist of 2-tuples.");
  
  		// check that the key type here is the same as for the edges
  		TypeInformation<VertexKey> keyType = ((TupleTypeInfo<?>) inputType).getTypeAt(0);
  		TypeInformation<?> edgeType = edgesWithoutValue != null ? edgesWithoutValue.getType() : edgesWithValue.getType();
  		TypeInformation<VertexKey> edgeKeyType = ((TupleTypeInfo<?>) edgeType).getTypeAt(0);
  		
  		Validate.isTrue(keyType.equals(edgeKeyType), "The first tuple field (the vertex id) of the input data set (the initial vertices) " +
  				"must be the same data type as the first fields of the edge data set (the source vertex id). " +
  				"Here, the key type for the vertex ids is '%s' and the key type  for the edges is '%s'.", keyType, edgeKeyType);
  
  		this.initialVertices = inputData;
  	}
docs: Sets the input data set for this operator. In the case of this operator this input data set represents
  the set of vertices with their initial state.
  
  @param inputData The input data set, which in the case of this operator represents the set of
  vertices with their initial state.
  
  @see eu.stratosphere.api.java.operators.CustomUnaryOperation#setInput(eu.stratosphere.api.java.DataSet)