diff --git a/_bibliography/auto-int.bib b/_bibliography/auto-int.bib index dcdac89747db9..34ce52bdeec52 100644 --- a/_bibliography/auto-int.bib +++ b/_bibliography/auto-int.bib @@ -22,4 +22,29 @@ @article{JMLR:v21:19-346 number = {132}, pages = {1--62}, url = {http://jmlr.org/papers/v21/19-346.html} -} \ No newline at end of file +} + +@misc{iravanian2022symbolicnumericintegrationunivariateexpressions, + title={Symbolic-Numeric Integration of Univariate Expressions based on Sparse Regression}, + author={Shahriar Iravanian and Carl Julius Martensen and Alessandro Cheli and Shashi Gowda and Anand Jain and Yingbo Ma and Chris Rackauckas}, + year={2022}, + eprint={2201.12468}, + archivePrefix={arXiv}, + primaryClass={cs.SC}, + url={https://arxiv.org/abs/2201.12468}, +} + +@article{Jia_2017, + title={Integration by differentiation: new proofs, methods and examples}, + volume={50}, + ISSN={1751-8121}, + url={http://dx.doi.org/10.1088/1751-8121/aa6f32}, + DOI={10.1088/1751-8121/aa6f32}, + number={23}, + journal={Journal of Physics A: Mathematical and Theoretical}, + publisher={IOP Publishing}, + author={Jia, Ding and Tang, Eugene and Kempf, Achim}, + year={2017}, + month=may, pages={235201} } + + diff --git a/_drafts/technical-posts/autoint/2022-10-13-autoint.md b/_drafts/autoint/2022-10-13-autoint.md similarity index 55% rename from _drafts/technical-posts/autoint/2022-10-13-autoint.md rename to _drafts/autoint/2022-10-13-autoint.md index 9ddb031e92561..bbe10d653023f 100644 --- a/_drafts/technical-posts/autoint/2022-10-13-autoint.md +++ b/_drafts/autoint/2022-10-13-autoint.md @@ -17,12 +17,12 @@ Why not? Where is it? What would it look like? I'll use this page collect my thoughts on the subject. -- (WIP) I try to [motivate]({site.baseurl}/autoint/motivation) the need for automatic integration. What kind of problems could it solve? How could it be used? -- (WIP) I cover [automatic differentiation]({site.baseurl}/autoint/autograd) and how it works. -- (WIP) A tutorial on [symbolic integation]({site.baseurl}/autoint/symbolic-int) and why its so hard (it's not a closed operation). -- (WIP) An exploration of the [history of integration]({site.baseurl}/autoint/history) and how it has been automated in the past. -- (WIP) A [tutorial on calculus]({site.baseurl}/autoint/calculus). Back to basics! -- (WIP) A [literature review]({site.baseurl}/autoint/lit-review) of recent integration ideas. +- (WIP) I try to [motivate]({{site.baseurl}}/autoint/motivation) the need for automatic integration. What kind of problems could it solve? How could it be used? +- (WIP) I cover [automatic differentiation]({{site.baseurl}}/autoint/autograd) and how it works. +- (WIP) A tutorial on [symbolic integation]({{site.baseurl}}/autoint/symbolic-int) and why its so hard (it's not a closed operation). +- (WIP) An exploration of the [history of integration]({{site.baseurl}}/autoint/history) and how it has been automated in the past. +- (WIP) A [tutorial on calculus]({{site.baseurl}}/autoint/calculus). Back to basics! +- (WIP) A [literature review]({{site.baseurl}}/autoint/lit-review) of recent integration ideas. diff --git a/_drafts/technical-posts/autoint/2024-10-10-autograd.md b/_drafts/autoint/2024-10-10-autograd.md similarity index 82% rename from _drafts/technical-posts/autoint/2024-10-10-autograd.md rename to _drafts/autoint/2024-10-10-autograd.md index b9824c1433f8f..96917259d93b9 100644 --- a/_drafts/technical-posts/autoint/2024-10-10-autograd.md +++ b/_drafts/autoint/2024-10-10-autograd.md @@ -11,7 +11,7 @@ scholar: ## Automatic differentiation -Automatic differentiationis a method for computing the derivative of a function. It is a generalisation of the chain rule and the product rule. It is also known as algorithmic differentiation, computational differentiation, and sometimes just autodiff or AD. +Automatic differentiation is a method for computing the derivative of a function. It is a generalisation of the chain rule and the product rule. It is also known as algorithmic differentiation, computational differentiation, and sometimes just autodiff or AD. ### Why is it useful? @@ -23,6 +23,8 @@ AD has many applications in machine learning, where we often need to compute the AD works by building a computational graph of the function that we want to differentiate. The computational graph is a directed acyclic graph (DAG) that represents the function as a sequence of primitive operations. Each node in the graph represents a primitive operation, and the edges represent the flow of data between the operations. The graph is then evaluated using the chain rule to compute the derivative of the function. + + ### Calculus background The derivative of a function $f(x)$ is defined as; @@ -51,6 +53,12 @@ $$ ### How is it implemented? (ie how does jax work?) +https://jax.readthedocs.io/en/latest/autodidax.html + +- Taylor-Mode Automatic Differentiation for Higher-Order Derivatives in JAX +- On the numerical stability of algorithmic differentiation +- Achieving Logarithmic Growth of Temporal and Spatial Complexity in Reverse Automatic Differentiation +- Doubly Recursive Multivariate Automatic Differentiation ### How is it different from symbolic differentiation? diff --git a/_drafts/technical-posts/autoint/2024-10-10-calculus.md b/_drafts/autoint/2024-10-10-calculus.md similarity index 99% rename from _drafts/technical-posts/autoint/2024-10-10-calculus.md rename to _drafts/autoint/2024-10-10-calculus.md index 528594c0a0b93..40b98d0c12528 100644 --- a/_drafts/technical-posts/autoint/2024-10-10-calculus.md +++ b/_drafts/autoint/2024-10-10-calculus.md @@ -25,11 +25,6 @@ Then F is uniformly continuous on [a, b] and differentiable on the open interval {% bibliography --cited %} - ---- -title: "Calculus" ---- - Six pillars of calculus; - limits diff --git a/_drafts/technical-posts/autoint/2024-10-10-lit-review.md b/_drafts/autoint/2024-10-10-lit-review.md similarity index 58% rename from _drafts/technical-posts/autoint/2024-10-10-lit-review.md rename to _drafts/autoint/2024-10-10-lit-review.md index 8b8be7a2cb85d..a75c34d1a33be 100644 --- a/_drafts/technical-posts/autoint/2024-10-10-lit-review.md +++ b/_drafts/autoint/2024-10-10-lit-review.md @@ -10,8 +10,10 @@ permalink: /autoint/lit-review --- In depth look at papers; -- [Integration by differentiation]({site.baseurl}/autoint/int-by-diff) -- ??? +- [Integration by differentiation]({site.baseurl}/autoint/int-by-diff) {% cite Jia_2017 %} +- {% cite iravanian2022symbolicnumericintegrationunivariateexpressions %} [Symbolic-Numeric Integration of Univariate Expressions based on Sparse Regression](https://arxiv.org/abs/2201.12468) + + ## current state of integration tools diff --git a/_drafts/technical-posts/autoint/2024-10-10-motivation.md b/_drafts/autoint/2024-10-10-motivation.md similarity index 57% rename from _drafts/technical-posts/autoint/2024-10-10-motivation.md rename to _drafts/autoint/2024-10-10-motivation.md index 64b9a5a2231be..b7b7b81f6e5db 100644 --- a/_drafts/technical-posts/autoint/2024-10-10-motivation.md +++ b/_drafts/autoint/2024-10-10-motivation.md @@ -9,6 +9,47 @@ scholar: bibliography: "auto-int.bib" --- + + +Problems that people cared about + +- surges in electrical wires +- predicting tides +- missile guidance + +https://americanhistory.si.edu/collections/object-groups/mechanical-integrators/harmonic-analyzers-and-synthesizers + + + +## Applications + +### Tides + +Laplace's tidal equations +https://www.whoi.edu/cms/files/lecture03_21374.pdf +https://www.google.com.au/books/edition/Tides/78bE5U7TVuIC?hl=en&bshm=rime/1 + +### Planetary motion + +Antikythera +http://dlib.nyu.edu/awdl/isaw/isaw-papers/4/ + +### Bomb / missile guidance + +https://www.amazon.com/Bomber-Mafia-Temptation-Longest-Second/dp/0316296619 + + +Green's theorem + +Ball-and-disk integrator + +- the water integrator +- the mechanical integrator https://www.youtube.com/watch?v=s-y_lnzWQjk +- ford's integrator +- planimeter +- harmonic analyser +- longimeter https://en.wikipedia.org/wiki/Steinhaus_longimeter + # Motivation @@ -55,4 +96,7 @@ And in general, any PDE. -Slot into existing autograd frameworks. \ No newline at end of file +Slot into existing autograd frameworks. + + + \ No newline at end of file diff --git a/_drafts/technical-posts/autoint/2024-10-10-numerical-int.md b/_drafts/autoint/2024-10-10-numerical-int.md similarity index 100% rename from _drafts/technical-posts/autoint/2024-10-10-numerical-int.md rename to _drafts/autoint/2024-10-10-numerical-int.md diff --git a/_drafts/technical-posts/autoint/2024-10-10-symbolic-int.md b/_drafts/autoint/2024-10-10-symbolic-int.md similarity index 100% rename from _drafts/technical-posts/autoint/2024-10-10-symbolic-int.md rename to _drafts/autoint/2024-10-10-symbolic-int.md diff --git a/_drafts/autoint/2024-10-10-theory.md b/_drafts/autoint/2024-10-10-theory.md new file mode 100644 index 0000000000000..99f1c829de859 --- /dev/null +++ b/_drafts/autoint/2024-10-10-theory.md @@ -0,0 +1,13 @@ +--- +title: "The theory of symbolic integration" +subtitle: "???" +layout: post +categories: + - "research" +scholar: + bibliography: "auto-int.bib" +--- + +What needs to be answered in order to understand and trust symbolic integration? + +- \ No newline at end of file diff --git a/_drafts/inbetween-posts/2024-07-20-capitalism.md b/_drafts/inbetween-posts/2024-07-20-capitalism.md deleted file mode 100644 index fb34297a054db..0000000000000 --- a/_drafts/inbetween-posts/2024-07-20-capitalism.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Capitalism -layout: post ---- - -Incentives! Selfishness. - -*** - -Markets - -*** - -Aside. What capitalism was supposed to be; - -> people are __rewarded for their contributions to society__, with a token, we call this money. they are __free__ to spend that token as they see fit. diff --git a/_drafts/inbetween-posts/2024-10-10-capitalism-london.md b/_drafts/inbetween-posts/2024-10-10-capitalism-london.md index 9c8125c09e312..9f32e49ee8a21 100644 --- a/_drafts/inbetween-posts/2024-10-10-capitalism-london.md +++ b/_drafts/inbetween-posts/2024-10-10-capitalism-london.md @@ -10,10 +10,14 @@ categories: @@ -22,6 +26,7 @@ ill need quotes from famous economists? along the lines of; - the goal of capitalism is financial democracy. - capitalism is the best system for allocating resources. +- people are __rewarded for their contributions to society__, with a token, we call this money. they are __free__ to spend that token as they see fit. - --> @@ -35,9 +40,8 @@ commoners did not have the freedom to trade. (apply for a license to trade? or get allocated to work as a ???) now, a man can be his own master. - - *** + how can i build this story around a character? options; diff --git a/_drafts/technical-posts/pits/2024-08-10-pits-demo.md b/_drafts/pits/2024-08-10-pits-demo.md similarity index 100% rename from _drafts/technical-posts/pits/2024-08-10-pits-demo.md rename to _drafts/pits/2024-08-10-pits-demo.md diff --git a/_drafts/technical-posts/pits/2024-08-10-pits-flow.md b/_drafts/pits/2024-08-10-pits-flow.md similarity index 100% rename from _drafts/technical-posts/pits/2024-08-10-pits-flow.md rename to _drafts/pits/2024-08-10-pits-flow.md diff --git a/_drafts/technical-posts/point-waves/2024-10-09-pilot-waves.md b/_drafts/point-waves/2024-10-09-pilot-waves.md similarity index 100% rename from _drafts/technical-posts/point-waves/2024-10-09-pilot-waves.md rename to _drafts/point-waves/2024-10-09-pilot-waves.md diff --git a/_drafts/technical-posts/autoint/2024-10-10-history.md b/_drafts/technical-posts/autoint/2024-10-10-history.md deleted file mode 100644 index a95330e3f46a8..0000000000000 --- a/_drafts/technical-posts/autoint/2024-10-10-history.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "The history of integration" -subtitle: "Problems and solutions" -layout: post -permalink: /autoint/history -categories: - - "history" -scholar: - bibliography: "auto-int.bib" ---- - -Problems that people cared about - -- surges in electrical wires -- predicting tides -- missile guidance - -https://americanhistory.si.edu/collections/object-groups/mechanical-integrators/harmonic-analyzers-and-synthesizers - - - -## Applications - -### Tides - -Laplace's tidal equations -https://www.whoi.edu/cms/files/lecture03_21374.pdf -https://www.google.com.au/books/edition/Tides/78bE5U7TVuIC?hl=en&bshm=rime/1 - -### Planetary motion - -Antikythera -http://dlib.nyu.edu/awdl/isaw/isaw-papers/4/ - -### Bomb / missile guidance - -https://www.amazon.com/Bomber-Mafia-Temptation-Longest-Second/dp/0316296619 - - -Green's theorem - -Ball-and-disk integrator - -- the water integrator -- the mechanical integrator https://www.youtube.com/watch?v=s-y_lnzWQjk -- ford's integrator -- planimeter -- harmonic analyser -- longimeter https://en.wikipedia.org/wiki/Steinhaus_longimeter \ No newline at end of file diff --git a/_drafts/inbetween-posts/tvs/2024-11-01-docs.md b/_drafts/tvs/2024-11-01-docs.md similarity index 100% rename from _drafts/inbetween-posts/tvs/2024-11-01-docs.md rename to _drafts/tvs/2024-11-01-docs.md diff --git a/_drafts/inbetween-posts/tvs/2024-11-01-engima.md b/_drafts/tvs/2024-11-01-engima.md similarity index 59% rename from _drafts/inbetween-posts/tvs/2024-11-01-engima.md rename to _drafts/tvs/2024-11-01-engima.md index 6da56011032cb..db7f7a8c1e2eb 100644 --- a/_drafts/inbetween-posts/tvs/2024-11-01-engima.md +++ b/_drafts/tvs/2024-11-01-engima.md @@ -1,12 +1,14 @@ --- -title: A tutorial on ciphers and enigma -subtitle: "Code breaking" +title: "A tutorial on ciphers" +subtitle: "and the Engima machine" layout: post permalink: /turing-vs-scherbius/enigma/ categories: - "tutorial" --- +Note: All the interactive ciphers only support lower case letters. + - - ## Cesar Cipher +A Cesar cipher is one of the simplest ciphers. You simply shift each letter by a fixed amount. If we are shifting by 2, then a$\to$c, b$\to$d, ..., z$\to$b. + +This cipher can be generated by the cyclic group of integers modulo 26. + Enter a string to see it shifted by positions:
@@ -70,17 +74,22 @@ function shiftCipher(input, shift) { ## Substitution cipher -An arbitrary permutation of the alphabet. +A substitution cipher is the bijective mapping of the alphabet to itself. Or in other words, it is a permutation of the alphabet. Or in other other words, it is a reordering / scrabling of the alphabet. + +This cipher can be generated by the symmetric group of integers modulo 26. +
abcdefghijklmnopqrstuvwxyz
+Note. This substitution string must contain all 26 letters of the alphabet.
+

Substituted Text:

@@ -109,7 +118,7 @@ function substitutionCipher(input, substitution) { result += char; continue; } else { - result += alphabet[index]; + result += alphabet[index % 26]; } } @@ -120,11 +129,14 @@ function substitutionCipher(input, substitution) { ### A stepping substitution cipher -This is a simple substitution cipher where the substitution changes every time a letter is used. +Here we take a substitution cipher and shift-by-one (via the Ceasar cipher above) the substitution string. + +Each time we shift-by-one we call a 'step'. +A step is taken each time we press 'Enter'.
-

Stepper:

+

Step:

@@ -151,4 +163,50 @@ function checkEnterStepping(event) { document.getElementById('inputSteppingSubstitution').value = updated_sub; } } - \ No newline at end of file + + + +## Engima + +Is essentially three stepping substitution ciphers linked together. + +![]({{ site.baseurl }}/assets/tvs/enigma-action.png) + +Each 'rotor' is a stepping substitution cipher. + +The rate of stepping is different for each rotor. + +- The first rotor steps every time a new letter is entered. +- The second rotor steps every 26 letters (or full rotation of the first rotor). +- The third rotor steps every 26$\times$26 letters (or full rotation of the second rotor). + +Engima also comes with; + +- a plugboard, which is a substitution cipher that is applied ??? +- a reflector, is a substitution cipher that is applied inbetween the rotors. + + +#### The reflector + +> The reflector ensured that Enigma would be self-reciprocal; thus, with two identically configured machines, a message could be encrypted on one and decrypted on the other, without the need for a bulky mechanism to switch between encryption and decryption modes. The reflector allowed a more compact design, but it also gave Enigma the property that no letter ever encrypted to itself. This was a severe cryptological flaw that was subsequently exploited by codebreakers. + +*** + +So, setting up an Engima machine requires; +- choosing the types of rotor, +- picking initial position of each rotor, +- the plugboard and the reflector. + +## Breaking a stepping substitution cipher + +The first step is to identify the stepping rate. This can be done by looking at the frequency of letters in the cipher text. + +Knowing the design of the cipher is a massive help! + + + + + +## Resources + +- [Wikipedia](https://en.wikipedia.org/wiki/Enigma_machine) diff --git a/_drafts/inbetween-posts/tvs/2024-11-01-tvs.md b/_drafts/tvs/2024-11-01-tvs.md similarity index 99% rename from _drafts/inbetween-posts/tvs/2024-11-01-tvs.md rename to _drafts/tvs/2024-11-01-tvs.md index 4308aba48fd41..dc9bd4f2c24b3 100644 --- a/_drafts/inbetween-posts/tvs/2024-11-01-tvs.md +++ b/_drafts/tvs/2024-11-01-tvs.md @@ -4,7 +4,7 @@ subtitle: "A little video game" layout: post permalink: /turing-vs-scherbius/ categoies: - - "fun" + - "play" --- I made a game. My first! diff --git a/_drafts/tvs/2024-11-01-variants.md b/_drafts/tvs/2024-11-01-variants.md new file mode 100644 index 0000000000000..5c841988cb750 --- /dev/null +++ b/_drafts/tvs/2024-11-01-variants.md @@ -0,0 +1,5 @@ + +Variants. How do we eval? + +Fairness. +Complexity? (Length of time for ai to master. Advantage of k roll out steps, ...) diff --git a/assets/tvs/Enigma-action.png b/assets/tvs/enigma-action.png similarity index 100% rename from assets/tvs/Enigma-action.png rename to assets/tvs/enigma-action.png