Bayesian network structure learning is the task of recovering the directed acyclic graph that describes how variables depend on one another, using observed data rather than a hand-built model. Score-based methods such as GES search for the graph that best fits the data under a score like BDeu, while constraint-based methods such as PC rely on conditional independence tests. Both become expensive as the number of variables grows, which is why networks with hundreds of variables are hard to learn from a full table in a single search.