If I were to somehow explain the rules of chemistry in terms a computer could understand, I could have a computer search for particularly useful configurations of molecules. Allow me to explain.
Chemistry is pretty much deterministic. When you mix this chemical with this other chemical, there's an X% chance of reaction Y that swaps around their atoms to produce chemicals W and Z. Only some reactions are possible. 2O2 + H2 => H2O is a likely reaction. 9O2 + 9H2 => H9O7 + O2 can't happen.
The biggest variables in reactions are valiance electrons and reactivity. Valiance electrons depends on atom type and charge. Hydrogen has one, Chlorine has seven, and an atom's "goal" in reactions is to fill their outmost layer, which is two for hydrogen and 8 for most other atoms. I can represent this with pointers.
For reactivity, certain atoms are most likely to replace other atoms, based on a property that chemists call Electronegativity. Wikipedia can offer a quick primer on that subject.
This together strongly suggests an object oriented approach. Atoms are Objects, with valiance pointers for data, (the valiance pointers would point to other atoms to suggest chemical bonds, and a null value meaning that this electron is unbonded) and methods that describe their probability for combining with other atoms. Another data item describes their electronegativity situation. If they encounter the chance to change theirs for one further down the series, they take it.
We could then spawn a number of atoms, and start randomly combining them. We would need some way of checking for certain properties that we find useful, which a chemist understands and I do not. Chemical reactions with high energy properties might make good battery material, while chemicals that have certain effects on biological life are likely of interest to pharmaceutical companies.
Chemists could describe fitness functions for their particular goals, and I could have the computer then "evolve" the right molecule to solve that problem.
Hopefully helpful.
No comments:
Post a Comment