public ArrayList<OpinionCluster> calculateOpinionClustersByGroup() {
		ArrayList<OpinionCluster> clusters = new ArrayList<OpinionCluster>();
		boolean isNewOpinionCluster;
		for(Group g: groups) {
		for(Agent a: g.getAgents()) {
			isNewOpinionCluster = true;
			for(OpinionCluster o: clusters) {
				if(a.getGroup().equals(o.ocGroup) &&
						a.getOpinion() >= o.opVal - Constants._epsilon && a.getOpinion() <= o.opVal + Constants._epsilon) {
					o.increment(a.opinion);
					isNewOpinionCluster = false;
					break;
				}
			}
			if(isNewOpinionCluster) {
				clusters.add(new OpinionCluster(a.getOpinion(), a.getGroup()));
			}
		} }
		correctOpinionClusters(clusters);
		return clusters;
	}