An alternative approach for representing DESs involves the use of molecular fingerprints. Fingerprints are vectorial representations that encode the structure of a molecule, and can be classified into a couple of main groups: hashed and structural. Hashed fingerprints enumerate fragments in a molecule by iterating over a specified number of rounds. In each round, the atom identifiers are updated based on the atom current identifier and those of its immediate neighbors. This process effectively captures and differentiates the neighborhood of each atom. The number of iterations determines the "radius" of the neighborhood captured around each atom. After each iteration, the updated identifiers are hashed to produce a unique number for each distinct neighborhood. These hashed values are then used to set bits in a fixed-length binary vector (the fingerprint). On the other hand, structural fingerprints are constructed based on a predefined set of molecular substructures, and the presence or absence of each substructure is then mapped into a bit vector.