Random mutations

def dfs(s, adj):
xs = [s]
visited = set()
while xs:
u = xs.pop()
if u not in visited:
print(u)
visited.add(u)
for v in adj.get(u, []):
xs.append(v)
def bfs(s, adj):
xs = [s]
visited = set()
while xs:
u = xs.pop(0)
if u not in visited:
print(u)
visited.add(u)
for v in adj.get(u, []):
xs.append(v)

Tiny, single letter random mutations are enough for evolution to explore vast landscapes. A demonstration using code, but the same principle applies to single letter changes in DNA.

Manav Rathi
Aug 2019