Hydra function: Difference between revisions

From BusyBeaverWiki
Jump to navigation Jump to search
MrSolis (talk | contribs)
Reworded content in the page
MrSolis (talk | contribs)
Emphasized simplified rules
Line 7: Line 7:
It is named as such due its connection to the unsolved halting problems for the [[Cryptids]] [[Hydra]] and [[Antihydra]]. Due to its simplicity, simulations for both of these [[Turing machines]] utilize this function instead of what can initially be proven.
It is named as such due its connection to the unsolved halting problems for the [[Cryptids]] [[Hydra]] and [[Antihydra]]. Due to its simplicity, simulations for both of these [[Turing machines]] utilize this function instead of what can initially be proven.
== Relationship to Hydra and Antihydra==
== Relationship to Hydra and Antihydra==
Using the Hydra function, we can obtain simplified rules for Hydra and Antihydra:
{|class="wikitable"
! Hydra !! Antihydra
|-align="center"
|Let <math>C_H(a,b):=0^\infty\;\textrm{<A}\;2\;0^{3(a-2)}\;3^b\;2\;0^\infty</math>:<math display="block">\begin{array}{|lll|}\hline
0^\infty\;\textrm{A>}\;0^\infty&\xrightarrow{20}&C_H(3,0),\\
C_H(2a,0)&\xrightarrow{54a^2-48a-2}&0^\infty\;3^{9a-8}\;1\;\textrm{A>}\;2\;0^\infty,\\
C_H(2a,b+1)&\xrightarrow{54a^2-39a-5}&C_H(3a,b),\\
C_H(2a+1,b)&\xrightarrow{4b+54a^2-3a+4}&C_H(3a+1,b+2).\\\hline
\end{array}</math>
|Let <math>A_H(a,b):=0^\infty\;1^a\;0\;1^{b-4}\;\textrm{E>}\;0^\infty</math>:<math display="block">\begin{array}{|lll|}\hline
0^\infty\;\textrm{A>}\;0^\infty&\xrightarrow{11}&A_H(0,8),\\
A_H(a,2b)& \xrightarrow{2a+3b^2-1}& A_H(a+2,3b),\\
A_H(0,2b+1)&\xrightarrow{3b^2-3b-7}& 0^\infty\;\textrm{<F}\;110\;1^{3b-6}\;0^\infty,\\
A_H(a+1,2b+1)&\xrightarrow{3b^2-7}& A_H(a,3b+1).\\\hline
\end{array}</math>
|}
<div class="toccolours mw-collapsible mw-collapsed">'''Proof'''<div class="mw-collapsible-content">
Recall the high-level rules for Hydra and Antihydra:
Recall the high-level rules for Hydra and Antihydra:
{|class="wikitable"
{|class="wikitable"
Line 24: Line 42:
\end{array}</math>
\end{array}</math>
|}
|}
Already, both machines appear to have very similar functions. They have one parameter that increases exponentially with growth factor <math display="inline">\frac{3}{2}</math> and another that effectively takes a pseudo-random walk. This relationship can be strengthened through a modification of the rules. Below, the exponentially increasing variables are described by integer sequences:
Already, both machines appear to have very similar functions. They have one parameter that increases exponentially with growth factor <math display="inline">\frac{3}{2}</math> and another that effectively takes a pseudo-random walk. Below, the exponentially increasing variables are described by integer sequences:
{|class="wikitable"
{|class="wikitable"
! Hydra !! Antihydra
! Hydra !! Antihydra
Line 31: Line 49:
|<math display="block">a_0=4,a_{n+1}=\begin{cases}\frac{3a_n+4}{2}&\text{if }a_n\equiv0\pmod{2}\\\frac{3a_n+3}{2}&\text{if }a_n\equiv1\pmod{2}\end{cases}</math>
|<math display="block">a_0=4,a_{n+1}=\begin{cases}\frac{3a_n+4}{2}&\text{if }a_n\equiv0\pmod{2}\\\frac{3a_n+3}{2}&\text{if }a_n\equiv1\pmod{2}\end{cases}</math>
|}
|}
Doing this makes illustrating the transformation easier. Now we will define a new integer sequence based on the old one and discover the recursive rules for that sequence. This new sequence is <math display="inline">b_n=\frac{1}{3}a_n+2</math> and <math>b_n=a_n+4</math> for Hydra and Antihydra respectively. We start by using <math>b_{n+1}</math> instead and substituting <math>a_{n+1}</math> for its recursive formula. By doing so, we get:
This makes illustrating the transformation easier. Now we will define a new integer sequence based on the old one and discover the recursive rules for that sequence. This new sequence is <math display="inline">b_n=\frac{1}{3}a_n+2</math> and <math>b_n=a_n+4</math> for Hydra and Antihydra respectively. We start by using <math>b_{n+1}</math> instead and substituting <math>a_{n+1}</math> for its recursive formula. By doing so, we get:
{|class="wikitable"
{|class="wikitable"
! Hydra !! Antihydra
! Hydra !! Antihydra
Line 52: Line 70:
|<math display="block">b_0=8,b_{n+1}=\begin{cases}\frac{3b_n}{2}&\text{if }b_n\equiv0\pmod{2}\\\frac{3b_n-1}{2}&\text{if }b_n\equiv1\pmod{2}\end{cases}</math>
|<math display="block">b_0=8,b_{n+1}=\begin{cases}\frac{3b_n}{2}&\text{if }b_n\equiv0\pmod{2}\\\frac{3b_n-1}{2}&\text{if }b_n\equiv1\pmod{2}\end{cases}</math>
|}
|}
Now that we have demonstrated a strong similarity in the behaviour of both Turing machines, we can return to using the high-level rules. Once we do that and update the step counts, the result is:
Now that we have demonstrated a strong similarity in the behaviour of both Turing machines, we can return to using the high-level rules. Doing that while accounting for the step counts yields the final result.
{|class="wikitable"
</div></div>
! Hydra !! Antihydra
|-align="center"
|Let <math>C(a,b):=0^\infty\;\textrm{<A}\;2\;0^{3(a-2)}\;3^b\;2\;0^\infty</math>:<math display="block">\begin{array}{|lll|}\hline
0^\infty\;\textrm{A>}\;0^\infty&\xrightarrow{20}&C(3,0),\\
C(2a,0)&\xrightarrow{54a^2-48a-2}&0^\infty\;3^{9a-8}\;1\;\textrm{A>}\;2\;0^\infty,\\
C(2a,b+1)&\xrightarrow{54a^2-39a-5}&C(3a,b),\\
C(2a+1,b)&\xrightarrow{4b+54a^2-3a+4}&C(3a+1,b+2).\\\hline
\end{array}</math>
|Let <math>A(a,b):=0^\infty\;1^a\;0\;1^{b-4}\;\textrm{E>}\;0^\infty</math>:<math display="block">\begin{array}{|lll|}\hline
0^\infty\;\textrm{A>}\;0^\infty&\xrightarrow{11}&A(0,8),\\
A(a,2b)& \xrightarrow{2a+3b^2-1}& A(a+2,3b),\\
A(0,2b+1)&\xrightarrow{3b^2-3b-7}& 0^\infty\;\textrm{<F}\;110\;1^{3b-6}\;0^\infty,\\
A(a+1,2b+1)&\xrightarrow{3b^2-7}& A(a,3b+1).\\\hline
\end{array}</math>
|}
==Properties==
==Properties==
The Hydra function can be rewritten as follows:
The Hydra function can be rewritten as follows:

