In particular, graph networks and the reachability problem are the bread-and-butter of almost every game randomizer
An entire game can be represented as a graph where nodes represent game states (in particular the player's inventory and game-progression events like important cutscenes or triggers), and edges are transitions between those states (i.e. getting an item, hitting a trigger).
The simplest form of randomizer will "just" shuffle nodes around, but this can pretty easily create situations where a state is unreachable: if item X is behind a challenge that requires item X, then item X cannot be retrieved (with the exception of glitches) and is considered "out of logic" in the jargon of randomizer communities.
So most randomizers also solve the reachability problem: can all (required) nodes be accessed given a particular shuffle of the game?
By the way, the current run's randomizer is *not* solving the reachability problem, that's what "no logic" means. But this specific run had its seed vetted: we know for sure that ZFG can complete the run, but not which items (if any) will be impossible to retrieve.