class MarkovBlanket {

    public static Set<Vertex> get(Vertex<?, ?> aVertex) {

        LambdaSection parents = LambdaSection.getUpstreamLambdaSection(aVertex, false);
        LambdaSection children = LambdaSection.getDownstreamLambdaSection(aVertex, false);
        Set<Vertex> childrensParents = getUpstreamProbabilisticVertices(children.getLatentAndObservedVertices());

        Set<Vertex> blanket = new HashSet<>();
        blanket.addAll(parents.getLatentAndObservedVertices());
        blanket.addAll(children.getLatentAndObservedVertices());
        blanket.addAll(childrensParents);

        blanket.remove(aVertex);

        return blanket;
    }

    private  MarkovBlanket();

}