@EricMH is a recent PhD graduate from Richard Mark’s group, who is one of the leading lights of the Intelligent Design movement. @EricMH agreed to have a deeper conversation with me on one of his mentor’s key contributions, Algorithmic Specified Complexity (ASC). This is an information theory based metric proposed by Marks ( http://robertmarks.org/REPRINTS/2014_AlgorithmicSpecifiedComplexity.pdf ).
I coded this metric up in a few lines of python. You can look at the code, and even run it yourself here: https://repl.it/@swamidass/AlgorithmicSpecifiedComplexity. The code (minus the imports):
def IID_info(seq): counts = [len(list(group)) for token, group in itertools.groupby(sorted(seq))] total = float(sum(counts)) info = [-math.log(c / total, 2) * c for c in counts ] return sum(info) def GZ_size(seq): S = StringIO.StringIO() F = gzip.GzipFile(mode='wb', fileobj=S) F.write(seq); F.close(); S.flush() return len(S.getvalue()) * 8 def tokens(seq, shuffle=False): L = list(s for s,g in itertools.groupby(sorted(seq))) if shuffle: random.shuffle(L) return "".join(L) def GZ_info(seq): toks = tokens(seq) return GZ_size(seq) - GZ_size(toks) def ASC(seq, comp_info = GZ_info): return max(0, IID_info(seq) - comp_info(seq)) AlgorithmicSpecifiedComplexity = ASC
This code, for example, computes the ASC content of a test block of text at 817 bits.
@EricMH, do you agree this is a correct implementation? If not, please fix it. Once we have agreement here, I’ll move on to the next piece of the story.