Revision as of 04:50, 5 March 2025

A bitmap depiction of 255 iterations of the Hydra function, starting with 3 at the top.

The Hydra function is a Collatz-like function defined as: H(n)n+12n=32n={3n2if n0(mod2),3n12if n1(mod2). It is named as such due its connection to the unsolved halting problems for the Cryptids Hydra and Antihydra. Due to its simplicity, simulations for both of these Turing machines utilize this function instead of what can initially be proven.

Relationship to Hydra and Antihydra

Using the Hydra function, we can obtain simplified rules for Hydra and Antihydra:

Hydra Antihydra
Let CH(a,b):=0<A203(a2)3b20:0A>020CH(3,0),CH(2a,0)54a248a2039a81A>20,CH(2a,b+1)54a239a5CH(3a,b),CH(2a+1,b)4b+54a23a+4CH(3a+1,b+2). Let AH(a,b):=01a01b4E>0:0A>011AH(0,8),AH(a,2b)2a+3b21AH(a+2,3b),AH(0,2b+1)3b23b70<F11013b60,AH(a+1,2b+1)3b27AH(a,3b+1).
Proof

Recall the high-level rules for Hydra and Antihydra:

Hydra Antihydra
Let C(a,b):=0<A20a3b20:0A>020C(3,0),C(2a,0)6a2+20a+4033a+11A>20,C(2a,b+1)6a2+23a+10C(3a+3,b),C(2a+1,b)4b+6a2+23a+26C(3a+3,b+2). Let A(a,b):=01a01bE>0:0A>011A(0,4),A(a,2b)2a+3b2+12b+11A(a+2,3b+2),A(0,2b+1)3b2+9b10<F11013b0,A(a+1,2b+1)3b2+12b+5A(a,3b+3).

Already, both machines appear to have very similar functions. They have one parameter that increases exponentially with growth factor 32 and another that effectively takes a pseudo-random walk. Below, the exponentially increasing variables are described by integer sequences:

Hydra Antihydra
a0=3,an+1={3an+62if an0(mod2)3an+32if an1(mod2) a0=4,an+1={3an+42if an0(mod2)3an+32if an1(mod2)

This makes illustrating the transformation easier. Now we will define a new integer sequence based on the old one and discover the recursive rules for that sequence. This new sequence is bn=13an+2 and bn=an+4 for Hydra and Antihydra respectively. We start by using bn+1 instead and substituting an+1 for its recursive formula. By doing so, we get:

Hydra Antihydra
b0=3,bn+1={an+62if an0(mod2)an+52if an1(mod2) b0=8,bn+1={3an+122if an0(mod2)3an+112if an1(mod2)

After that, we can substitute an for its solution in terms of bn. What results is the following:

Hydra Antihydra
b0=3,bn+1={3(bn2)+62if 3(bn2)0(mod2)3(bn2)+52if 3(bn2)1(mod2) b0=8,bn+1={3(bn4)+122if bn40(mod2)3(bn4)+112if bn41(mod2)

We note that the if statements simplify to checking if bn is even or odd. After simplifying, we are done:

Hydra Antihydra
b0=3,bn+1={3bn2if bn0(mod2)3bn12if bn1(mod2) b0=8,bn+1={3bn2if bn0(mod2)3bn12if bn1(mod2)

Now that we have demonstrated a strong similarity in the behaviour of both Turing machines, we can return to using the high-level rules. Doing that while accounting for the step counts yields the final result.

Properties

The Hydra function can be rewritten as follows: H(2n)=3nH(2n+1)=3n+1 From this comes a way to slightly optimize the calculation. Here, s and t are positive integers with t odd. Let 0ks be an integer and Hk is the kth iterate of H. Hk(2st)=3k2sktHk(2st+1)=3k2skt+1