Jan 2018
February 2019 Issue
Collins Software's Newsletter
Mar 2019
Looking at Machine learning
I recently had to implement some of the common algorithms for machine learning, both supervised and unsupervised methods using Python. The problem's solutions were described using mathematics, with pages of descriptive text. Once the program was coded, I could not find any relationship between the program's Python script and the descriptive document.

It was impossible to read the coded program, and it was impossible to logically describe the problem or the solution using equations and descriptive text. Examples were required for a full understand of the solution and of the problem.

Operator Precedence:
I once taught a college class and stated that before computers there was no thing such as "operator precedence".  One student got so mad as to drop the course. That statement has bothered me since and yet I still believe in it.

In mathematics; location, operation and brackets determine the order of evaluation. Computer languages came along and changed math evaluation. The character set, keyboard and line editors limited the use of mathematics. Operator precedence became the main method of evaluation. Therefore the language of mathematics is lost.

Symbol substitution, order, placement, and brackets could replace our programming language.

"Mathematics is written for mathematicians." -- Copernicus

"As far as the laws of mathematics refer to reality, they are not certain, and as far as they are certain, they do not refer to reality." -- Albert Einstein

"He who asks a question is a fool for five minutes; he who does not ask a question remains a fool forever." -Confucius

"If I had just one hour left to live, I'd spend it in Math class... it never ends." -- Anonymous

"Mathematics is as much an aspect of culture as it is a collection of algorithms." -- Carl Benjamin Boyer

"Life is hard; itís harder if youíre stupid." -- John Wayne


Math Equation Programming:
The current computer languages have no direct relationship to the science of mathematics. Equations, formulas, symbol substitution, sets, subsets, integration, summation, probability, partial  derivates, trigonometric substations, rules and proofs of equations are not maintained in our programming languages.

Programs such as MathJax give the visual representation but not necessarily the content. Or if the content were representative, the programming needed would be overly complex for the editor, characters, and font technologies.  So once again the keyboard and fonts stop short of handling the editing needed for complex math equation processing.

To implement math equations by a compiler requires a system for editing in the language of mathematics. This means a keyboard with the characters to be used, otherwise the human once again would be in the middle as an interrupter.  We need to get out of our 58 character language to be able to code mathematics.

Lets jump ahead and assume the editing is handled. Where and how are math equations are to be used, and more importantly to what benefit?

First look at this paper. It describes the equation, restraints, and the proof in terms that a human can read. Is it possible to program from this paper using only the mathematics?  There is a hung gap between mathematics and the use for the mathematics, as can be seen in this paper from the text used to describe the process. The author must assume some knowledge on the part of the reader which makes it difficult to impossible program.



Parts of a Math Equation:
The input, result, operations, constants, ranges, indexes, restraints, and structures are the primary parts of an equation. In programming very little effort goes into the management of these parts since none of them are of interest.

In mathematics all the factors must be known before evaluation is accepted. The range and restraints are often overlooked as a critical part of the equation. 

Proofs of an Equation:
The mathematical truth broken down into manageable and understandable equalities. They go far beyond correct or incorrect thinking into the region of multiple mathematical entry points to a solution. Programming of mathematical proofs place the solution of all permutations into a system for unmanaged problem solving.

My first love of mathematics was in the area of trigonometry substitutions, the science of substituting one equality for another and then proceeding to solve a problem that was before unsolvable.

The best mathematicians are people that have the best command of substitution, which is the restating of the program from any number of starting points. The science of programming proofs is by far the greatest challenge we face in the area of complier design, with the greatest return on investment.

Proofs are, in one way, the reason we use the equation for a give solution. In a wider scope, proofs provide alternate equalities, and therefore different methods to solve problems, plus they provide absolute accountability to the reasoning behind the solution. 

Author: Clif Collins

Houston, Texas
February 1, 2019

email: web4@CollinsSoftware.com