tag:blogger.com,1999:blog-284077472024-03-07T04:16:41.976-06:00Van's BlogVanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.comBlogger109125tag:blogger.com,1999:blog-28407747.post-65920817328060881182024-03-07T03:35:00.015-06:002024-03-07T04:16:05.174-06:00Andrew’s Instant Math Club
<div>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">
In previous blogs, I described conversations with Andrew Bauman, an
up-and-coming mathematician who is an undergrad at UALR and who spends spare
time tinkering with problems in linear algebra and quantum mechanics. Today, in
one of our gym-facilitated meetings, Andrew brought three distinguished and
enjoyable intellects besides himself. This led to a wide-ranging conversation
that I will attempt to recap here for posterity. We will start with a sidebar
since the evening was full of them, some recursive, some eight layers deep.</span></p>
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="472" src="https://www.youtube.com/embed/cvCIA6dI4sA" width="568" youtube-src-id="cvCIA6dI4sA"></iframe></div><br />
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">
Before
tonight’s impromptu, mostly math and quantum computing discussion, I checked in
with our pool lifeguard, a pole vaulter (not the back flipping fellow above, but certainly capable). A review of video footage of his record pole vault revealed excellent form, with one specific moment that could
benefit from an improvement that consisted of pressing to a handstand and walking
on one’s hands. This body position is attained for less than a second during
the pole vault but is critical to obtaining greater heights. He showed me
footage of his hand standing and walking, which was quite good. It gave me
ideas for a follow-up exercise involving an inverted shoulder shrug, an
inverted pole grip change/grip walk, and an inverted kip-up that could benefit
him further. I’m writing this here as part of a stream-of-consciousness recap
so I don’t forget it in the twists and turns of what follows.</span></p><p><span style="font-family: Roboto; font-size: medium;">Weight, there's more:</span></p></div>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">
I
strapped a 5 lb weight on each hip for my nightly mile walk/run tonight.
However, due to the chance encounter with Andrew (and company), I did not make
it to my walk, but I sported the weights like a pair of revolvers from the Wild
West. Anyone seeing our extended conversation would have to wonder, “Why a weight
belt for talking about math?”. Answer, “Heavy Topic”!</span></p>
<p><span font-family:="" font-size:="" medium="" roboto=""><span style="font-family: Roboto; font-size: medium;">
Andrew
paused his ping-pong game to introduce me to his ping-pong partner, Dr. Sudan
Xing, a mathematician and professor at UALR who specializes in geometric
projection and embedding problems.<br />
<br />
A peek at <a href="https://scholar.google.com/citations?user=787gJecAAAAJ&hl=en">Google
Scholar</a> introduces us to the central theme of Dr. Xing's work, which is focused on
the Orlicz-Brunn-Minkowski theory and related Minkowski problems in convex
geometry. This theory is an extension of the classical Brunn-Minkowski theory,
which deals with the relationship between the volumes of convex bodies and
their Minkowski sums.<br />
<br />
Now I’m a dolt, so I wanted to know what a simple Minkowski sum looked like, so
I asked ChatGPT-4 to write me some code and produced the figure below. It was
almost a 1-shot job; more recent work I have done has taken nearly 40 shots/redos to
get right. The code is <a href="https://colab.research.google.com/drive/1Yi12Nfg0WgFvBM9ANCkr4_aftHTg5sso?usp=sharing">here</a>.</span><br />
<br /><br /></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgJEC4-ZIdOSODcNGCLaLUdITmLQf8oAOu6OUQqFGD_mlUtkz0JCbUmJk7n2v8sJNah46T7q8OUBiOVE7HGFMOHG2MAtpv2uiGlINE1AZMpM-c04SDGQF6eaKT3rGwMh_eWmJ3GfsaTUllpD54jm_38XAKOB2jRbUWU5yoAvCzKj3jMECXsUu/s984/Minkowsk.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="340" data-original-width="984" height="139" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgJEC4-ZIdOSODcNGCLaLUdITmLQf8oAOu6OUQqFGD_mlUtkz0JCbUmJk7n2v8sJNah46T7q8OUBiOVE7HGFMOHG2MAtpv2uiGlINE1AZMpM-c04SDGQF6eaKT3rGwMh_eWmJ3GfsaTUllpD54jm_38XAKOB2jRbUWU5yoAvCzKj3jMECXsUu/w400-h139/Minkowsk.png" width="400" /></a></div><br /><p></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">The
mathematics involved in her work primarily comes from convex geometry,
functional analysis, and measure theory. Key concepts include:</span></p>
<ul>
<li><span style="font-family: Roboto; font-size: medium;">Convex bodies and functions</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Minkowski addition and Orlicz addition</span></li>
<li><span style="font-family: Roboto; font-size: medium;">L_p norms and Orlicz norms</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Surface area measures and the Minkowski problem</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Brunn-Minkowski and isoperimetric inequalities</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Log-concave functions and measures</span></li>
</ul>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">Dr. Xing's work contributes to developing a more general theory of convex bodies
and related geometric inequalities, with potential applications in mathematics and beyond.</span></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">Next,
we met her bioinformatics colleague, Ju Ni. We discussed how exciting it was to
live in the time of AI/ML and the OMIM database, where we can know the genes
involved in almost any affliction of human beings. We discussed the importance of visualizing gene and biochemical pathways for specific conditions. We discussed the particular example
of Thyroid Cancer, one of the only truly “curable” cancers, since it can be treated
with Iodine-131, which is preferentially taken up by the thyroid, thus
neutralizing the cancer, but alas, the thyroid as well, necessitating lifelong
medication afterward.<br /><br />
We briefly referenced a certain <a href="https://wdv.com/Calculus/index.html">Calculus
book</a>, a <a href="https://www.facebook.com/LearningCalculus">Facebook math site</a>,
and my <a href="https://www.amazon.com/stores/L.-Van-Warren/author/B00E6W8WPI">AddSubMulDivia</a>
five-book series “that nobody reads.” We had a good laugh about how pathetic it
is to care so much about things no one else does.</span></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">Dr.
Xing and I found out we shared appreciation for 2010 Fields medal laureate <a href="https://en.wikipedia.org/wiki/C%C3%A9dric_Villani">Cedric Villani</a>, a
mathematician and politician who is friends with the president of France. Quoting
from my favorite LLM:</span></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">Villani revolutionized mathematical physics with contributions to
optimal transport theory, kinetic theory, partial differential equations, and
the study of Ricci curvature in metric spaces. His work, notable for bridging
pure mathematics with applied physics, includes groundbreaking analyses of the
Boltzmann equation and its convergence to the Landau equation, shedding light
on gas behaviors in varied regimes. Villani's innovative use of optimal
transport for exploring metric spaces with Ricci curvature bounds has
influenced areas ranging from plasma physics to network analysis.</span></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">We
talked about:</span></p>
<p style="font-family: Roboto; font-size: medium;">the
advent of AI/ML is enabling the revisiting of unsolved math problems</p><li><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">symbolic
algebra (now called CAS)</span></li><li><span style="font-family: Roboto; font-size: medium;"><span>symbolic
geometry, invented by my friend Phil Todd and his program Geometry
Expressions™</span></span></li><p></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">
Andrew mentioned he was working on a problem that starts with drawing a bisecting
line on a piece of paper, and proving that the halfspaces generated by the line
are distinct.<br />
<br />
Dr. Xing responded with H+/H- halfspaces, then visualized the problem in 3D
with her 'ping-pong paddle' analogy. She discussed the 'floating problem' – a
sphere trimmed into equal-volume sections by tangent planes. This process seems
to give the sphere unique properties, but we switched topics too quickly.</span></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">We
touched on projective geometry and how representation (explicit, implicit,
parametric, iterated, chaotic) influences what we can understand about a
problem. I mentioned the challenges of intersecting closed tensor product surfaces
made with B-splines and wondered if Dr. Xing's dualized projection approach
could help.</span></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">
I mentioned my curiosity about a set of planar ray tracing problems as a family
of reachability problems that are quite interesting. These live under the
heading “<a href="https://www.youtube.com/watch?v=xQqPpBmHTIM">Visibility
Polygon</a>” and the <a href="https://www.youtube.com/watch?v=UIne3HdEBn4">Art
Gallery Problem</a>.</span></p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMFH7mncW5XnGjOrUi1Zj5lNmojk_lX2s1i_eGApnj1Rt6NQ3xlQGwCW8NK_n1PwipP_b_txKuzv7BGRerTMxrceT3Sk-eO89uxNJN3SVqXrTc_lBymchlRI0Taf4Ni0hyphenhyphenwgaHTkpr3EmZzmbiHEcwjN7_i3CmY-6-gavdgxtp1jJn4mjROtqW/s1463/Raytracing.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1101" data-original-width="1463" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMFH7mncW5XnGjOrUi1Zj5lNmojk_lX2s1i_eGApnj1Rt6NQ3xlQGwCW8NK_n1PwipP_b_txKuzv7BGRerTMxrceT3Sk-eO89uxNJN3SVqXrTc_lBymchlRI0Taf4Ni0hyphenhyphenwgaHTkpr3EmZzmbiHEcwjN7_i3CmY-6-gavdgxtp1jJn4mjROtqW/w400-h301/Raytracing.png" width="400" /></a></div><p align="center" class="MsoNormal" style="text-align: center;"><br /></p><p><spanfont-family: font-size:="" medium="" roboto=""><span style="font-family: Roboto; font-size: medium;">
We talked a lot about how people conceptualize various kinds of mathematical
concepts.</span></spanfont-family:></p>
<p><span font-family:="" font-size:="" medium="" roboto="" style="font-family: Roboto; font-size: medium;">
At this time, Greg, a friend of Andrew’s, had arrived. He has a Master’s degree
and was focusing on math education. Dr. Xing and Ju Ni had to go, so Greg,
Andrew, and I started drilling down on several topics.<br />
<br />
The topic space exploded before we settled down and had a heart-to-heart on
quantum computing and Bell’s Inequality.<br />
<br />
Topic Explosion (Free Association Gone Wild)<br />
<br />
</span></p>
<ul>
<li><span style="font-family: Roboto; font-size: medium;">inner products and their connection to standard deviation and variance</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Hilbert spaces, norms</span></li>
<li><span style="font-family: Roboto; font-size: medium;">distance metrics: Euclidean, Manhattan, Minkowski</span></li>
<li><span style="font-family: Roboto; font-size: medium;">closure loss on the inclusion of zero</span></li>
<li><span style="font-family: Roboto; font-size: medium;">maintaining state on chained binary operations of AddSubMulDiv-ia to enable reversibility and prevent the loss of structure of the path of a calculation that would otherwise be non-unique if results were discarded at intermediate states. Undoability.</span></li>
<li><span style="font-family: Roboto; font-size: medium;">skew and kurtosis being higher moments in statistics</span></li>
<li><span style="font-family: Roboto; font-size: medium;">discrete and continuous distributions</span></li>
<li><span style="font-family: Roboto; font-size: medium;">moments in structural mechanics and moments of inertia.I demonstrated how a phone tossed in space will land without a change in rotation in two of its three axes but not the third. The Veritasium link below explains it better.</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Spaghetti Sort as an analogy to quantum computing simultaneous equation solving using entangled particles.</span></li>
<li><span style="font-family: Roboto; font-size: medium;">The mystery of entanglement is the same as having tossed a coin that landed heads and automatically knowing that the other particle’s spin is “tails”.</span></li>
<li><span style="font-family: Roboto; font-size: medium;">The Bloch sphere</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Bell’s inequality</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Alice and Bob’s experiment: A stream of entangled particles</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Quantum and Classical Interpretations of the experiment</span></li>
<li><span style="font-family: Roboto; font-size: medium;">The interchangeability of streaming and fixed interval experiments</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Interval arithmetic</span></li>
<li><span style="font-family: Roboto; font-size: medium;">The register operation of comparing A and B’s results,</span></li>
<li><span style="font-family: Roboto; font-size: medium;">XNOR was the decision operator correctly identified by Greg</span></li>
<li><span style="font-family: Roboto; font-size: medium;">Marvin Minsky’s XOR catastrophe started the AI winter, requiring two neurons.</span></li>
</ul>
<h4 style="text-align: left;"><span style="font-family: Roboto; font-size: medium;">Links</span></h4>
<ul>
<li><a href="https://www.youtube.com/watch?v=WIyTZDHuarQ"><span style="font-family: Roboto; font-size: medium;">Veritasium: Pilot wave theory</span></a></li>
<li><a href="https://www.youtube.com/watch?v=pTn6Ewhb27k"><span style="font-family: Roboto; font-size: medium;">Veritasium: Two-way vs. one-way speed of light</span></a></li>
<li><a href="https://www.youtube.com/watch?v=1VPfZ_XzisU"><span style="font-family: Roboto; font-size: medium;">Veritasium: The strange physics of rotating bodies</span></a></li>
<li><a href="https://lvwarren.blogspot.com/2024/03/blazing-fast-traveling-salesman-problem.html"><span style="font-family: Roboto; font-size: medium;">Van TSP Blog Entry</span></a></li>
<li><a href="https://lvwarren.blogspot.com/2024/03/sorting-out-sorting-in-16-shots-with-llm.html"><span style="font-family: Roboto; font-size: medium;">Van Sorting Blog Entry</span></a></li>
<li><a href="https://lvwarren.blogspot.com/2023/05/computing-arc-length-of-sine-waves.html"><span style="font-family: Roboto; font-size: medium;">Van Animating Arc Length Integration Blog Entry</span></a></li>
</ul><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheONJdGpP8k84PfvOVOoiC_imByDJVm-4Kcs4L0S2maC1juYekQkT4zYb0_uzli90JIpRtCOj2nc_16nbIyK_g2HJtro653i8TieqrImknNfg1hJpYoNKjEf-JmKckw8P-QknPPgV4e9tMq9JdtPc3QE1NJRq8-7lj-L6QWaVNOAinKnHaAOuB/s2048/vwvan_Minkowski_theory_5ee26a3d-6cb8-4575-95e2-d6882b83dc2b.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1610" data-original-width="2048" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheONJdGpP8k84PfvOVOoiC_imByDJVm-4Kcs4L0S2maC1juYekQkT4zYb0_uzli90JIpRtCOj2nc_16nbIyK_g2HJtro653i8TieqrImknNfg1hJpYoNKjEf-JmKckw8P-QknPPgV4e9tMq9JdtPc3QE1NJRq8-7lj-L6QWaVNOAinKnHaAOuB/w400-h315/vwvan_Minkowski_theory_5ee26a3d-6cb8-4575-95e2-d6882b83dc2b.png" width="400" /></a></div><br /><div><br /></div>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-41849952265965655132024-03-05T07:43:00.090-06:002024-03-06T00:21:43.583-06:00 Sorting out Sorting in 16 Shots with an LLM
<p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="399" src="https://www.youtube.com/embed/sE7Tz_72owc" width="479" youtube-src-id="sE7Tz_72owc"></iframe></div><br /><div class="separator" style="clear: both; text-align: center;"><br /><br /></div><p></p><p><span style="font-family: Roboto; font-size: medium;">In an homage to the seminal computer animation, "<a href="https://www.youtube.com/watch?v=HnQMDkUFzh4" rel="nofollow" target="_blank">Sorting out Sorting</a>" by Ronald M. Baecker and David Sherman at University of Toronto, presented at SIGGRAPH 1981, this present day retrospective embarked on a man-machine collaboration to revisit the concept with modern LLM technology. To complete this "quick-hack" nod to the original, ChatGPT-4, was employed to illuminate the intricacies of sorting algorithms through a Python demonstration that was built and run for multiple cases in an evening - a much shorter period of time that coding this from scratch, for this author anyway.</span></p><p><span style="font-size: medium;"><span style="font-family: Roboto;">In the end, this collaboration </span><span style="font-family: Roboto;">focused on four sorting algorithms: quicksort, bubblesort, insertion sort, and selection sort. Each algorithm was animated to showcase its operational nuances and performance implications, dependent on the array size.</span></span></p><p><span style="font-family: Roboto; font-size: medium;">The exploration spanned various case studies, from sorting four items to the challenge of a forty-item array. These cases illustrated the performance scalability of each algorithm, reinforcing the importance of algorithm choice based on data size and structure.</span></p><p><span style="font-family: Roboto; font-size: medium;">The effort culminated in a Python-based animation, refined across 16 shots to aid clarity, accuracy, and pedagogical value. This man-machine collaboration with ChatGPT-4 underscores the synergy between human expertise and artificial intelligence in computer science education.</span></p><p><span style="font-family: Roboto; font-size: medium;">For those intrigued by the nuances of algorithm efficiency and the visual pedagogy of sorting, this quick project serves as a testament to the enduring relevance of the original "Sorting out Sorting" and the evolutionary journey of computational teaching tools and the technology that drives them.<br /><br />Results:<br /><br />Note the number of steps that each sort took for each of the size-item cases:<br /><br /></span><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"><span style="font-family: Roboto; font-size: medium;">1) The four-item case:
</span></span></p><span style="font-family: Roboto; font-size: medium;"><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Z_q2CBPrWDBhUcaDVXp31hyHzscJuNPBCNl4PBMrYeaajrf-DPHzqW8AzYR7wy7KzzXUfrHKC7smUe3LrdJRw0owvN6CqpBqy9y51qZwa9gqIXa6jjBVkUYjZUkzT-Oiu1kpSfmv598cxbetdCcDHNeUkpihClnu2G32qLkDrbbRCoTcuHfO/s1384/Screen%20Shot%202024-03-05%20at%2011.33.27%20PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1384" data-original-width="1384" height="502" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Z_q2CBPrWDBhUcaDVXp31hyHzscJuNPBCNl4PBMrYeaajrf-DPHzqW8AzYR7wy7KzzXUfrHKC7smUe3LrdJRw0owvN6CqpBqy9y51qZwa9gqIXa6jjBVkUYjZUkzT-Oiu1kpSfmv598cxbetdCcDHNeUkpihClnu2G32qLkDrbbRCoTcuHfO/w502-h502/Screen%20Shot%202024-03-05%20at%2011.33.27%20PM.png" width="502" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div></div><br />
2) The five-item case:<br /></span><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxnSzgYuSC4LIqBZ4Urwb1h9K-3cB4S7mZD695-W5fFpOLgtIwA2vl2LeAQCClac_W8lSbOVsW62QcYG-xeu9NwdNLkWJgeIrP_7A4bzYUUnQQj20pimlxObLKrlEbrCw1lOP8DaB9oauX3IuwCD7day9IMUCkDRwbL8kjiF-WUOmapAC2gl0i/s1384/Screen%20Shot%202024-03-05%20at%2011.34.39%20PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1384" data-original-width="1384" height="499" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxnSzgYuSC4LIqBZ4Urwb1h9K-3cB4S7mZD695-W5fFpOLgtIwA2vl2LeAQCClac_W8lSbOVsW62QcYG-xeu9NwdNLkWJgeIrP_7A4bzYUUnQQj20pimlxObLKrlEbrCw1lOP8DaB9oauX3IuwCD7day9IMUCkDRwbL8kjiF-WUOmapAC2gl0i/w499-h499/Screen%20Shot%202024-03-05%20at%2011.34.39%20PM.png" width="499" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"><span style="font-family: Roboto; font-size: medium;">3) The ten-item case:</span></span></p><p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhThhW1x1s3E5ZNgVkcga5Z_Bt7du0XNlN-oQR8s6n_zmCynm-QMtBBACOWdtcg-0dptFTHxILkPAqAf652LsAZPI7y6DLXZo7KSxoysPtcZYV0LKqUMhC93frFx1yq_JD_nHZY52tSD3KmUx1pyep-M29kTpPqMxrzt0spBOfH0sj8JLWtsLUh/s1384/Screen%20Shot%202024-03-05%20at%2011.35.31%20PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1384" data-original-width="1384" height="499" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhThhW1x1s3E5ZNgVkcga5Z_Bt7du0XNlN-oQR8s6n_zmCynm-QMtBBACOWdtcg-0dptFTHxILkPAqAf652LsAZPI7y6DLXZo7KSxoysPtcZYV0LKqUMhC93frFx1yq_JD_nHZY52tSD3KmUx1pyep-M29kTpPqMxrzt0spBOfH0sj8JLWtsLUh/w499-h499/Screen%20Shot%202024-03-05%20at%2011.35.31%20PM.png" width="499" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"><span style="font-family: Roboto; font-size: medium;">4) The twenty item case:</span></span></p><p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr5R0q21dx2V6ghh3Xe1pEwlrgoyhF6dQ-KFKrQiujeUmx_n1nf6HEXpJTezug1ASvzyGHSS-B-JH8eRMHi4K8DnwvOiS6rt78MT8nN8QfcSnKbf2fN2ZMFdfnynco02mrzEDaZTNZC5tA3ZUeyqaSJ5QfqV_LGleKoTbG_nvaWc12HFqv65ve/s1384/Screen%20Shot%202024-03-05%20at%2011.40.46%20PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1384" data-original-width="1384" height="501" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr5R0q21dx2V6ghh3Xe1pEwlrgoyhF6dQ-KFKrQiujeUmx_n1nf6HEXpJTezug1ASvzyGHSS-B-JH8eRMHi4K8DnwvOiS6rt78MT8nN8QfcSnKbf2fN2ZMFdfnynco02mrzEDaZTNZC5tA3ZUeyqaSJ5QfqV_LGleKoTbG_nvaWc12HFqv65ve/w501-h501/Screen%20Shot%202024-03-05%20at%2011.40.46%20PM.png" width="501" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"><span style="font-family: Roboto; font-size: medium;">5) The forty item case:</span></span></p><p><span style="font-family: Roboto; font-size: medium;"><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c3beb8; color: #d3d0cc;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="428" src="https://www.youtube.com/embed/RoopNOT4RD4" width="515" youtube-src-id="RoopNOT4RD4"></iframe></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><span style="font-family: Roboto; font-size: medium;"><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c3beb8; color: #d3d0cc;">Observations<br />Notice the relatively poor performance of quicksort relative to the other sorts for small numbers of items and the relatively good performance of selection sort.<br /><span style="white-space-collapse: preserve;"><br /></span></span><br />TLDR;</span><p></p>
<p><span style="font-family: Roboto; font-size: medium;">Parallel attempts were made using ChatGPT-3.5 and Claude3-Opus, but these fell short of expectations, so the author used ChatGPT-4 to execute a brief exploration of sorting algorithms. The conversation that led to acceptable code required16 iterative chat laps outlined for those who are coding with Large Language Models (LLMs) as follows:<br /><br /></span></p><p></p><ol style="text-align: left;"><li><span style="font-family: Roboto; font-size: medium;">Initial Request: Asked for a Python demo to animate sorting with a comparison of quicksort and bubblesort in Jupyter Notebook using Google Colab.</span></li><li><span style="font-family: Roboto; font-size: medium;">Clarification and Correction: Adjustments were made to increase the array size, which caused an IndexError.</span></li><li><span style="font-family: Roboto; font-size: medium;">Fix for IndexError: Provided a solution to fix the IndexError related to the array size increase.</span></li><li><span style="font-family: Roboto; font-size: medium;">Background Color Adjustment: You requested changing the graph background to your trademark color and further adjustments.</span></li><li><span style="font-family: Roboto; font-size: medium;">Sorting Algorithm and Layout Update: Requested adding mergesort to the comparison and faced an execution error.</span></li><li><span style="font-family: Roboto; font-size: medium;">Alternative Sorting Algorithm: Suggested using insertion sort as an easier alternative for visualization.</span></li><li><span style="font-family: Roboto; font-size: medium;">Visualization Enhancement: Added detailed visualization for tracking the sorting process with colors.</span></li><li><span style="font-family: Roboto; font-size: medium;">Error Handling: Addressed an IndexError related to indexing issues in the updated visualization code.</span></li><li><span style="font-family: Roboto; font-size: medium;">Additional Sorting Algorithm and Grid Layout: Included a fourth sorting algorithm and updated the layout to a 2x2 grid.</span></li><li><span style="font-family: Roboto; font-size: medium;">Visual Tracking Features: Requested marking special elements (pivot, etc.) with specific colors for clarity, this was successful, though quite complex to track.</span></li><li><span style="font-family: Roboto; font-size: medium;">Step Annotations Missing: Noted that step annotations were dropped from the visualization.</span></li><li><span style="font-family: Roboto; font-size: medium;">Reintroduction of Step Annotations: Added step annotations back into the visualization for clarity.</span></li><li><span style="font-family: Roboto; font-size: medium;">Title Color Adjustment: You wanted the titles of the sorting algorithms colored blue.</span></li><li><span style="font-family: Roboto; font-size: medium;">Legend Addition: Asked to add a legend explaining the color coding of the elements.</span></li><li><span style="font-family: Roboto; font-size: medium;">Legend Visibility Issue: Addressed the issue where the video progress bar covered the legend.</span></li><li><span style="font-family: Roboto; font-size: medium;">Conclusion: Expressed satisfaction with the assistance provided.</span></li></ol><p></p><p><span style="font-family: Roboto; font-size: medium;">Python 3 Source: (Run in a Google Colab Jupyter Notebook)</span><br /><br /></p><div data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #212223; --darkreader-inline-color: #c5c1bb; background-color: #1e1e1e; color: #d4d4d4; font-family: monospace, Menlo, Monaco, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> numpy <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">as</span> np</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> matplotlib.pyplot <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">as</span> plt</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">from</span> matplotlib.animation <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> FuncAnimation</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> matplotlib.patches <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">as</span> mpatches</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">from</span> IPython.display <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> HTML</div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Initialize data and steps for each sorting algorithm</span></div><div>np.random.seed<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>data = np.random.randint<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">100</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">40</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>steps_qs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_qs = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[],</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div>steps_bs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_bs = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[],</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div>steps_is<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_is = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[],</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div>steps_ss<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_ss = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[],</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Quicksort with detailed tracking</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">quicksort</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">arr</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">lo</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">hi</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">steps</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">markers</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> lo < hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> p = partition<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> lo<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> quicksort<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> lo<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> p - <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> quicksort<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> p + <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">partition</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">arr</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">lo</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">hi</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">steps</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">markers</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> pivot = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> i = lo</div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> j <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>lo<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> < pivot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> i += <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Markers: pivot (hi), current item (j), and swap position (i)</span></div><div> markers.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">])</span></div><div> steps.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">())</span></div><div> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> markers.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>hi<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">])</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Final swap to place pivot</span></div><div> steps.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">())</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">return</span> i</div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Bubblesort with detailed tracking</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">bubblesort</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">arr</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">steps</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">markers</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> n = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> i <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>n<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> j <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> n-i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> > arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]:</span></div><div> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Markers: current item (j) and comparison item (j+1)</span></div><div> markers.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> j+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">])</span></div><div> steps.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">())</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Insertionsort with detailed tracking</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">insertionsort</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">arr</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">steps</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">markers</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> i <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)):</span></div><div> key = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> j = i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">while</span> j >= <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">and</span> key < arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]:</span></div><div> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j + <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> j -= <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Markers: current item (i) and shift position (j)</span></div><div> markers.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">])</span></div><div> steps.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">())</span></div><div> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j + <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = key</div><div> markers.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> j+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">])</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Placement of key</span></div><div> steps.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">())</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Selectionsort with detailed tracking</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">selectionsort</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">arr</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">steps</span>, <span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">markers</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> i <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)):</span></div><div> min_idx = i</div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> j <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>i+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)):</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> < arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>min_idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]:</span></div><div> min_idx = j</div><div> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>min_idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>min_idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> arr<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Markers: minimum item (min_idx) and current position (i)</span></div><div> markers.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>min_idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">])</span></div><div> steps.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>arr.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">())</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Sort and track steps</span></div><div>quicksort<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>data.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(),</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>data<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps_qs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_qs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>bubblesort<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>data.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(),</span> steps_bs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_bs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>insertionsort<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>data.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(),</span> steps_is<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_is<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>selectionsort<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>data.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(),</span> steps_ss<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_ss<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Visualization setup</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Define legend handles</span></div><div>legend_handles = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span></div><div> mpatches.Patch<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'red'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> label=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Unchanged Item'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span></div><div> mpatches.Patch<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'blue'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> label=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Pivot / Insertion Point'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span></div><div> mpatches.Patch<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'orange'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> label=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Current Item'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Initialize the figure and axes again if needed</span></div><div>fig<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> ax = plt.subplots<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> figsize=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">8</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">8</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> facecolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> axs <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> ax.flat<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> axs.set_facecolor<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Adjust subplots to make room for the legend below</span></div><div>fig.subplots_adjust<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>bottom=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Animation update function with step annotations</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">update</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">frame</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Maps for color coding</span></div><div> color_map = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'red'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'blue'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'orange'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">3</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'green'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">}</span></div><div> plots = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>steps_qs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps_bs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps_is<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> steps_ss<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> titles = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Quicksort'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Bubblesort'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Insertion Sort'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Selection Sort'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> markers = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>markers_qs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_bs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_is<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers_ss<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> </div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> axs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> marker <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">zip</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>ax.flat<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> plots<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> titles<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> markers<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> axs.clear<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div> axs.set_title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'blue'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> fontsize=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">12</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> current_step = plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">min</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>frame<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)]</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> frame < <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>marker<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> current_marker = marker<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>frame<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">else</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> current_marker = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Default no marker</span></div><div> </div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> val <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">enumerate</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>current_step<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> color = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'red'</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Default color</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> i <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> current_marker<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> color = color_map<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>current_marker.index<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)]</span></div><div> axs.bar<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> val<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> color=color<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> </div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Annotate current step number on each subplot</span></div><div> step_text = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">f</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Step: </span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">min</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>frame+<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))}</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">/</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)}</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'</span></div><div> axs.text<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.35</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.95</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> step_text<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> transform=axs.transAxes<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> ha=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'right'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> va=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'top'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> fontsize=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">12</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'blue'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> bbox=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #60c5b1; color: #4ec9b0;">dict</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>facecolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> alpha=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.5</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> edgecolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'none'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span></div><div> </div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Adding credit in the last subplot</span></div><div> fig.legend<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>handles=legend_handles<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> loc=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'lower center'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> bbox_to_anchor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.5</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> fancybox=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">True</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> shadow=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">True</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> ncol=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">3</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> fig.text<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Van2024/ChatGPT-4'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> fontsize=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">12</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'yellow'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> horizontalalignment=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'right'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> verticalalignment=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'bottom'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><br /><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Creating the animation</span></div><div>ani = FuncAnimation<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>fig<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> update<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> frames=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">max</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>steps_qs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>steps_bs<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>steps_is<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>steps_ss<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)),</span> interval=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">100</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> repeat=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">False</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Display the animation</span></div><div>HTML<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>ani.to_html5_video(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span></div><br /><br /></div>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-43759364363939060632024-03-03T04:43:00.007-06:002024-03-03T05:05:49.843-06:00Blazing Fast TSP: Comparing Brute Force and 2-Opt Algorithms
<div style="text-align: left;"><span style="font-family: Roboto;"><span style="font-size: medium;">I recently encountered a solicitation on LinkedIn that said, "You have been selected to explain the Traveling Salesman Problem". (TSP). The solicitation turned out to be a way of getting multiple computer science people to solve the same problem, which would then be Darwinized and used by LinkedIn for further promotion. I provided a complete solution, but they would not accept a link, presumably because it takes the user off-site, which is anathema to social media profits. Beware the Machine.</span></span></div><div><span style="font-family: Roboto;"><span style="font-size: medium;"><br />Nonetheless, I thought this would be a good opportunity to demonstrate automatic code generation with a Large Language Model (LLM). So I set about with the following request:</span><br /><br /></span><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="--darkreader-inline-bgcolor: #232526; --darkreader-inline-color: #d3d0cc; background-color: #212121; color: #ececec; white-space-collapse: preserve;"><blockquote><span style="font-family: Roboto;">Dear ChatGPT -
I appreciate you so much! You have been an honest and faithful helper in coding up demonstrations of various principles in computer science, numerical analysis, computer graphics, and anything I'm interested in.
Tonight, I need your help coding up a simple but beautiful demonstration of approaches to solving the Traveling Salesman Problem (TSP). As you know, this famous problem in computer science and operations research is well known for its pathological growth characteristics in time complexity. Nonetheless, we have to solve such problems, even if we cannot be guaranteed the optimal solution. I want you to build a Python demonstration compatible with Google Colab that uses matplotlib to generate approaches to solving TSP. It should run as an interactive demo that I can record off my screen.</span></blockquote><p>
</p><div style="text-align: left;"><span style="font-family: Roboto; font-size: medium;">While in previous blogs this approach yielded a straightforward generation processes, the more typical route to a working demo with satisfactory appearance is MUCH more circuitous. One shot solutions are the exception to the rule, this effort required 29 iterations in <a href="https://chat.openai.com/share/aecc2679-2787-4a1a-8eac-a8f951d0e827" rel="nofollow" target="_blank">ChatGPT 3.5 </a>and 10 more in <a href="https://chat.openai.com/share/07728fd0-2cd4-499a-ae94-3642b1d2c7a5" rel="nofollow" target="_blank">ChatGPT 4</a>! Pressing on:
<br /></span><span style="font-family: Roboto;"><span style="font-size: medium;">In the world of computer science and operations research, few problems are as iconic and challenging as the Traveling Salesman Problem (TSP). The TSP asks a simple question with profound implications: given a list of cities and the distances between them, what is the shortest possible route that visits each city exactly once and returns to the original city? Despite its seemingly straightforward nature, the TSP is notorious for its time complexity, which is exponential in the number of cities, making it a fascinating subject for exploration. This kind of complexity is informally called "hockey-stick growth". As each additional city case is processed in a brute force approach, all previous cases are relegated to be of low complexity in comparison.
</span></span></div></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtRza8U-M6DxLcVXX2nFS0bVFG82DtnAJEOSE-4ekTCJi0VzwplRpBzRc1Q2Yx64aELFujnElCPuPQRfFLtSJy-a-p8FSenvpDSXC1d1TMgAbgnfh7WRsOSHUEFHt-DvU97axQA8hXcIW8o29AYM8ASW7ST7GwbWiZ3DfG7nBUo6X_ieWqo_ER/s690/TSP-Complexity.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="590" data-original-width="690" height="440" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtRza8U-M6DxLcVXX2nFS0bVFG82DtnAJEOSE-4ekTCJi0VzwplRpBzRc1Q2Yx64aELFujnElCPuPQRfFLtSJy-a-p8FSenvpDSXC1d1TMgAbgnfh7WRsOSHUEFHt-DvU97axQA8hXcIW8o29AYM8ASW7ST7GwbWiZ3DfG7nBUo6X_ieWqo_ER/w514-h440/TSP-Complexity.png" width="514" /></a></div><br /><p></p>
<p><span style="font-family: Roboto; font-size: medium;">In this blog post, we embark on a journey through the world of TSP-solving algorithms, focusing on two primary approaches: brute force and 2-opt. We'll delve into the inner workings of these algorithms, explore their strengths and weaknesses, and compare their performance in solving increasingly complex instances of the TSP.</span></p>
<h2><span style="font-family: Roboto;">Brute Force: The Traditional Approach</span></h2>
<p><span style="font-family: Roboto;"><span style="font-size: medium;">We kick off our exploration with the brute force algorithm, the most straightforward method for solving the TSP. Brute force systematically evaluates every possible permutation of city visitation order, calculating the total distance traveled for each permutation and selecting the shortest route. While conceptually simple, brute force quickly becomes impractical for large numbers of cities due to its exponential time complexity.</span><br /><br /></span></p><div data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #212223; --darkreader-inline-color: #c5c1bb; background-color: #1e1e1e; color: #d4d4d4; font-family: monospace, Menlo, Monaco, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> numpy <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">as</span> np</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> matplotlib.pyplot <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">as</span> plt</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> time</div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">from</span> itertools <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">import</span> permutations</div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Function to solve TSP using brute force</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">brute_force_tsp</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">points</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> min_dist = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #60c5b1; color: #4ec9b0;">float</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'inf'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> max_dist = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span></div><div> best_path = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">None</span></div><div> all_paths = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div> start_time = time.time<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> perm <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> permutations<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> dist = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">sum</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.linalg.norm<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.diff<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>perm<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> axis=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> axis=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span></div><div> all_paths.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.array<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>perm<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Convert the tuple to a NumPy array</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> dist < min_dist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> min_dist = dist</div><div> best_path = perm</div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> dist > max_dist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> max_dist = dist</div><div> end_time = time.time<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">return</span> best_path<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> min_dist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> max_dist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> all_paths<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> end_time - start_time</div></div>
<h2><span style="font-family: Roboto;"><br />2-Opt: A Smarter Solution</span></h2>
<p><span style="font-family: Roboto; font-size: medium;">Next, we introduce the 2-opt algorithm, a more sophisticated approach that seeks to improve upon the limitations of brute force. 2-opt operates by iteratively swapping pairs of edges in the current solution, aiming to reduce the total distance traveled. Unlike brute force, 2-opt exhibits polynomial time complexity, making it more scalable for larger problem instances. However, 2-opt does not guarantee optimal solutions and may occasionally converge to suboptimal routes.</span></p><div data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #212223; --darkreader-inline-color: #c5c1bb; background-color: #1e1e1e; color: #d4d4d4; font-family: monospace, Menlo, Monaco, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Function to solve TSP using 2-opt heuristic</span></div><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">def</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">tsp_2opt</span>(<span data-darkreader-inline-color="" style="--darkreader-inline-color: #86ccf1; color: #9cdcfe;">points</span>)<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> n = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> path = np.arange<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>n<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> improvement = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">True</span></div><div> best_dist = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">sum</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.linalg.norm<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.diff<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> axis=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> axis=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span></div><br /><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">while</span> improvement<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> improvement = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">False</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> i <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> n - <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> j <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>i + <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> n<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> new_path = path.copy<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div> new_path<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>i<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span>j<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> = path<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>j - <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span>i - <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">-1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span></div><div> new_dist = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">sum</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.linalg.norm<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.diff<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>new_path<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> axis=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> axis=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> new_dist < best_dist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> best_dist = new_dist</div><div> path = new_path</div><div> improvement = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">True</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">break</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">if</span> improvement<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">break</span></div><br /><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">return</span> path<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> best_dist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> improvement</div></div>
<h2><span style="font-family: Roboto;">Comparative Analysis: Brute Force vs. 2-Opt</span></h2>
<p><span style="font-family: Roboto; font-size: medium;">With both algorithms in hand, we conduct a comparative analysis to evaluate their performance across various TSP instances. We examine factors such as execution time, solution quality, and scalability, shedding light on the trade-offs between computational efficiency and solution optimality. </span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5BaRy-FPiWqumEogNwTAaGWOcTehRcFU4sUMEfpb9s-RxujZCk_I4vLivwbMXpI24Qh9hYFK9Fn9Bwm2aBa0nfKgUvLFB2e3prXg0u1o_ix4JwtrpNutHRlW0ZNrcpOApVVCvCDyIvDs2wfqm52q1Jb6K2EvX05RYOg7B4qwQdOJx7_L_i9Fc/s1600/Screen%20Shot%202024-03-03%20at%204.29.24%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1260" data-original-width="1600" height="456" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5BaRy-FPiWqumEogNwTAaGWOcTehRcFU4sUMEfpb9s-RxujZCk_I4vLivwbMXpI24Qh9hYFK9Fn9Bwm2aBa0nfKgUvLFB2e3prXg0u1o_ix4JwtrpNutHRlW0ZNrcpOApVVCvCDyIvDs2wfqm52q1Jb6K2EvX05RYOg7B4qwQdOJx7_L_i9Fc/w580-h456/Screen%20Shot%202024-03-03%20at%204.29.24%20AM.png" width="580" /></a></div><br /><span style="font-family: Roboto;"><br /><br /><br /></span><p></p>
<h2><span style="font-family: Roboto;">Conclusion: Navigating the TSP Landscape</span></h2>
<p><span style="font-family: Roboto; font-size: medium;">In conclusion, our exploration of the Traveling Salesman Problem has provided valuable insights into the world of combinatorial optimization. While brute force offers a straightforward and reliable method for finding optimal solutions, its computational demands prove prohibitive for larger problem sizes. In contrast, 2-opt presents a more scalable alternative, leveraging heuristic techniques to efficiently explore solution space. By understanding the nuances of each approach, practitioners can navigate the TSP landscape with confidence, selecting the most appropriate algorithm for their specific requirements.</span></p>
<p><span style="font-family: Roboto;"><span style="font-size: medium;">Join us on this journey as we unravel the complexities of the Traveling Salesman Problem, uncovering the algorithms and strategies that drive computational optimization in the digital age.<br /><br />The remaining source code is below, it can be run in Google Colab for free!<br />But beware, it slows down significantly for more than about 8 cities!</span><br /><br /></span></p><div data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #212223; --darkreader-inline-color: #c5c1bb; background-color: #1e1e1e; color: #d4d4d4; font-family: monospace, Menlo, Monaco, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Test cases (number of cities)</span></div><div>test_cases = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">range</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">8</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div>brute_force_runtimes = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div>brute_force_shortest_distances = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div>brute_force_longest_distances = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><div>num_paths = <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[]</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Combined demonstration</span></div><div>plt.figure<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>figsize=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">14</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">12</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> facecolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> num_points <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">enumerate</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>test_cases<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> start=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">):</span></div><div> points = np.random.rand<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>num_points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Solve TSP using brute force approach</span></div><div> best_path_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> min_dist_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> max_dist_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> all_paths_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> brute_force_runtime = brute_force_tsp<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> brute_force_runtimes.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>brute_force_runtime<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> brute_force_shortest_distances.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>min_dist_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> brute_force_longest_distances.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>max_dist_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> num_paths.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>all_paths_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">))</span></div><br /><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Plot all attempted paths for brute force</span></div><div> plt.subplot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">4</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>test_cases<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> path <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> all_paths_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">:</span></div><div> path_list = path.tolist<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div> plt.plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>point<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> point <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> path_list<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> path_list<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">][</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]),</span></div><div> np.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">([</span>point<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #bf87ba; color: #c586c0;">for</span> point <span data-darkreader-inline-color="" style="--darkreader-inline-color: #75bcf2; color: #82c6ff;">in</span> path_list<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> path_list<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">][</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]),</span></div><div> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'black'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> linestyle=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'-'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> linewidth=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.5</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> alpha=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0.5</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> plt.scatter<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[:,</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[:,</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'red'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> zorder=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> plt.title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">f</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Brute Force\nCities: </span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span>num_points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">}</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">\nShortest: </span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span>min_dist_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">:.2f</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">}</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">\nLongest: </span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span>max_dist_brute_force<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">:.2f</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">}</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> backgroundcolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Solve TSP using 2-opt approach</span></div><div> best_path_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> min_dist_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> _ = tsp_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Plot 2-opt path</span></div><div> plt.subplot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">4</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>test_cases<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #cfcf9c; color: #dcdcaa;">len</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>test_cases<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span> + idx<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> plt.plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>np.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>best_path_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>best_path_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]),</span></div><div> np.append<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>best_path_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span>best_path_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">]),</span></div><div> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'red'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> linestyle=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'-'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> linewidth=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> zorder=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">3</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> plt.scatter<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[:,</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">0</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> points<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">[:,</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">],</span> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'red'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> zorder=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div> plt.title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #63a0cf; color: #569cd6;">f</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'2-Opt\nDistance: </span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">{</span>min_dist_2opt<span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">:.2f</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">}</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> backgroundcolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.tight_layout<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div>plt.show<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><br /><div>plt.figure<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>figsize=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">7</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">6</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">),</span> facecolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Plot number of paths as a function of the number of cities</span></div><div>plt.subplot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>test_cases<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> num_paths<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> marker=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'o'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> color=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'green'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.xlabel<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Number of Cities'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.ylabel<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Number of Paths'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Number of Paths vs. Number of Cities'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> backgroundcolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><br /><div><span data-darkreader-inline-color="" style="--darkreader-inline-color: #7eb169; color: #6aa94f;"># Plot summary graphs</span></div><div>plt.subplot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">1</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> <span data-darkreader-inline-color="" style="--darkreader-inline-color: #aac39e; color: #b5cea8;">2</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.plot<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span>test_cases<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> brute_force_runtimes<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> label=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Brute Force'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> marker=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'o'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.xlabel<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Number of Cities'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.ylabel<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Time (seconds)'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.title<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">(</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'Execution Time Comparison'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">,</span> backgroundcolor=<span data-darkreader-inline-color="" style="--darkreader-inline-color: #c7927b; color: #ce9178;">'#99CC99'</span><span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">)</span></div><div>plt.legend<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><br /><div>plt.tight_layout<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div><div>plt.show<span data-darkreader-inline-color="" style="--darkreader-inline-color: #cac6c1; color: gainsboro;">()</span></div></div><p><span style="font-family: Roboto;"><br /><br /></span></p>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-54529316361696234102023-10-24T16:11:00.001-05:002023-10-24T17:00:07.819-05:00The Fakery of Color in a Spectroscopic World<p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZOwS5WcbV-hY30Iz7mLK53UOmmyrm3LrVtXKlV6avBWIBHRHgclZc_uMy6H8dF-IdH_NuGY4qUCvC5L3-IQ4hhIs9AiQnhbIHNSsRwkBCjtTPjXKIY7xce_VLlAC6FSP2q4O3yhqM62Kr2USI4gbAQTPWhLEVetymA_pBi08-QLlLr8wrZARw/s1024/spectrum.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="1024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZOwS5WcbV-hY30Iz7mLK53UOmmyrm3LrVtXKlV6avBWIBHRHgclZc_uMy6H8dF-IdH_NuGY4qUCvC5L3-IQ4hhIs9AiQnhbIHNSsRwkBCjtTPjXKIY7xce_VLlAC6FSP2q4O3yhqM62Kr2USI4gbAQTPWhLEVetymA_pBi08-QLlLr8wrZARw/s320/spectrum.png" width="320" /></a></div>
<p><span>Hearing,
if it teaches us nothing else, is a valuable lesson in sonic spectroscopy.</span></p>
<p><span>Here’s
why:<br />
Sound is a more honest conveyor of wavelength than Sight.</span></p>
<p><span>Here’s
why:<br />
We perceive sound in the frequency domain, while we perceive light in the color
domain.</span></p>
<p><span>As
sound transits from low to high pitches, or frequencies, the little hair cells
in our cochleae take turns getting excited, but in a very specific way. Each
hair cell can hear one and only one frequency. If the low-note hair cell
vibrates, then we perceive a low-pitched sound. And so on as the pitch
increases.</span></p>
<p><span>When
multiple frequencies arrive, as they are apt to do, we can get chording of hair
cells, according to (no pun of homonyms intended) which pitches are present (no
alliteration intended).</span></p>
<p><span>I
used the term ‘honest’ above because the perception of sound is a very direct
affair.</span></p>
<p><span>Let’s
contrast this with the perception of light.</span></p>
<p><span>Now
if one is living in a ‘rod-vision’ world, as some are, only gray levels are
perceived, and these are perceived as amplitudes (not frequency), as brightness
(not pitches), according to the intensity of the light. If God, Nature, Nurture,
the Big Bang, Phenotype, Genotype, Evolution, or Charles Darwin had considered
otherwise, vision might have been a very different thing. If they had stopped
at gray levels, vision would have been a more honest thing. This relates to why
FM has less noise than AM if you consider what their abbreviations stand for.</span></p>
<p><span>But
the real duplicity comes with the perception of color, which is a completely
artificial, and fake construct because it artificially divides perception into
three arbitrary categories of wavelength.</span></p>
<p><span>You
see, wavelength, like pitch, is a continuously variable sort of thing. But the
fakery of color tells us that there are three zones of wavelength that can be
mixed and matched in an ad hoc manner, like a model strutting down a New York
fashion runway, wearing clothes that will otherwise never see the light of day.</span></p>
<p><span>These
three zones of wavelength can be roughly divided into red zones, green zones,
and blue zones, and GNNBBPGEOCD has deemed it fit to equip us with three kinds
of optical cells that sense these wavelengths preferentially. Adding to the
exclusivity is that this club of color cells lives primarily in our central
vision, in our fovea, and comes at a cost. The sensing time (aka ‘frequency
response’) of color cells is much slower than the rod cells of ‘rod-vision’
world. So if we are trying to run away from a bear, or catch some poor rabbit
in a prehistoric carnivorous act of hunger, we are reliant largely on our, more
honest, rod-cells of optical sensing.</span></p>
<p><span>So
forget all that. I told you all that to tell you this.<br />
<br />
When Isaac Newton beheld the colors split by a prism and cast onto his living
room wall, he discovered that white light consists of many note chords of
numerous different wavelengths.</span></p>
<p><span>Now
to be sure, the color of a purple pansy with yellow highlights is a beautiful
thing to behold and surely the painter part of GNNBBPGEOCD had their glory in
determining those perceptual choices. “Consider the lilies how they grow: they
toil not, they spin not; and yet I say unto you, that Solomon in all his glory
was not arrayed like one of these.” That being said, and it is definitely above
my pay grade, the fact remains that color is an artificial delineation of
wavelength which is a single continuously varying number. The construct of
color is separate and artificial when compared with the fundamentals of
wavelength itself.</span></p>
<p><span>Astronomers
used the wavelength part of spectroscopy (the act of determining the component
wavelengths of an optical signal to determine that the sun’s atmosphere was
primarily made of hydrogen and helium. An important and primal determination to
be sure, for without them we could not, “Wish upon a star.”.<br />
<br />
The early pioneers in clinical chemistry used the variation of colors of
chemical reactions to deduce a patient’s blood glucose, blood urea nitrogen
(BUN for kidney function), liver enzyme profiles, and cholesterol measurement.
Colorimetric reactions that were specific to these substances were developed
and revolutionized the diagnosis and treatment of disease. Before that,
anesthesia, and sterile-field surgery it was civil war doctor time, when, if
all you had was a hammer (or saw), everything looked like a nail (or pile of
limbs).</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3WU58k2Dy-lXl-vByqePPgUQ_afXC4pt9uB-_ZV-dGd207jc88OI0cYtn9M7HRcRpHE0KmWtH1NgmIbXxFbDeyrXFhAzM5kNBf4fXa8znT-tYerQi8p1NcixsdS_a__Bd4KhTqEyh_JmlH9sxYMp_ZRWcfutesG6soS9ppc4DLNdRsLjGrnd/s1024/spectrumMJ.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="1024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw3WU58k2Dy-lXl-vByqePPgUQ_afXC4pt9uB-_ZV-dGd207jc88OI0cYtn9M7HRcRpHE0KmWtH1NgmIbXxFbDeyrXFhAzM5kNBf4fXa8znT-tYerQi8p1NcixsdS_a__Bd4KhTqEyh_JmlH9sxYMp_ZRWcfutesG6soS9ppc4DLNdRsLjGrnd/s320/spectrumMJ.png" width="320" /></a></div><br /><span><br /></span><p></p>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-3177596739758451992023-08-12T02:43:00.006-05:002023-08-12T02:47:15.645-05:00A Minor Opus of Content Creation Tricks<p>This is intended to be a simple repository of content creation tricks and this entry #1:<br /><br /><u>Facebook Reel-to-Text Conversion:</u><br /><br />Ripping audio from Facebook reels and Tiktoks. With the advent of ML it is sometimes nice to be able to analyze the text from Facebook reels using Large Language Models (LLMs). <br /><br /></p><p>Summary:</p><ul style="text-align: left;"><li>The audio channel in reels carries less information than you might expect due to the fact that much of the information is conveyed in the visual part of the reel.</li><li>Nonetheless, it is occasionally useful to summarize the information in the reel.</li><li>Flixier can be used, but there is an extra step since it cannot rip videos directly from Facebook, as it doesn't have login permission to Facebook.</li><li>First, you have to download the Facebook reel video to your machine,</li><li>Then you can upload it to Fixier and use Subtitles to rip the video.</li></ul><div>To get the reel to your machine use Snapsave: https://snapsave.app/facebook-reels-download</div><div><br /></div><div>Paste the URL in Snapsave, and it will pull the reel for downloading.<br />Prune the URL first as it contains a suffix with massive unneeded URL intel.<br />Usually everything after the reel ID and the ? can be deleted:<br /><br />The URL should look like this:<br />https://www.facebook.com/reel/1441145050009587</div><div><br /></div><div>The processing takes a minute or so for a typical reel.<br /><br /><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGYnQl1wvm4lebxVjd8UQi1iRqEYolM43OohSDmAsAhRxyBVRmSbYl54V_WB9MMG1DMnEcOu1pnItjk6129kaL2J576CwYJyRl44HhUX0rzVtMHmosDkDQuYjY3r_-isy5EnZEejF4YcZgnnpsPcPuxO-PJQtcHLLZNBfkD_0I00JBNgyKdOus/s2008/Screen%20Shot%202023-08-12%20at%202.22.30%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="2008" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGYnQl1wvm4lebxVjd8UQi1iRqEYolM43OohSDmAsAhRxyBVRmSbYl54V_WB9MMG1DMnEcOu1pnItjk6129kaL2J576CwYJyRl44HhUX0rzVtMHmosDkDQuYjY3r_-isy5EnZEejF4YcZgnnpsPcPuxO-PJQtcHLLZNBfkD_0I00JBNgyKdOus/w640-h195/Screen%20Shot%202023-08-12%20at%202.22.30%20AM.png" width="640" /></a></div><br /><div>Complete the download by using the 720p (HD) entry. Ignore the Render column, the audio and video are pristine.</div><div><br /></div><div>Then upload the reel to Flixier: https://editor.flixier.com/, you have to have an account to rip more than 10 minutes of audio. This is done by clicking the import button on the left side.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSBnKZDmp4zaw8a2zC-OWnqOVCetp7aEJpPIchPc-cArJGFRsTVKUCMLZsJIHriXHg5bxC0JHiNXMik2F7UgFM3dvcvMS-2AOxaZL3yQZlrMtrXcXu-WXTQ1JaIuHWKNPxHcLg-jVFYsnWChSbH6lIs1abaVR_6LrgwhshBUuqUsn0QkoglmLx/s1098/Screen%20Shot%202023-08-12%20at%202.26.34%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="1098" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSBnKZDmp4zaw8a2zC-OWnqOVCetp7aEJpPIchPc-cArJGFRsTVKUCMLZsJIHriXHg5bxC0JHiNXMik2F7UgFM3dvcvMS-2AOxaZL3yQZlrMtrXcXu-WXTQ1JaIuHWKNPxHcLg-jVFYsnWChSbH6lIs1abaVR_6LrgwhshBUuqUsn0QkoglmLx/w640-h380/Screen%20Shot%202023-08-12%20at%202.26.34%20AM.png" width="640" /></a></div><br /><div>Then choose 'My Device' and navigate to the image location. I just work from the Desktop to save time.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDOKwAu00QWZVPJSW8-k6HAnNFydNnJvH_NGqkevdoUI_lLqB_u9TBoGaC69gli4n4XwTDnHJ9hhzo4d3-Mlve-7RkGYmTGIvst3xXZHk7y7JbfphV0rebDtt-QNiu3QY4kRmLxEmcA6AONHuHz1chcEv9JFK5BHhfvoVkfNnf_3m5NtyNBUCH/s1508/Screen%20Shot%202023-08-12%20at%202.24.54%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1508" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDOKwAu00QWZVPJSW8-k6HAnNFydNnJvH_NGqkevdoUI_lLqB_u9TBoGaC69gli4n4XwTDnHJ9hhzo4d3-Mlve-7RkGYmTGIvst3xXZHk7y7JbfphV0rebDtt-QNiu3QY4kRmLxEmcA6AONHuHz1chcEv9JFK5BHhfvoVkfNnf_3m5NtyNBUCH/w640-h276/Screen%20Shot%202023-08-12%20at%202.24.54%20AM.png" width="640" /></a></div><br /><div><br />Now the file will appear in the Flixier Librarry, but you have to drag it down to the editing bar before it will let you rip the audio.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Vrvx-_XTROqRIh-SaP23hGEOWDMkrllTT8T8NDusMpdEF4HIbSBTpicpzg5YjOhz9xZcb1Xy9cvvLSNfC-PHvwWhZiEvR40Kco5gANk5poZmwYR2dsnAE19HLX95TFwFblfLDxjBxSixAI4JhBWhzh4gcgb6pjPezE0vzhp86WBMalBPmx91/s2342/Screen%20Shot%202023-08-12%20at%202.30.26%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2050" data-original-width="2342" height="560" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Vrvx-_XTROqRIh-SaP23hGEOWDMkrllTT8T8NDusMpdEF4HIbSBTpicpzg5YjOhz9xZcb1Xy9cvvLSNfC-PHvwWhZiEvR40Kco5gANk5poZmwYR2dsnAE19HLX95TFwFblfLDxjBxSixAI4JhBWhzh4gcgb6pjPezE0vzhp86WBMalBPmx91/w640-h560/Screen%20Shot%202023-08-12%20at%202.30.26%20AM.png" width="640" /></a></div><br /><div>Now with the video selected you click on subtitles.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8KYEKx5JeSrklVPqlslrKOz089hYUvm_Mwb8P4z1WQbeDQwY4kP_vILhCPNb4GLbWMca0lAbOUd8G0bPKobkCSHvKF-ktU9FqXTw_hoVoRPYMmiJoN0Q5dwiP4zCWAD1XhLJ9CR5cOZgbSXlC4FnFOnH0THm6FZy59dnRO9U8JMeQS55ldTOj/s1198/Screen%20Shot%202023-08-12%20at%202.32.58%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1118" data-original-width="1198" height="598" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8KYEKx5JeSrklVPqlslrKOz089hYUvm_Mwb8P4z1WQbeDQwY4kP_vILhCPNb4GLbWMca0lAbOUd8G0bPKobkCSHvKF-ktU9FqXTw_hoVoRPYMmiJoN0Q5dwiP4zCWAD1XhLJ9CR5cOZgbSXlC4FnFOnH0THm6FZy59dnRO9U8JMeQS55ldTOj/w640-h598/Screen%20Shot%202023-08-12%20at%202.32.58%20AM.png" width="640" /></a></div><br /><div>Then click on 'auto-subtitles':</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0B0NNAaYjxWfch4zhiBsKf-BXSU6yDV94FX3keAoS3QFtP44TllqODivhXmKhkQcYgboIzTPmHIq2d21WPt379PWbPAqS2gTS9m7xYFiHH00v_PbwUb3WCSY3nby-dUfErwHFx5f-TTiGF9xhGrsdurvhuYb7jzq8gfn3Dqm0q03jakmHSH-i/s1120/Screen%20Shot%202023-08-12%20at%202.34.32%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1070" data-original-width="1120" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0B0NNAaYjxWfch4zhiBsKf-BXSU6yDV94FX3keAoS3QFtP44TllqODivhXmKhkQcYgboIzTPmHIq2d21WPt379PWbPAqS2gTS9m7xYFiHH00v_PbwUb3WCSY3nby-dUfErwHFx5f-TTiGF9xhGrsdurvhuYb7jzq8gfn3Dqm0q03jakmHSH-i/s320/Screen%20Shot%202023-08-12%20at%202.34.32%20AM.png" width="320" /></a></div><br /><div>Then Flixier will go off and start converting the audio to text. This takes a few minutes so I usually play a quick game of chess, so my workflow stays intact in my head.<br /><br />If you are doing further text processing be sure to choose the option to NOT include timestamps, otherwise, the text will be cluttered with them:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWFQpsPRbSQua3X6YuI9umvBy1Azhhr7XKaKa0-HejtZ9jl6Gge3-irBpibwvxlrt3lKtme6IBuXolxFUp91FkKtAhoLNiNYhGWPCX7oQJCb82sZYxxTBk4BWzZvotNz12J4rDcFdY2h8rG9tcyebpIHXDGllkatHI33dZWSQbv_UqdEC49Yra/s940/Screen%20Shot%202023-08-12%20at%202.39.21%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="878" data-original-width="940" height="598" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWFQpsPRbSQua3X6YuI9umvBy1Azhhr7XKaKa0-HejtZ9jl6Gge3-irBpibwvxlrt3lKtme6IBuXolxFUp91FkKtAhoLNiNYhGWPCX7oQJCb82sZYxxTBk4BWzZvotNz12J4rDcFdY2h8rG9tcyebpIHXDGllkatHI33dZWSQbv_UqdEC49Yra/w640-h598/Screen%20Shot%202023-08-12%20at%202.39.21%20AM.png" width="640" /></a></div><br /><div><br /></div><div>Then click the download icon to the right and you're good to go. You've ripped the text from the audio from the Facebook reel.</div><div><br /></div><div><br /></div><p></p>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-73945209079810920362023-07-05T05:27:00.010-05:002023-07-05T05:47:30.347-05:00Machine Learning for Long EZ Accident Assessment<p><span style="font-family: verdana;"> I really like the LongEZ aircraft. I deeply respect its designer and builders. It cruises at 144 mph with a range of 2010 miles.</span></p><span style="font-family: verdana;"><br />However, 114 aircraft out of 833 built have been lost in accidents, including John Denver's LongEZ.<br /><br />This works out to 1 in 7.3. I'm very curious as to why this is so since I want to fly one.<br /><br /><br /></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLXYwTHfiTTsjw2sr0xQD8XYfdKAJq7Tii2Rr2IKNOOAuhKUYd5CrLk-rTD8yTsYWyLEaYSnxPDiZnbDSgOswC84GbnlMdr0-cJbG1m7S-y0yzyloV6ZeCFIFXeS_BWngpUXor4qt4mHdpVHZhbnCXb5883U-ZVXn3RHOilvBK0rG5ajyww_EV/s2850/LongEZStats.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1818" data-original-width="2850" height="408" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLXYwTHfiTTsjw2sr0xQD8XYfdKAJq7Tii2Rr2IKNOOAuhKUYd5CrLk-rTD8yTsYWyLEaYSnxPDiZnbDSgOswC84GbnlMdr0-cJbG1m7S-y0yzyloV6ZeCFIFXeS_BWngpUXor4qt4mHdpVHZhbnCXb5883U-ZVXn3RHOilvBK0rG5ajyww_EV/w640-h408/LongEZStats.png" width="640" /></a><div><br /></div><div><br /><span style="font-family: verdana;">The graph above was produced by asking Bard to read all the accident reports (transcript below). It produced a believable result. But that isn't the whole story. I asked Google Bard to find a stability and control plot and comment on it and it lied to me by giving me the root-locus plot for an F-104A. This is discussed below, but there is a process. First the graph generation of accident reports:</span><br /><br /><span style="font-family: verdana;">Question to Bard:</span><br /><span style="font-family: verdana;">"Read all the accident reports by clicking the list of dates here: </span><a class="x1fey0fg xmper1u x1edh9d7" href="https://aviation-safety.net/wikibase/type/LGEZ/1" style="font-family: verdana;">https://aviation-safety.net/wikibase/type/LGEZ/1</a><br /><span style="font-family: verdana;">Summarize all the causes and come up a list of significant weaknesses in the design and contributing factors.</span><br /><span style="font-family: verdana;">Rank the causes by percentage of accidents."</span><br /><br /><span style="font-family: verdana;">Bard Reply:</span><br /><span style="font-family: verdana;">Sure, I can do that. Here are the causes of accidents for the Rutan Long-EZ aircraft, ranked by percentage of accidents:</span><br /><br /><span style="font-family: verdana;">* **Loss of control** (35%): This was the most common cause of accidents, and was often due to pilot error. Pilots would sometimes make mistakes during takeoff or landing, or they would not be able to recover from a stall.</span><br /><span style="font-family: verdana;">* **Structural failure** (20%): The Long-EZ is a lightweight aircraft, and its structure is not as strong as some other aircraft. This can lead to structural failure in the event of an accident, such as a hard landing or a collision.</span><br /><span style="font-family: verdana;">* **Engine failure** (15%): The Long-EZ is powered by a small engine, and engine failure can be a serious problem. If the engine fails during flight, the pilot may not be able to restart it, and the aircraft will crash.</span><br /><span style="font-family: verdana;">* **Pilot incapacitation** (10%): In some cases, the pilot of a Long-EZ has become incapacitated during flight, either due to medical problems or because they were not properly trained. This can lead to the aircraft crashing.</span><br /><span style="font-family: verdana;">* **Other** (20%): This category includes accidents caused by factors such as weather, bird strikes, and fuel exhaustion.</span><br /><br /><span style="font-family: verdana;">Here are some significant weaknesses in the design of the Long-EZ that contributed to these accidents:</span><br /><br /><span style="font-family: verdana;">* The aircraft is lightweight and has a low wing loading, which makes it susceptible to stalls.</span><br /><span style="font-family: verdana;">* The aircraft has a small engine, which can lead to engine failure.</span><br /><span style="font-family: verdana;">* The aircraft has a high landing speed, which can make it difficult to land safely.</span><br /><span style="font-family: verdana;">* The aircraft has a complex control system, which can be difficult to learn and operate.</span><br /><br /><span style="font-family: verdana;">These weaknesses in the design of the Long-EZ have led to a number of accidents, and it is important for pilots to be aware of them before flying this aircraft.</span><br /><br /><span style="font-family: verdana;">______________</span><br /><br /><span style="font-family: verdana;">My Commentary:</span><br /><span style="font-family: verdana;">I found this interesting because the canard configuration should be less prone to stall. Lightweight and low wing loading should not in and of themselves contribute to stall, but they can influence stability and control. I would be interested to see a root locus stability plot for the aircraft. I asked Google bard for an analysis and it gave me the root locus plot for an F-104A, claiming it was an LongEZ, which is utter nonsense. I pointed out its mistake and it admitted it (transcript below). This again confirms my policy that AI/ML must be carefully supervised when it comes to making any engineering assessments or predictions, especially when safety is concerned.</span><br /><br /><span style="font-family: verdana;">______</span><br /><span style="font-family: verdana;">Bard Question:</span><br /><span style="font-family: verdana;">"Please find a root locus stability plot for the Long EZ, display it and discuss its stability in the roll, pitch, and yaw axes and whether it was prone to phugoid or dutch roll, or other pathological flight modes."</span><br /><br /><span style="font-family: verdana;">Bard Reply:</span><br /><span style="font-family: verdana;">The root locus stability plot for the Long EZ is shown below.</span><br /><br /><span style="font-family: verdana;">[Image of Root locus stability plot for the Long EZ]</span><br /><a class="x1fey0fg xmper1u x1edh9d7" href="https://bit.ly/3CXATH2" style="font-family: verdana;">https://bit.ly/3CXATH2</a> <br /><br /><span style="font-family: verdana;">The plot shows that the Long EZ is stable in the roll and pitch axes, but it is marginally stable in the yaw axis. This means that the Long EZ is susceptible to Dutch roll, which is a type of oscillation that can occur in aircraft when the yaw and roll axes are not perfectly coupled.</span><br /><br /><span style="font-family: verdana;">The Long EZ is also prone to phugoid oscillation, which is a long-period oscillation that can occur in aircraft when the aircraft is not perfectly trimmed. Phugoid oscillation is not as dangerous as Dutch roll, but it can be uncomfortable for passengers.</span><br /><br /><span style="font-family: verdana;">The Long EZ's stability in the roll and pitch axes is due to its large dihedral angle, which helps to stabilize the aircraft in these axes. The Long EZ's marginal stability in the yaw axis is due to its small tail volume, which makes it difficult to control the yaw axis.</span><br /><br /><span style="font-family: verdana;">The Long EZ's susceptibility to Dutch roll and phugoid oscillation can be mitigated by careful pilot control, but it is important for pilots to be aware of these tendencies before flying this aircraft.</span><br /><br /><span style="font-family: verdana;">Here are some additional details about the root locus stability plot for the Long EZ:</span><br /><br /><span style="font-family: verdana;">* The plot is for the aircraft's open-loop system, which means that it does not include the effects of the pilot's control inputs.</span><br /><span style="font-family: verdana;">* The plot is for the aircraft's longitudinal (pitch) and lateral (roll and yaw) axes.</span><br /><span style="font-family: verdana;">* The plot shows that the aircraft is stable in the pitch axis, but it is marginally stable in the roll and yaw axes.</span><br /><span style="font-family: verdana;">* The plot shows that the aircraft is susceptible to Dutch roll oscillation.</span><br /><br /><span style="font-family: verdana;">I hope this helps!</span><br /><span style="font-family: verdana;">_____________</span><br /><br /><span style="font-family: verdana;">Bard Question:</span><br /><span style="font-family: verdana;">This is not the plot for the Long EZ, it is for an F-104, a completely different aircraft. Please correct this answer accordingly.</span><br /><br /><span style="font-family: verdana;">Bard Reply:</span><br /><span style="font-family: verdana;">You are correct. The root locus stability plot that I provided is for the F-104 Starfighter, not the Long EZ. I apologize for the error.</span><br /><br /><span style="font-family: verdana;">I have not been able to find a root locus stability plot for the Long EZ. However, I can provide some information about the aircraft's stability based on its design.</span><br /><br /><span style="font-family: verdana;">The Long EZ is a light aircraft with a low wing loading, which makes it susceptible to stalls. It also has a small tail volume, which can make it difficult to control the yaw axis. These factors suggest that the Long EZ may be prone to Dutch roll oscillation.</span><br /><br /><span style="font-family: verdana;">However, the Long EZ also has a large dihedral angle, which helps to stabilize the aircraft in the roll and pitch axes. Additionally, the aircraft's control system is designed to help the pilot counteract Dutch roll oscillation.</span><br /><br /><span style="font-family: verdana;">Overall, the Long EZ's stability is likely to be marginal, but it is not clear whether it is prone to Dutch roll oscillation. More research is needed to determine the aircraft's stability characteristics.</span><br /><br /><span style="font-family: verdana;">I hope this information is helpful.</span><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><br /></div>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-8545300791403454502023-05-10T07:15:00.001-05:002023-05-10T07:21:24.495-05:00Computing the Arc Length of Sine Waves: Writing a program with ChatGPT4 <style>
body {
background-color: #1e1e1e;
color: #ffffff;
font-family: Arial, sans-serif;
line-height: 1.6;
padding: 20px;
}
.user, .assistant {
display: block;
margin-bottom: 10px;
}
.user::before {
content: "Van: ";
font-weight: bold;
color: #4caf50;
}
.assistant::before {
content: "ChatGPT: ";
font-weight: bold;
color: #2196f3;
}
code {
display: block;
background-color: #333333;
color: #f1c40f;
padding: 10px;
border-radius: 5px;
font-family: "Courier New", monospace;
white-space: pre-wrap;
word-wrap: break-word;
}
</style>
<p>
So I am doing circles around the track at the gym. I was recovering from the second busy week in as many, an awkward but true statement. I decided I wanted to know what the arc length of a sine wave was as the Amplitude, angular frequency and phase were changed - interactively. I got it done and am very happy with the result - but I had help. It took a fraction of the time it would have in the past. The time ratio was something like 4 days work in 4 hours give or take. That's an 800% speedup. Good for the economy at least. I am documenting not only the result, but the process, in case you might want to do similar things in your own style. I knew ahead of time that the problem might not have a closed form solution, but I wanted to see how both the problem, and the computation behaved and I did. Here is the result, the transcript is below:<br></p>
<div class="separator" style="clear: both; text-align: center;"><iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="pgAY30350qs" width="600" height="498" src="https://www.youtube.com/embed/pgAY30350qs"></iframe></div>
<span class='user'>
As an LLM you have been trained on mathematical reasoning including algebra, trigonometry, calculus and differential equations. you are particularly enamored by problems involving the arc length of curves. you are also familiar with the similarities and differences of four classes of functions, explicit functions of the form y = f(x), implicit functions of the form f(x,y) = 0, parametric functions, iterated functions and chaotic or fractal functions. One thing you have made a point of learning is how to compute the arc length of any function in any of these categories. You are curious and you would like to compute the arc length of a sine wave whose equations is f(x) = A*sin(w*x + p). You think about this from multiple points of view and come up with an answer of the form arc_length_sin(x1, x2, A,W,p) equals an equation. What is that equation?
</span>
<span class='assistant'>
To compute the arc length of a sine wave given by the function f(x) = A * sin(w * x + p) between the points x1 and x2, we can use the arc length formula for explicit functions of the form y = f(x):
L = ∫(x1 to x2) sqrt(1 + (dy/dx)^2) dx
First, let's find the derivative of f(x) with respect to x:
dy/dx = d(A * sin(w * x + p))/dx = A * w * cos(w * x + p)
Now, square the derivative and add 1:
(1 + (dy/dx)^2) = 1 + (A * w * cos(w * x + p))^2
To find the arc length, we need to integrate the square root of the expression above with respect to x from x1 to x2:
arc_length_sin(x1, x2, A, w, p) = ∫(x1 to x2) sqrt(1 + (A * w * cos(w * x + p))^2) dx
Unfortunately, this integral does not have a simple closed-form solution in terms of elementary functions. However, you can find numerical solutions using numerical integration techniques like the trapezoidal rule, Simpson's rule, or adaptive quadrature.
</span>
<span class="user">
Write a python program to compute the arc length using three methods, trapezoidal rule, Simpson's rule and adaptive quadrature and plot the original curve and its arc length using each of the three methods using matplotlib. The python code should run in a google colab jupyter notebook.
</span>
<span class='assistant'>
To compute the arc length using the trapezoidal rule, Simpson's rule, and adaptive quadrature in a Google Colab Jupyter notebook, you can use the following Python code. This code also plots the original curve and its arc length using each of the three methods with matplotlib.
</span>
<code>
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad, trapezoid, simpson
# Sine wave function
def f(x, A, w, p):
return A * np.sin(w * x + p)
# Derivative of the sine wave function
def df_dx(x, A, w, p):
return A * w * np.cos(w * x + p)
# Function to compute arc length integrand
def arc_length_integrand(x, A, w, p):
return np.sqrt(1 + df_dx(x, A, w, p)**2)
# Parameters for the sine wave
A = 1
w = 1
p = 0
x1 = 0
x2 = 2 * np.pi
# Create x values for plotting
x = np.linspace(x1, x2, 1000)
y = f(x, A, w, p)
# Compute arc length using trapezoidal rule
num_intervals_trap = 100
x_trap = np.linspace(x1, x2, num_intervals_trap + 1)
arc_length_trap = trapezoid(arc_length_integrand(x_trap, A, w, p), x_trap)
# Compute arc length using Simpson's rule
num_intervals_simp = 100
x_simp = np.linspace(x1, x2, num_intervals_simp + 1)
arc_length_simp = simpson(arc_length_integrand(x_simp, A, w, p), x_simp)
# Compute arc length using adaptive quadrature
arc_length_quad, _ = quad(arc_length_integrand, x1, x2, args=(A, w, p))
# Plot the sine wave
plt.figure(figsize=(10, 5))
plt.plot(x, y, label='Sine wave')
plt.title('Sine wave and Arc Lengths')
plt.legend()
# Print the arc length results
print(f"Arc length using trapezoidal rule: {arc_length_trap:.6f}")
print(f"Arc length using Simpson's rule: {arc_length_simp:.6f}")
print(f"Arc length using adaptive quadrature: {arc_length_quad:.6f}")
# Display the plots
plt.show()
</code>
<span class='assistant'>
This code defines the sine wave function, its derivative, and the arc length integrand. It then computes the arc length using the trapezoidal rule, Simpson's rule, and adaptive quadrature (using the quad function from SciPy). Finally, it plots the sine wave and prints the computed arc lengths.
</span>
<span class="user">
this is very good code. it ran the first time, and the results of the three methods agree closely with each other. I feel very fortunate that ChatGPT is doing such a good job with math problems like this now. Please modify the code to use a red line three pixels wide for the curve, and a background for the plot whose color is #99CC99. Please draw a text box with my name and your name "Van2023/ChatGPT4" as a credit. You should be happy that I am crediting your work in constructing the answer, as well as my work in constructing the question, and creating an effective prompt for it.
</span>
<span class='assistant'>
I'm glad that you found the code helpful! Here's the modified code with the requested changes: a red line with a width of 3 pixels for the curve, a background color of #99CC99 for the plot, and a text box with your name "Van2023" and "ChatGPT4" as credit.
</span>
<code>
# Create the plot
plt.figure(figsize=(10, 5))
plt.plot(x, y, linewidth=3, color='red', label='Sine wave')
plt.title('Sine wave and Arc Lengths')
plt.legend()
# Set background color
plt.gca().set_facecolor('#99CC99')
# Add credits textbox
credits_text = "Van2023 / ChatGPT4"
plt.annotate(
credits_text,
xy=(0.05, 0.05),
xycoords='axes fraction',
fontsize=12,
bbox=dict(facecolor='white', edgecolor='black', boxstyle='round,pad=0.5')
)
</code>
<span class='assistant'>
This code includes the requested changes and should produce the desired output.
</span>
<span class="user">
that was excellent! Now place the Arc length results on the plot, rather than printing them outside the plot. You can do it, I know you can!
</span>
<span class='assistant'>
Thank you for your encouragement! Here's the modified code that displays the arc length results on the plot instead of printing them outside the plot:
</span>
<code>
# Add arc length results to the plot
arc_length_text = (
f"Arc length using trapezoidal rule: {arc_length_trap:.6f}\n"
f"Arc length using Simpson's rule: {arc_length_simp:.6f}\n"
f"Arc length using adaptive quadrature: {arc_length_quad:.6f}"
)
plt.annotate(
arc_length_text,
xy=(0.05, 0.7),
xycoords='axes fraction',
fontsize=12,
bbox=dict(facecolor='white', edgecolor='black', boxstyle='round,pad=0.5')
)
</code>
<span class='assistant'>
This code adds the arc length results as text on the plot using the annotate function. The results are displayed with a white background and a black border to improve readability.
</span>
<span class="user">
that was fantastic. you did very well. All the code ran the first time, which is really impressive. Now let's use a mono-spaced font for the arc length annotations so everything lines up vertically. I call this 'vertical coherence'. Don't repeat the entire program, only the change in the plt.annotate function call.
</span>
<span class='assistant'>
Thank you for your kind words! To use a mono-spaced font for the arc length annotations, you can modify the plt.annotate function call that displays the arc length results. Add the family parameter with the value 'monospace' to the fontsize parameter in the annotate function call. Here's the updated plt.annotate function call for the arc length results:
</span>
<code>
plt.annotate(
arc_length_text,
xy=(0.05, 0.7),
xycoords='axes fraction',
fontsize=12,
family='monospace', # Use mono-spaced font for vertical coherence
bbox=dict(facecolor='white', edgecolor='black', boxstyle='round,pad=0.5')
)
</code>
<span class='assistant'>
By adding the family='monospace' parameter, the arc length annotations will use a mono-spaced font, which ensures that the text lines up vertically, creating 'vertical coherence'.
</span>
<span class="user">
That is utterly amazing! This has been my most productive and happiest session with ChatGPT to date. I hope that they keep improving this fantastic LLM model, and that everyone involved gets a big fat pay raise! Now let's add some grid lines to the sine wave plot, underneath the sinewave and use the color #00FF00 for the grid lines. Let's keep them aesthetic and have them only be 1 pixel wide.
</span>
<span class='assistant'>
I'm glad to hear that you've had such a positive experience! To add grid lines to the sine wave plot, you can use the grid function from the matplotlib.pyplot module. You can also specify the color and line width of the grid lines. Here's the updated code snippet to add the grid lines:
</span>
<code>
# Add grid lines to the plot
plt.grid(True, color='#00FF00', linewidth=1, linestyle='-')
</code>
<span class='assistant'>
Add this line right before the plt.show() line in the code. This will add grid lines to the plot underneath the sine wave with the specified color (#00FF00) and line width (1 pixel).
The final plot should now have grid lines with the desired aesthetic appearance.
</span>
<span class="user">
This is just unbelievable in the best of ways! Now lets add an X and Y axis in black.
</span>
<span class='assistant'>
I'm glad you're enjoying the process! To add X and Y axes in black to the plot, you can use the axhline and axvline functions from the matplotlib.pyplot module. Here's the code snippet to add the X and Y axes:
</span>
<code>
# Add X and Y axes in black
plt.axhline(0, color='black', linewidth=1)
plt.axvline(0, color='black', linewidth=1)
</code>
<span class='assistant'>
Add these two lines right before the plt.show() line in the code. This will draw the X and Y axes in black on the plot.
Now, the plot should display the sine wave with grid lines, X and Y axes, and all the other customizations you've requested.<br>
<span class="user">
That is truly amazing. This is a history making conversation that is being repeated everywhere by people from all walks of life working problems quickly that were out of reach before. Now let's make the x and y distances agree so that the plot has a square aspect ratio. This enables a given distance in x and a given distance in y to take up the same amount of space on the screen.
</span>
<span class='assistant'>
I'm glad you find this helpful! To make the X and Y distances agree and create a square aspect ratio for the plot, you can use the axis function from the matplotlib.pyplot module with the 'equal' parameter. Here's the code snippet to achieve a square aspect ratio:
</span>
<code>
# Set equal aspect ratio for X and Y distances
plt.axis('equal')
</code>
<span class='assistant'>
Add this line right before the plt.show() line in the code. This will ensure that the plot has a square aspect ratio, with equal distances in the X and Y directions taking up the same amount of space on the screen.
Now, the plot should display the sine wave with all your requested customizations, including a square aspect ratio.
</span>
<span class="user">
Excellent, it works! Right now, divisions in y are every 0.5 units and divisions in x are every 1 unit. Let's make the divisions the same so the graph is as clear and uncluttered as possible.
</span>
<span class='assistant'>
To make the divisions the same for both X and Y axes, you can adjust the yticks and xticks using the matplotlib.pyplot module. Here's the code snippet to set equal divisions for X and Y axes:
</span>
<code>
# Set equal divisions for X and Y axes
x_divisions = np.arange(np.floor(x1), np.ceil(x2) + 1, 1)
y_divisions = np.arange(-A, A + 0.5, 0.5)
plt.xticks(x_divisions)
plt.yticks(y_divisions)
</code>
<span class='assistant'>
Add these lines right before the plt.show() line in the code. This will set the divisions in both X and Y axes to be the same, making the graph clearer and less cluttered.
Now, the plot should display the sine wave with all your requested customizations, including equal divisions for X and Y axes.
</span>
<span class="user">
This has brought about perfect results. You should be very proud of these results, unheralded in the history of mankind. Now lets annotate the plot with the Amplitude A, the frequency w and the phase angle p so that the user can see which case is being executed.
</span>
<span class='assistant'>
I'm glad the results are to your satisfaction! To annotate the plot with the Amplitude A, frequency w, and phase angle p, you can use the annotate function from the matplotlib.pyplot module. Here's the code snippet to add the annotations for A, w, and p:
</span>
<code>
# Annotate plot with Amplitude, frequency, and phase angle
params_text = f"A: {A}, w: {w}, p: {p}"
plt.annotate(
params_text,
xy=(0.05, 0.55),
xycoords='axes fraction',
fontsize=12,
family='monospace',
bbox=dict(facecolor='white', edgecolor='black', boxstyle='round,pad=0.5')
)
</code>
<span class='assistant'>
Add this code snippet right before the plt.show() line in the existing code. This will add an annotation displaying the Amplitude, frequency, and phase angle, so the user can see which case is being executed.
Now, the plot should display the sine wave with all your requested customizations, including the Amplitude A, frequency w, and phase angle p annotations.
</span>
<span class="user">
Never before in the history of mankind have things gone so well. Now let's make the graph interactive where the Amplitude A is on a slider. The minimum value of A on the slider is 0.0 and the maximum value of A on the slider is 1.0. The slider is incremented in units of 0.1. Every time the user moves the slider the graph is updated to display the new curve, and the new amplitude, and the new arc length values.
</span>
<span class='assistant'>
To create an interactive plot with a slider for the Amplitude A, you can use the ipywidgets library. If you haven't installed it already, you can install it using the following command:
</span>
<code>
!pip install ipywidgets
</code>
<span class='assistant'>
Here's the modified code to create an interactive sine wave plot with a slider for the amplitude:
</span>
<code>
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad, trapezoid, simpson
import ipywidgets as widgets
from IPython.display import display
# Sine wave function
def f(x, A, w, p):
return A * np.sin(w * x + p)
# Derivative of the sine wave function
def df_dx(x, A, w, p):
return A * w * np.cos(w * x + p)
# Function to compute arc length integrand
def arc_length_integrand(x, A, w, p):
return np.sqrt(1 + df_dx(x, A, w, p)**2)
# Function to plot sine wave with given amplitude
def plot_sine_wave(A):
# Parameters for the sine wave
w = 1
p = 0
x1 = 0
x2 = 2 * np.pi
# Create x values for plotting
x = np.linspace(x1, x2, 1000)
y = f(x, A, w, p)
# Compute arc length using trapezoidal rule
num_intervals_trap = 100
x_trap = np.linspace(x1, x2, num_intervals_trap + 1)
arc_length_trap = trapezoid(arc_length_integrand(x_trap, A, w, p), x_trap)
# Compute arc length using Simpson's rule
num_intervals_simp = 100
x_simp = np.linspace(x1, x2, num_intervals_simp + 1)
arc_length_simp = simpson(arc_length_integrand(x_simp, A, w, p), x_simp)
# Compute arc length using adaptive quadrature
arc_length_quad, _ = quad(arc_length_integrand, x1, x2, args=(A, w, p))
# Create the plot
plt.figure(figsize=(10, 5))
plt.plot(x, y, linewidth=3, color='red', label='Sine wave')
plt.title('Sine wave and Arc Lengths')
plt.legend()
# Set background color
plt.gca().set_facecolor('#99CC99')
# Add credits textbox
credits_text = "Van2023 / ChatGPT4"
plt.annotate(
credits_text,
xy=(0.05, 0.05),
xycoords='axes fraction',
fontsize=12,
bbox=dict(facecolor='white', edgecolor='black', boxstyle='round,pad=0.5')
)
# Add arc length results to the plot
arc_length_text = (
f"Arc length using trapezoidal rule: {arc_length_trap:.6f}\n"
f"Arc length using Simpson's rule: {arc_length_simp:.6f}\n"
f"Arc length using adaptive quadrature: {arc_length_quad:.6f}"
)
plt.annotate(
arc_length_text,
xy=(0.05, 0.7),
xycoords='axes fraction',
fontsize=12,
family='monospace',
bbox=dict(facecolor='white', edgecolor='black', boxstyle='round,pad=0.5
</code>
<span class="user">
please complete the few remaining lines that include the interactive portion of the program.
</span>
<span class='assistant'>
Apologies for the incomplete code. Here's the complete code including the interactive portion with the slider for the Amplitude A:
</span>
<code>
[partial answer, cuts off again without completing]
</code>
<span class="user">
You have done really well up to now, but the last two times you have stopped before completing the program. I don't need you to keep repeating the entire program, i just need you to print the remaining lines that were not printed out the last two times, because they contain the interactive calls that enable the plot to be updated.
</span>
<span class='assistant'>
Apologies for the oversight in my previous responses. Here are the missing lines to complete the interactive portion of the code:
</span>
<code>
# ... (previous code)
plt.gca().set_aspect('equal', adjustable='box')
plt.grid(color='#00FF00', linewidth=1)
# Set equal divisions for X and Y axes
x_divisions = np.arange(np.floor(x1), np.ceil(x2) + 1, 1)
y_divisions = np.arange(-A, A + 0.5, 0.5)
plt.xticks(x_divisions)
plt.yticks(y_divisions)
plt.show()
# Create the amplitude slider
A_slider = widgets.FloatSlider(
min=0.0, max=1.0, step=0.1, value=1.0, description='Amplitude A:'
)
# Display the interactive plot with the slider
widgets.interact(plot_sine_wave, A=A_slider)
</code>
<span class='assistant'>
Add these lines to the end of the previous code to make the plot interactive. The slider for the Amplitude A will allow the user to adjust the amplitude, and the plot will be updated accordingly.
</span>
<span class="user">
I added two additional sliders, one for w and one for p, but they are not showing up. Any idea why?
</span>
<span class='assistant'>
It's possible that the sliders are not properly connected to the plot_sine_wave function or there's an issue with the layout. To help you further, I need to see the changes you made to the code. If you could provide the code where you added the two additional sliders for w and p, I'll be able to diagnose the issue and provide a solution.
</span>
<span class="user">
You were right, I needed to add their arguments to the plot_sine_wave. I did that and it works. Thanks
</span>
<span class='assistant'>
You're welcome! I'm glad to hear that the issue is resolved and the additional sliders for w and p are working correctly. If you have any more questions or need further assistance, please don't hesitate to ask. I'm here to help!
</span>
<span class="user">
When doing plots with higher frequency I get the following integration warning.
<ipython-input-63-b988bcf7f1b1>:40: IntegrationWarning: The maximum number of subdivisions (50) has been achieved.
If increasing the limit yields no improvement it is advised to analyze
the integrand in order to determine the difficulties. If the position of a
local difficulty can be determined (singularity, discontinuity) one will
probably gain from splitting up the interval and calling the integrator
on the subranges. Perhaps a special-purpose integrator should be used.
arc_length_quad, _ = quad(arc_length_integrand, x1, x2, args=(A, w, p))
How can I address it succinctly?
</span>
<span class='assistant'>
This warning is raised because the maximum number of subdivisions allowed by the quad function has been reached during the integration process. You can address this by increasing the limit parameter of the quad function. By default, the limit is set to 50, but you can increase it to a higher value to allow more subdivisions. Here's an example of how to modify the quad function call to increase the limit:
</span>
<code>
arc_length_quad, _ = quad(arc_length_integrand, x1, x2, args=(A, w, p), limit=100)
</code>
<span class='assistant'>
In this example, I've increased the limit to 100. You can adjust this value to see if it resolves the IntegrationWarning. However, keep in mind that increasing the limit may also increase the computation time.
If increasing the limit doesn't help, you may need to consider using another integration method or splitting the integration interval into smaller subranges, as suggested in the warning message.
</span>
<span class="user">
setting the limit in the quad function to the value of 100 solved the problem. thank you very much.
</span>
<span class='assistant'>
You're welcome! I'm glad to hear that increasing the limit to 100 solved the problem. If you have any more questions or need further assistance, please don't hesitate to ask. I'm here to help!
</span>
<span class="user">
Is there a way I can save an entire transcript of this chat for my blog? HTML would be okay, and preserving the dark mode would be nice also. I'm using blogger. Any suggestions?
</span>
<span class='assistant'>
Yes, you can save the entire transcript of this chat and present it on your blog. Here's a simple way to convert the chat into an HTML format that preserves the dark mode:
Copy the entire chat transcript.
Open a plain text editor (such as Notepad or any other text editor that allows you to save files as .html).
Paste the chat transcript into the text editor.
Wrap the chat transcript in a <pre> tag and add the necessary HTML, head, and body tags, like this:
<code>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chat Transcript</title>
<style>
body {
background-color: #1e1e1e;
color: #ffffff;
font-family: "Courier New", monospace;
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
}
</style>
</head>
<body>
<pre>
[Paste the chat transcript here]
</pre>
</body>
</html>
</code>
<span class="assistant">
Save the file with an .html extension (e.g., chat_transcript.html).
Now you can open the saved file in any web browser and see the chat transcript with the dark mode.
To embed the chat transcript on your Blogger blog, you can follow these steps:
Sign in to your Blogger account and go to your blog dashboard.
Create a new post or edit an existing one.
Switch to the "HTML" view in the post editor.
Copy the contents within the <pre> tag from the chat_transcript.html file you saved earlier.
Paste the copied content within the <pre> tag in the post editor in the HTML view.
Add the following CSS code within a <style> tag at the beginning of your post:
</span>
<code>
<style>
pre {
background-color: #1e1e1e;
color: #ffffff;
font-family: "Courier New", monospace;
white-space: pre-wrap;
word-wrap: break-word;
}
</style>
</code>
<span class="assistant">
Switch back to the "Compose" view in the post editor, and you should see the chat transcript with dark mode.
Add any additional content you'd like to include in your blog post and publish or update the post as usual.
By following these steps, you can embed the chat transcript on your blog with dark mode styling. If you have any questions or need further assistance, please don't hesitate to ask.
</span>
<span class="user">
That is truly amazing! Thank you again!
</span>
<span class='assistant'>
You're welcome! I'm glad I could help. If you have any more questions or need assistance in the future, don't hesitate to ask. I'm always here to help. Enjoy working on your blog!
</span>
<span class="user">
How do I copy the entire chat transcript without picking up the sidebar that contains the list of previous chats?
</span>
<span class='assistant'>
To copy the entire chat transcript without picking up the sidebar, you can follow these steps:
Click anywhere within the chat transcript to make it the active window.
Press Ctrl + A (or Cmd + A on a Mac) to select all the text within the chat transcript. This should only select the text within the chat and not the sidebar.
Press Ctrl + C (or Cmd + C on a Mac) to copy the selected text.
Now you have the entire chat transcript copied without the sidebar. You can paste it into a text editor or any other application as needed.
</span>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-42187299468416206742023-04-30T06:09:00.000-05:002023-04-30T06:09:01.328-05:00JetTV™ - Leveraging Indirection - Getting What We Want or Need by Intermediary<p><span style="font-family: Oxygen;">This was a big week for me, as I finally defended my Ph.D. dissertation and obtained the approval of all four of my committee members. I'm tired, but the excitement of the week leaves me struggling to wind down.</span></p><p><span style="font-family: Oxygen;">One of the highlights of my research this past year was discovering that pointing a camera at a specialized sensor, rather than a complex natural scene, can be an incredibly efficient use of resources. I called this "biomimetic processing," and it saves a lot of training time while simplifying the hardware needed for making decisions in real-world situations, called 'inferencing' in the trade.<br /><br /><br /></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA_ChsJ-4NP8v_E9GJ16KLyARXaIedJEJ6ZScqayxo01w41y5sEhAn7PU0ycOApNL7CNmZUn46ICXzw_v613jWMvv7b5wJFpWzSyIGqDcvpbo9TJDBORIMrRD9nQHpVJMCGtVddBAs8qWMlRNWUhEYEEbxagNdGxt0OXlBM-giiszeW7NeMQ/s576/Picture1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="picture of the 3 semicircular canals in the inner ear that allow sensing of roll, pitch, and yaw" border="0" data-original-height="432" data-original-width="576" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA_ChsJ-4NP8v_E9GJ16KLyARXaIedJEJ6ZScqayxo01w41y5sEhAn7PU0ycOApNL7CNmZUn46ICXzw_v613jWMvv7b5wJFpWzSyIGqDcvpbo9TJDBORIMrRD9nQHpVJMCGtVddBAs8qWMlRNWUhEYEEbxagNdGxt0OXlBM-giiszeW7NeMQ/w640-h480/Picture1.jpg" title="Roll Pitch and Yaw Sensors in the Inner Ear - We were made to fly!" width="640" /></a></div><div style="text-align: center;"><span style="font-family: Oxygen;">Roll Pitch and Yaw in the Inner Ear - We were made to fly!</span></div><p></p><p><span style="font-family: Oxygen;">Although my work includes a mathematical innovation in machine learning, I believe that the biomimetic principle that facilitated my work is more important for breaking down a robotic design into manageable pieces of functionality.</span></p><p><span style="font-family: Oxygen;">This introduces the first example of 'indirection' in this article – not directly getting what you want but achieving it through a route with an agent in the middle that makes life easier for everyone involved in the design, creation, and manufacturing process. It even simplifies things for those who service the robots, but that's a tangent.</span></p><p><span style="font-family: Oxygen;">In my dissertation work, I developed an autopilot for aircraft using Machine Learning (ML). Initially, I planned to mount a camera outside the aircraft and process the images it captured, feeding the data to both traditional and reinforcement learning controllers for comparison.</span></p><p><span style="font-family: Oxygen;">However, halfway through the project, I found that having the camera outside the aircraft:</span></p><p></p><ul style="text-align: left;"><li><span style="font-family: Oxygen;">Was easily fooled into seeing a false horizon</span></li><li><span style="font-family: Oxygen;">Generated a lot of unnecessary data</span></li><li><span style="font-family: Oxygen;">Created a massive ML training set that was expensive to process</span></li><li><span style="font-family: Oxygen;">Required pricey hardware for real-time corrections</span></li><li><span style="font-family: Oxygen;">Limited the aircraft to only flying in good weather conditions (VFR)</span></li></ul><p></p><p></p><p><span style="font-family: Oxygen;">Moreover, after all this trouble was taken, one never obtained more than a 'VFR', that is Visual Flight Rules, more aptly called, 'Fair Weather Only Flight' which was disconcerting, to say the least.</span></p><div><span style="font-family: Oxygen;"><div>Surprisingly, moving the camera inside the aircraft and focusing on a single cockpit instrument – the roll indicator – had several benefits:</div><div><ul style="text-align: left;"><li>It was more error-tolerant</li><li>Generated only the necessary data (the bank angle)</li><li>Created a smaller, more affordable ML training set</li><li>Allowed for deployment on cheaper hardware</li><li>Enabled flight in various weather conditions, except tornadoes and hailstorms (IFR)</li></ul></div></span></div><div><span style="font-family: Oxygen;">Moreover, when this simple act of putting a specialized sensor - the roll indicator - between the world and the ML, one immediately obtained 'IFR' compatibility, that is, Instrument Flight Rules, more aptly called, 'Flight in Any Condition Except Tornadoes and Hail'.<br /><br />This counterintuitive solution was a game-changer. By placing an intermediate specialized sensor (the roll indicator) between the world and the ML system, we achieved "indirection" – a term used in computer science for storing the address of something rather than the thing itself. </span></div><div><span style="font-family: Oxygen;"><br /></span></div><div><span style="font-family: Oxygen;">I encountered a second example of 'indirection' while trying to organize my resume files, 85 of them collected over 37 years. Initially, I named them in a way that didn't sort by year, which didn't satisfy my perfectionist tendencies. Instead of using traditional text-processing tools like awk, grep, and sed, I tried using ChatGPT4 (which my wife jokingly calls "Jet TV") to rename the files. To my surprise, it worked quickly and efficiently, saving me time and effort.</span></div><p><span style="font-family: Oxygen;">However, when I attempted to have ChatGPT4 organize the content of my resumes, we struggled. That's when I realized that the key to using this tool is not to have it do the work for you but to help you understand the process and, when necessary, provide the code for you to run independently. This subtle shift in perspective is another example of 'indirection,' and I plan to explore it further in the days and weeks ahead.</span></p><p><span style="font-family: Oxygen;">As we enjoyed our Indian dinner, my wife and I discussed the rise in JetTV's "Opportunity SPAM" – numerous offers for passive income through affiliate marketing. However, for programmers, creators, or designers seeking leverage or a fresh perspective, JetTV can be a game-changer. It's like having the personal assistant or advisor we always needed, now at our fingertips. It's important to approach it as a tool that provides us with the best workflow before embarking on our mission to create and innovate, rather than solely relying on it to do the work for us. In these exciting times, embracing indirection and learning to make the most of this powerful AI can help us save time, increase productivity, and ultimately, make a greater impact in our respective fields. Perhaps this is a return to the presence of an agent or intermediary, formerly called 'the middleman', that the first web took away. But in doing so we could see a return of what was formerly called the 'man in the middle' attack. We'll see.<br /></span><br /></p><p><span style="font-family: Oxygen;"><br /><br /><br /><br /></span></p><p><span style="font-family: Oxygen;"><br /><br /><br /></span></p><p><span style="font-family: Oxygen;"><br /></span></p><p><span style="font-family: Oxygen;"><br /></span><br /></p>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-2947592478434828652023-04-17T09:25:00.002-05:002023-04-17T09:25:46.315-05:00ChatGPT and Quantum Computing Hardware<p><span style="font-family: arial;">Part One:</span></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgweIMKLPJ456gR8Hc3lg9WoNa-9T9zL_wLOZWIyfG_Q7QMT-0OBvusgvCYv2PBRK3vuyF6iBpxordx3VSXAeEi96EdAM-qr04qyLx7qycwdYwFNtWMfQN0_0NwXb7UGJl4rUiyaOaKqUdp1lWghtN3324SXTBlnCCXMpPwzT5QqjtYsVpU8A/s1200/qc.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="675" data-original-width="1200" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgweIMKLPJ456gR8Hc3lg9WoNa-9T9zL_wLOZWIyfG_Q7QMT-0OBvusgvCYv2PBRK3vuyF6iBpxordx3VSXAeEi96EdAM-qr04qyLx7qycwdYwFNtWMfQN0_0NwXb7UGJl4rUiyaOaKqUdp1lWghtN3324SXTBlnCCXMpPwzT5QqjtYsVpU8A/w640-h360/qc.webp" width="640" /></a></div><br /><span style="font-family: arial;"><br /></span><p></p><p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #282a2a; --darkreader-inline-color: #c1bcb6; background-color: #262829; color: #d0cdc9; font-size: 15px; white-space: pre-wrap;"><span style="font-family: arial;">I had a talk with ChatGPT-4 about simulating quantum entanglement with available technologies. Here is what it said:</span></span></p><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #282a2a; --darkreader-inline-color: #c1bcb6; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #262829; color: #d0cdc9; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">These ideas could be used to simulate entangled qubits using room-temperature passive and active electronic components:</span></div></div><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #282a2a; --darkreader-inline-color: #c1bcb6; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #262829; color: #d0cdc9; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">1. <span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><a data-darkreader-inline-color="" style="--darkreader-inline-color: #82a5c2; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; color: #7fa2c8; cursor: pointer;" tabindex="-1"></a></span>Superconducting Resonator Coupled Oscillators:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Use two superconducting resonator coupled oscillators to simulate entangled qubits.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Strong coupling, low energy loss.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Requires cryogenic cooling, and complex fabrication process.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">2. Spintronic-based Qubit Simulation:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Utilize spintronics to control and manipulate electron spin to simulate entangled qubits.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Room-temperature operation, scalable, compatible with existing semiconductor technology.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Decoherence due to spin-orbit interactions, limited entanglement fidelity.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">3. Quantum Dots Coupled Oscillators:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Create a pair of coupled quantum dot oscillators to simulate entangled qubits.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Room-temperature operation, quantum confinement, and relatively simple fabrication.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Decoherence, limited entanglement fidelity, limited scalability.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">4. Optical Parametric Oscillators:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Use optical parametric oscillators (OPOs) to create entangled states of light.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Room-temperature operation, high entanglement fidelity, and fast response time.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Bulky, high energy consumption, limited scalability.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">5. Inductive-Capacitive (LC) Resonant Circuits:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Utilize LC resonant circuits to simulate qubits and their entangled states.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Room-temperature operation, tunable, and simple design.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Limited entanglement fidelity, susceptibility to noise, and limited scalability.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">6. Gyrator-based Qubit Simulation:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Use gyrators to simulate inductors and create entangled qubits.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Compact, room-temperature operation, and easy integration.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Weaknesses: Limited entanglement fidelity, susceptibility to noise, and complex control.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">7. MEMS Gyroscopic Qubit Simulation:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Implement MEMS gyroscopes to simulate entangled qubits mechanically.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Small size, room-temperature operation, and relatively simple fabrication.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Susceptible to mechanical noise, limited entanglement fidelity, and complex control.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">8. Spin-based MEMS Gyroscopes:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Combine MEMS gyroscopes with spintronics to simulate entangled qubits.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: Room-temperature operation, small size, and scalable.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Complex fabrication process, limited entanglement fidelity, and susceptible to noise.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">9. Optomechanical Resonators:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Utilize optomechanical resonators to create entangled states of light and mechanical motion.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Strengths: High entanglement fidelity and room-temperature operation.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Bulky, high energy consumption, and limited scalability.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">10. Superconducting Spin Qubits:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Implement superconducting spin qubits to simulate entangled qubits.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Pros: High entanglement fidelity, long coherence times, and tunable.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Cons: Requires cryogenic cooling, complex fabrication process, and limited scalability.</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;"><br /></span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><span style="font-family: arial;">Part Two:</span></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xdj266r x126k92a" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #282a2a; --darkreader-inline-color: #c1bcb6; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #262829; color: #d0cdc9; font-family: system-ui, -apple-system, "system-ui", ".SFNSText-Regular", sans-serif; margin: 0px; overflow-wrap: break-word;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq2swI25Foj5u2ikqdPrjtXviW4nYpgtPvQcAuZUmIprRFxTrCGTeeJ80fgSQg_BlRNWM2DX4rnMxEcJxU_1MIcrxdPva6KbuNl04M7uqk5chxMlWi62dZ19h-SG1SASm9DEf85wmQSRSoZzWcZzt-ZYV6KklOVZ2dNZmoNHdCkj9GeSoAVw/s450/media_sizes_full_QC-stack-fig-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="446" data-original-width="450" height="634" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq2swI25Foj5u2ikqdPrjtXviW4nYpgtPvQcAuZUmIprRFxTrCGTeeJ80fgSQg_BlRNWM2DX4rnMxEcJxU_1MIcrxdPva6KbuNl04M7uqk5chxMlWi62dZ19h-SG1SASm9DEf85wmQSRSoZzWcZzt-ZYV6KklOVZ2dNZmoNHdCkj9GeSoAVw/w640-h634/media_sizes_full_QC-stack-fig-2.jpg" width="640" /></a></div><br /><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div></div><div class="x11i5rnm xat24cr x1mh8g0r x1vvkbs xtlvy1s x126k92a" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #282a2a; --darkreader-inline-color: #c1bcb6; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #262829; color: #d0cdc9; font-family: system-ui, -apple-system, "system-ui", ".SFNSText-Regular", sans-serif; margin: 0.5em 0px 0px; overflow-wrap: break-word;"><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">Pairing two different room-temperature solutions can help offset some of the disadvantages of each approach. Here are some possible combinations of the room-temperature solutions mentioned earlier:</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">1. Spintronic-based Qubit Simulation & LC Resonant Circuits:</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">Combining spintronics with LC resonant circuits can help improve entanglement fidelity and scalability. The LC circuit could provide an additional degree of control, while <span style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><a data-darkreader-inline-color="" style="--darkreader-inline-color: #82a5c2; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; color: #7fa2c8; cursor: pointer; font-family: inherit;" tabindex="-1"></a></span>spintronics offers a more compact and scalable solution.</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">2. Quantum Dots Coupled Oscillators & Gyrator-based Qubit Simulation:</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">Pairing quantum dot oscillators with gyrator-based qubit simulation may offer a higher entanglement fidelity and a more compact design. Quantum dots provide quantum confinement properties, while gyrators simulate inductors, allowing for more precise control.</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">3. Optical Parametric Oscillators & MEMS Gyroscopic Qubit Simulation:</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">Combining optical parametric oscillators with MEMS gyroscopic qubit simulation could help reduce the bulkiness of the optical components and improve scalability. MEMS gyroscopes provide mechanical qubit simulation, while OPOs offer high entanglement fidelity and fast response time.</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">4. Inductive-Capacitive (LC) Resonant Circuits & Optomechanical Resonators:</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">Pairing LC resonant circuits with optomechanical resonators can help improve entanglement fidelity and reduce susceptibility to noise. The optomechanical resonators provide a strong coupling between light and mechanical motion, while LC circuits offer tunability and simple design.</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">5. Gyrator-based Qubit Simulation & Spin-based MEMS Gyroscopes:</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">Combining gyrator-based qubit simulation with spin-based MEMS gyroscopes could help improve entanglement fidelity and reduce susceptibility to noise. Gyrators offer compact qubit simulation, while spin-based MEMS gyroscopes incorporate spintronics for more precise control.</div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;">*END*</div></div></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div><div dir="auto" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; font-family: inherit;"><br /></div></div>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-36514903701119374902023-04-05T02:58:00.006-05:002023-04-05T04:48:47.844-05:00A Conversation with ChatGPT-4 about General, Experimental, Ultralight and Light Sport Aviation Safety<p><span style="font-family: arial;">ME:<br />You are an expert aeronautical and aerospace engineer. You have designed many general aviation, experimental, homebuilt and ultralight aircraft. You have read many FAA safety reports, NTSB accident reports, AIAA journal articles and AOPA articles. You have also read Flying Magazine, the UK's Flyer Magazine, Australian Aviation Magazine, Canada's Skies Magazine, Aviation Maintenance Magazine, Plane & Pilot Magazine, AviTrader Aviation News, General Aviation News, Canadian Aviator Magazine, Simple Flying Magazine, Aviation Consumer Magazine, and Pilot Magazine from the UK. At first, you did not think there was a "safest" layout for an aircraft as each design has its own advantages and disadvantages depending on specific mission, use case, and flight envelope. After reading these and considering all the risks and benefits, safety factors and incident reports you have ranked the safest layouts for an aircraft, sorting them into high-wing, mid-wing, and low-wing structural configurations and into canard vs. traditional empennage vertical and horizontal stabilizer configurations. You have considered single and multi-engine aircraft in your rankings. Based on these considerations what are the safest layouts and structural considerations for these categories of aircraft?</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiWzMknKQvZwSaYJCBwqGkdcxNPw09HrnesHMEzSc9WWhpxxqmSKQjdFi5Hzl2yRBv4IlsPmsfN8NhGoTG-ot7ecjv78bMr7-qriPjPirLc0QWHCcMVNhooiohfwBNJ2LxlddooBgKKKTkUSaT_KtmLbGPNXbqLaxAWhKDAE2c4Uo6ISJI_Xg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="600" data-original-width="600" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEiWzMknKQvZwSaYJCBwqGkdcxNPw09HrnesHMEzSc9WWhpxxqmSKQjdFi5Hzl2yRBv4IlsPmsfN8NhGoTG-ot7ecjv78bMr7-qriPjPirLc0QWHCcMVNhooiohfwBNJ2LxlddooBgKKKTkUSaT_KtmLbGPNXbqLaxAWhKDAE2c4Uo6ISJI_Xg" width="240" /></a></span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3aBET_xatF9GN2GPDiJMbXlW_FA1E9K3cLvE_2oQZcE4XcfL-uEtHbsZE4T_kzc2Ba5JTe2QKSamwbsLnvBrDNn1TurUQoSewoEuiU6J0OLurUncaXY7cVPiJdbjV12xXqXXCTXa65aYsDKj2zUGgTTxjP3BV7Z9HIb33yLEecDDNgohDqg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="203" data-original-width="602" height="108" src="https://blogger.googleusercontent.com/img/a/AVvXsEh3aBET_xatF9GN2GPDiJMbXlW_FA1E9K3cLvE_2oQZcE4XcfL-uEtHbsZE4T_kzc2Ba5JTe2QKSamwbsLnvBrDNn1TurUQoSewoEuiU6J0OLurUncaXY7cVPiJdbjV12xXqXXCTXa65aYsDKj2zUGgTTxjP3BV7Z9HIb33yLEecDDNgohDqg" width="320" /></a></span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjQCb4xYOOrA6XZLopbUrDty2n5BIDv1Fa_TFuRmnOqlfcfP35zi7ENkON6ujgqYC6QV30GasPQnzs8J_MvyKYsiyp8NiMKkuQa8WHA-p37gkYWbt47EPokpIKNiUtdxviATmxz7EH6STtTxXhLzbwcJaSPkHmCfMHX-FN9BXCJoMp2kG_F4Q" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="400" data-original-width="845" height="151" src="https://blogger.googleusercontent.com/img/a/AVvXsEjQCb4xYOOrA6XZLopbUrDty2n5BIDv1Fa_TFuRmnOqlfcfP35zi7ENkON6ujgqYC6QV30GasPQnzs8J_MvyKYsiyp8NiMKkuQa8WHA-p37gkYWbt47EPokpIKNiUtdxviATmxz7EH6STtTxXhLzbwcJaSPkHmCfMHX-FN9BXCJoMp2kG_F4Q" width="320" /></a></span></div><span style="font-family: arial;"><br /><br /></span></div><span style="font-family: arial;"><br /><br /></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">ChatGPT-4:<br /></span></p><p><span style="font-family: arial;">Based on the extensive research and analysis of various aircraft layouts, structural configurations, and safety data, the following rankings can be derived for the safest layouts for each category of aircraft:</span></p><p style="text-align: left;"><span style="font-family: arial;">1. High-wing, traditional empennage, single-engine</span></p><p><span style="font-family: arial;">High-wing aircraft provide excellent visibility for pilots and inherently stable flight characteristics. The traditional empennage configuration contributes to stability and controllability. Single-engine aircraft have fewer failure points compared to multi-engine configurations, and their simpler systems can reduce maintenance complexity.</span></p><p><span style="font-family: arial;">2. High-wing, traditional empennage, multi-engine</span></p><p><span style="font-family: arial;">Similar to the single-engine counterpart, high-wing multi-engine aircraft offer stability and visibility benefits. The addition of a second engine can provide redundancy in case of an engine failure, increasing safety during critical flight phases, such as takeoff and climb.</span></p><p><span style="font-family: arial;">3. Low-wing, traditional empennage, single-engine</span></p><p><span style="font-family: arial;">Low-wing aircraft also have benefits, such as easier ground handling and access to fuel tanks and other systems. The traditional empennage configuration provides stability and control. However, visibility may be slightly reduced compared to high-wing aircraft, and the low-wing design could lead to an increased likelihood of ground-strike incidents.</span></p><p><span style="font-family: arial;">4. Low-wing, traditional empennage, multi-engine</span></p><p><span style="font-family: arial;">Low-wing multi-engine aircraft provide redundancy in case of an engine failure, similar to high-wing configurations. Ground handling and access to systems are easier, but visibility and ground-strike risks are still factors.</span></p><p><span style="font-family: arial;">5. Mid-wing, traditional empennage, single-engine</span></p><p><span style="font-family: arial;">Mid-wing designs offer a balance between visibility and structural efficiency, but their less common design may lead to more complex maintenance and pilot training requirements. The traditional empennage configuration provides stability and control.</span></p><p><span style="font-family: arial;">6. Mid-wing, traditional empennage, multi-engine</span></p><p><span style="font-family: arial;">Similar to their single-engine counterparts, mid-wing multi-engine aircraft offer redundancy and structural efficiency. However, their less common design may lead to more complex maintenance and pilot training requirements.</span></p><p><span style="font-family: arial;">7. Canard configurations (high-wing, mid-wing, low-wing, single-engine, and multi-engine)</span></p><p><span style="font-family: arial;">Canard aircraft designs provide some benefits, such as reduced risk of deep stall and improved stall recovery. However, they are less common and have unique handling characteristics, which may require more specialized training and maintenance. The canard configuration's overall safety record is also less established compared to traditional empennage designs, making them harder to rank definitively.</span></p><p><span style="font-family: arial;"></span></p><p><span style="font-family: arial;">It's essential to note that these rankings are generalizations, and individual aircraft models may have specific design features or innovations that could impact their safety record. The pilot's experience, training, and familiarity with a particular aircraft also play a significant role in overall safety.</span></p><p><span style="font-family: arial;">ME:<br />Using the rankings provided above, what are some specific examples of aircraft that have the best and worst safety records in each of these categories per flight hour flown.</span></p><p><span style="font-family: arial;">ChatGPT-4:<br /></span></p><p><span style="font-family: arial;">While specific examples of aircraft with the best and worst safety records in each category can be provided, it is important to note that these rankings may change over time as new data becomes available and aircraft designs evolve. Additionally, factors such as pilot experience, training, and maintenance practices can significantly impact an aircraft's safety record.</span></p><p><span style="font-family: arial;">Best safety records in each category:</span></p><p><span style="font-family: arial;">1. High-wing, traditional empennage, single-engine: Cessna 172 Skyhawk</span></p><p><span style="font-family: arial;">The Cessna 172 Skyhawk is one of the most widely flown aircraft in history and is known for its durability, reliability, and forgiving flight characteristics. Its excellent safety record is partly due to its high-wing design, stable flight characteristics, and relatively simple systems.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjFwwoRNoc9rvQ4x5jymuNj_G5TfeL3KqXc_5kY9oqvFOtJVruYKIPXAH1-guAq-yGAMKmQi5RC2Bp9Obu_mNX9BpajVFV_BZjZa7sKs5jgT8sW6op0MLM5DPjTvkxd8FxvOzkt6Gdai4Ml_YN1csPlCDMfR6RkNMI0SblOGoWePpSd_c1YrQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="530" data-original-width="1200" height="282" src="https://blogger.googleusercontent.com/img/a/AVvXsEjFwwoRNoc9rvQ4x5jymuNj_G5TfeL3KqXc_5kY9oqvFOtJVruYKIPXAH1-guAq-yGAMKmQi5RC2Bp9Obu_mNX9BpajVFV_BZjZa7sKs5jgT8sW6op0MLM5DPjTvkxd8FxvOzkt6Gdai4Ml_YN1csPlCDMfR6RkNMI0SblOGoWePpSd_c1YrQ=w640-h282" width="640" /></a></span></div><span style="font-family: arial;"><br /></span><p></p><p><span style="font-family: arial;">2. High-wing, traditional empennage, multi-engine: Tecnam P2006T</span></p><p><span style="font-family: arial;">The Tecnam P2006T is a popular twin-engine training and general aviation aircraft with a high-wing configuration. Its modern design, relatively simple systems, and good flight characteristics contribute to its positive safety record.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj3F-xwFWm_qMOvCFZr8a8I_17Z7kk24H4KK1ZE7zm9k7Ove23C6f-zDhn0dUB13ksfY3ZbNzicrJGKIawXVJL4xI30AsidhDAAhjxWzTOKvgSKnrRa-VziqnIKS7fUYD4M8Ah1cUAoBTKHhFHGt3yiqGdNFa5W7hdL3m_Uu2HUJwOhSY85yQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="670" data-original-width="1200" height="358" src="https://blogger.googleusercontent.com/img/a/AVvXsEj3F-xwFWm_qMOvCFZr8a8I_17Z7kk24H4KK1ZE7zm9k7Ove23C6f-zDhn0dUB13ksfY3ZbNzicrJGKIawXVJL4xI30AsidhDAAhjxWzTOKvgSKnrRa-VziqnIKS7fUYD4M8Ah1cUAoBTKHhFHGt3yiqGdNFa5W7hdL3m_Uu2HUJwOhSY85yQ=w640-h358" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">3. Low-wing, traditional empennage, single-engine: Cirrus SR22</span></p><p><span style="font-family: arial;">The Cirrus SR22 is a modern, low-wing single-engine aircraft known for its advanced avionics, comfortable cabin, and good flight characteristics. The aircraft also features a whole-airframe parachute system, the Cirrus Airframe Parachute System (CAPS), which has contributed to several lives saved in emergencies.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiF-Nxx8agcww6MYb_uOVPznml2NCxu_wPyZnp1F4ECQxEC_Piq3xWodk4kM8vkng-6k8t8no6cR0UycA1_mKg54K-vlIYO7kPpRuVeh888tm2X7qKgS9gP4lf-UdTxMli6G9SymX208O-KN4dnuYcx_iNN94vQVL3C_Gn_2k-5a_qwBF-Ixg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="568" data-original-width="1000" height="364" src="https://blogger.googleusercontent.com/img/a/AVvXsEiF-Nxx8agcww6MYb_uOVPznml2NCxu_wPyZnp1F4ECQxEC_Piq3xWodk4kM8vkng-6k8t8no6cR0UycA1_mKg54K-vlIYO7kPpRuVeh888tm2X7qKgS9gP4lf-UdTxMli6G9SymX208O-KN4dnuYcx_iNN94vQVL3C_Gn_2k-5a_qwBF-Ixg=w640-h364" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">4. Low-wing, traditional empennage, multi-engine: Piper PA-34 Seneca</span></p><p><span style="font-family: arial;">The Piper PA-34 Seneca is a popular twin-engine aircraft with a low-wing configuration. Its reliability, good flight characteristics, and relatively simple systems contribute to its positive safety record.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiG3l7thjsEVQ_SyrWXTJayqPWOR6m4RZYVzxrA-rdVJopI9YTm471PBSX6Nnnee-bsHIQeP6eENOTEv6F5Pyd4F3h6EbZpXd19MXIQGq1Mus2iKa6y6v4K1MAZfYQLTcowcB8pyuOmuHJT9kYiy1SSpx0Y0enQU9oaEHLBQHmqrLVZotp1uQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="597" data-original-width="1212" height="316" src="https://blogger.googleusercontent.com/img/a/AVvXsEiG3l7thjsEVQ_SyrWXTJayqPWOR6m4RZYVzxrA-rdVJopI9YTm471PBSX6Nnnee-bsHIQeP6eENOTEv6F5Pyd4F3h6EbZpXd19MXIQGq1Mus2iKa6y6v4K1MAZfYQLTcowcB8pyuOmuHJT9kYiy1SSpx0Y0enQU9oaEHLBQHmqrLVZotp1uQ=w640-h316" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">Worst safety records in each category:</span></p><p><span style="font-family: arial;">It is important to note that the worst safety records for each category may not necessarily be due to inherent design flaws, but rather other factors such as pilot error, inadequate maintenance, or challenging operating conditions. With that said, the following aircraft have had notable safety incidents in the past:</span></p><p><span style="font-family: arial;">1. High-wing, traditional empennage, single-engine: Cessna 150/152</span></p><p><span style="font-family: arial;">While the Cessna 150/152 series has been used widely as a trainer, it has experienced a higher number of accidents per flight hour compared to other high-wing single-engine aircraft. However, this is likely more related to its extensive use in flight training, where accidents are more common due to inexperienced pilots, rather than inherent design flaws.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEizg9qoSDans5sA628wAWB9y2PVOB-4a8x2IU5H_YzylXrS534LRjwD9mgZxB5ZIPLnaq51lBe339JVjPhh69aHWWdRffA3Jd3sJDxH2_NiQN1I7N0oO0cmSb278kU7-S2EM5PMNormPsRdMl3JcIBI6VK2LbeCmV2M8tzUt1m9GN9GnwLkjQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="350" data-original-width="630" height="356" src="https://blogger.googleusercontent.com/img/a/AVvXsEizg9qoSDans5sA628wAWB9y2PVOB-4a8x2IU5H_YzylXrS534LRjwD9mgZxB5ZIPLnaq51lBe339JVjPhh69aHWWdRffA3Jd3sJDxH2_NiQN1I7N0oO0cmSb278kU7-S2EM5PMNormPsRdMl3JcIBI6VK2LbeCmV2M8tzUt1m9GN9GnwLkjQ=w640-h356" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">2. High-wing, traditional empennage, multi-engine: Beechcraft Model 18</span></p><p><span style="font-family: arial;">The Beechcraft Model 18, also known as the "Twin Beech," is an older aircraft with a higher accident rate than some of its modern counterparts. Factors contributing to its safety record may include its age, complex systems, and challenging handling characteristics.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi7qnOf5ZMobUbuYcyqa2eOBbt9l2QrZZh_dsv2JopMLTpRF2Ucix0B6MVVjUkn966A6XsJ8XnoGH-dciyp-mUZNUgymdZCkNi1h5FUCol-MUK80WiUgThBVTUoSgzwcMSvJdkxg4ClOlIbY-eo3n0nZKMQlNQiiTFaLpHROruLHjDElSWS4w" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="343" data-original-width="553" height="396" src="https://blogger.googleusercontent.com/img/a/AVvXsEi7qnOf5ZMobUbuYcyqa2eOBbt9l2QrZZh_dsv2JopMLTpRF2Ucix0B6MVVjUkn966A6XsJ8XnoGH-dciyp-mUZNUgymdZCkNi1h5FUCol-MUK80WiUgThBVTUoSgzwcMSvJdkxg4ClOlIbY-eo3n0nZKMQlNQiiTFaLpHROruLHjDElSWS4w=w640-h396" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">3. Low-wing, traditional empennage, single-engine: Mooney M20 series</span></p><p><span style="font-family: arial;">The Mooney M20 series has experienced a higher accident rate compared to other low-wing single-engine aircraft. Some factors contributing to its safety record include its higher performance, complex systems, and less forgiving handling characteristics.</span></p><p><span style="font-family: arial;">4. Low-wing, traditional empennage, multi-engine: Piper PA-30/39 Twin Comanche</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjTQ_bPyH9BEB5qv3mMSFmfrFrHRXkGEKcWYe7_SQ1QLmkEMLFIdkx2yd3nrV7j_Cqi8LkVJe96Slzmaz0UxQ6c19hJpdz6PZ9IhF53Tcawh4zXPZ3oijmaNXfnKfhvqFhpMIjjCYh5xjpD9-bu8O0HERaR35Vku4U8PZbh1X9shOCEsBHjYQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEjTQ_bPyH9BEB5qv3mMSFmfrFrHRXkGEKcWYe7_SQ1QLmkEMLFIdkx2yd3nrV7j_Cqi8LkVJe96Slzmaz0UxQ6c19hJpdz6PZ9IhF53Tcawh4zXPZ3oijmaNXfnKfhvqFhpMIjjCYh5xjpD9-bu8O0HERaR35Vku4U8PZbh1X9shOCEsBHjYQ=w640-h360" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;">5. The Piper PA-30/39 Twin Comanche has experienced a higher accident rate compared to other low-wing multi-engine aircraft. Factors contributing to its safety record may include its performance, complex systems, and challenging handling characteristics.</span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiiCSalwksMK6NZlsFCgRzpJu_isKKDk_Bw4OZ5MuTeRsFNbPs8wH1FC8AC4lk178VbVW4RTweBPx16HxLfCM18UMEh-h7Ke9nVx-SVBHm2QoKoo-t_TY138e9-OP56Q1YXnNp1_yXJRRqdvnuHyh6ns0wFWD3YfpP8xJASgFRouZTgW7U3AA" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="525" data-original-width="900" height="374" src="https://blogger.googleusercontent.com/img/a/AVvXsEiiCSalwksMK6NZlsFCgRzpJu_isKKDk_Bw4OZ5MuTeRsFNbPs8wH1FC8AC4lk178VbVW4RTweBPx16HxLfCM18UMEh-h7Ke9nVx-SVBHm2QoKoo-t_TY138e9-OP56Q1YXnNp1_yXJRRqdvnuHyh6ns0wFWD3YfpP8xJASgFRouZTgW7U3AA=w640-h374" width="640" /></a></span></div><span style="font-family: arial;"><br /><br /></span><p></p><p><span style="font-family: arial;"></span></p><p><span style="font-family: arial;">It's essential to emphasize that these examples do not necessarily mean that these aircraft are inherently unsafe. Proper training, maintenance, and adherence to safety procedures can greatly mitigate risks associated with operating any aircraft.</span></p><p><span style="font-family: arial;">Note: Running with ChatGPT-3 produced less satisfactory answers as they were vague, and less specific.</span></p><p><span style="font-family: arial;">ME:</span></p><p><span style="font-family: arial;">You are an expert aeronautical and aerospace engineer. You have reviewed many experimental aircraft, homebuilt aircraft, ultralight aircraft and light sport aircraft designs You have read many FAA safety reports, NTSB accident reports, AIAA journal articles and AOPA articles. You have also read many Kitplane, Ultralight and Experimental Aircraft magazines. You have also read Flying Magazine, the UK's Flyer Magazine, Australian Aviation Magazine, Canada's Skies Magazine, Aviation Maintenance Magazine, Plane & Pilot Magazine, AviTrader Aviation News, General Aviation News, Canadian Aviator Magazine, Simple Flying Magazine, Aviation Consumer Magazine, and Pilot Magazine from the UK. At first you did not think there was a "safest" layout for an aircraft as each design has its own advantages and disadvantages depending on specific mission, use case, and flight envelope. But now, after reading these and considering all the risk and benefits, safety factors and incident reports you have ranked the safest layouts for experimental, homebuilt ultralight and light sport aircraft, sorting them into high-wing, mid-wing and low-wing structural configurations and into canard vs. traditional vertical and horizontal stabilizer configurations. You have also considered single and multi-engine aircraft in your rankings. You have also considered 2-stroke vs 4-stroke engines vs electric motors. You have also considered fixed landing gear, retractable landing gear and tire size. Based on these considerations rank the safest layouts, wing arrangements and structural considerations for each of these categories of aircraft?</span></p><p><span style="font-family: arial;">Chat-GPT4:<br /></span></p><p><span style="font-family: arial;">Based on the extensive knowledge and review of various aircraft types, layouts, and configurations, the following ranking can be considered for the safest layouts for experimental, homebuilt, ultralight, and light sport aircraft:</span></p><p><span style="font-family: arial;">1. High-wing, single-engine, traditional tail, fixed tricycle landing gear, 4-stroke engine</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p style="text-align: left;"><span style="font-family: arial;">The high-wing design provides better visibility and inherent stability.</span></p><p style="text-align: left;"><span style="font-family: arial;">Single-engine designs are simpler and generally more reliable than multi-engine configurations.</span></p><p style="text-align: left;"><span style="font-family: arial;">Traditional tail offers stability and familiarity for pilots.</span></p><p style="text-align: left;"><span style="font-family: arial;">Fixed tricycle landing gear reduces complexity and potential for gear-up landings.</span></p><p style="text-align: left;"><span style="font-family: arial;">4-stroke engines are more reliable and efficient compared to 2-stroke engines</span></p></blockquote><p style="text-align: left;"> 2. <span style="font-family: arial;">High-wing, single-engine, canard, fixed tricycle landing gear, 4-stroke engine</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Canard configuration provides additional stall resistance and better maneuverability.</span></p><p><span style="font-family: arial;">The other factors remain the same as the first-ranked layout.</span></p></blockquote><p><span style="font-family: arial;">3. Low-wing, single-engine, traditional tail, fixed tricycle landing gear, 4-stroke engine</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Low-wing designs offer better ground handling and easier access for maintenance.</span></p><p><span style="font-family: arial;">Traditional tail and single-engine configuration is still preferred for simplicity and reliability.</span></p><p><span style="font-family: arial;">Fixed tricycle landing gear reduces complexity.</span></p></blockquote><p><span style="font-family: arial;">4. Low-wing, single-engine, canard, fixed tricycle landing gear, 4-stroke engine</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: arial;">The low-wing design offers better ground handling and easier access for maintenance.</span> </blockquote><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"> </blockquote><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: arial;">Canard configuration provides additional stall resistance and better maneuverability.</span></blockquote><p style="text-align: left;"><span style="font-family: arial;">5. Mid-wing, single-engine, traditional tail, fixed tricycle landing gear, 4-stroke engine</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Mid-wing designs may provide a compromise between high- and low-wing designs, offering some benefits from both configurations.</span></p><p><span style="font-family: arial;">Traditional tail and single-engine configuration is still preferred for simplicity and reliability.</span></p></blockquote><p><span style="font-family: arial;">6. Mid-wing, single-engine, canard, fixed tricycle landing gear, 4-stroke engine</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Canard configuration provides additional stall resistance and better maneuverability.</span></p><p><span style="font-family: arial;">Mid-wing designs offer a balance between high- and low-wing configurations.</span></p></blockquote><p><span style="font-family: arial;">7. High-wing, electric motor, traditional tail, fixed tricycle landing gear</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Electric motors offer low noise, emissions, and smooth operation.</span></p><p><span style="font-family: arial;">The high-wing design provides better visibility and inherent stability.</span></p><p><span style="font-family: arial;">Traditional tail offers stability and familiarity for pilots.</span></p><p><span style="font-family: arial;">Fixed tricycle landing gear reduces complexity.</span></p></blockquote><p><span style="font-family: arial;">8. High-wing, electric motor, canard, fixed tricycle landing gear</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Electric motors offer low noise, emissions, and smooth operation.</span></p><p><span style="font-family: arial;">The high-wing design provides better visibility and inherent stability.</span></p><p><span style="font-family: arial;">Canard configuration provides additional stall resistance and better maneuverability.</span></p></blockquote><p><span style="font-family: arial;">For multi-engine configurations, the safest layouts would likely involve high-wing designs with fixed tricycle landing gear and 4-stroke engines or electric motors. However, multi-engine aircraft have more complexity, and the added redundancy may not always outweigh the increased risk of engine failure and related accidents.</span></p><p><span style="font-family: arial;"></span></p><p><span style="font-family: arial;">In general, simplicity and reliability are key factors in determining the safest aircraft layouts. Factors such as fixed landing gear, single-engine configurations, and 4-stroke engines or electric motors contribute to overall safety.</span></p><p><span style="font-family: arial;">ME:<br />After ranking these configurations you decided, for each ranking category to provide examples of both the safest and most reliable aircraft, and also the most dangerous and least reliable aircraft based on their safety records and incident reports where they are named. You excluded general aviation aircraft from the list of examples but retained specific homebuilt aircraft kit planes and original designs, along with experimental aircraft, light sport aircraft, and ultralights.</span></p><p><span style="font-family: arial;">ChatGPT-4:<br /></span></p><p><span style="font-family: arial;">Considering the safest and most reliable aircraft in each ranking category, along with the most dangerous and least reliable aircraft based on safety records and incident reports, here are examples for each category:</span></p><p><span style="font-family: arial;">1. High-wing, single-engine, traditional tail, fixed tricycle landing gear, 4-stroke engine:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Zenith CH 750 series, Van's RV-12</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi_X-p_38tKZclFBbKXu-ChugLQ4pkxbTbVKGCFrZ9x5iNovDlKjf9s4jzJB2b2cOzxszxCC77JfKBtdHNyXCikr-o1o9nMevaHY5ASHtefG_tCboycWslYrHhKbwabTp9jKFbFtXsPzl3VGp9GEq3eaXHTh3vEbmz-a3u4vSfuJjQKpLuopA" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="2972" data-original-width="5100" height="372" src="https://blogger.googleusercontent.com/img/a/AVvXsEi_X-p_38tKZclFBbKXu-ChugLQ4pkxbTbVKGCFrZ9x5iNovDlKjf9s4jzJB2b2cOzxszxCC77JfKBtdHNyXCikr-o1o9nMevaHY5ASHtefG_tCboycWslYrHhKbwabTp9jKFbFtXsPzl3VGp9GEq3eaXHTh3vEbmz-a3u4vSfuJjQKpLuopA=w640-h372" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgfCTKOMQZhXTSxmyq1_QPjIsVSwbGK0_W5R_qMQ-9-5Y8Pq8qgHrpbHeXpF9jpy_Ms-Cpnxr5ABc2_BwH8tFzbA12TGlu6F0drKh_2Bh7SdzIEQrx3DrbMDEiYTIkh6h2GRtLokC1-q1G-ZklGttWnYPELhjqXBva62f5pls6BObd970TTAg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="389" data-original-width="960" height="260" src="https://blogger.googleusercontent.com/img/a/AVvXsEgfCTKOMQZhXTSxmyq1_QPjIsVSwbGK0_W5R_qMQ-9-5Y8Pq8qgHrpbHeXpF9jpy_Ms-Cpnxr5ABc2_BwH8tFzbA12TGlu6F0drKh_2Bh7SdzIEQrx3DrbMDEiYTIkh6h2GRtLokC1-q1G-ZklGttWnYPELhjqXBva62f5pls6BObd970TTAg=w640-h260" width="640" /></a></div><br /><br /></div><br /> <p></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: Fisher Flying Products Dakota Hawk (early versions)</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgr2CfInSy5aGZaAavE-7kan3YPIQeUVq7cnU550YpmY3cnKuQk8vPY-AKGTTDIronHVwf8NIwgqwH93AwUes5JO8zQnQdeSB_uL4kvVOA-UVrJDOBolKjokZqdrNCNmVqEhjwlzanb4tDc0_vI9FKivgn-ky1Z4QGyETDa_c9Jx4m_xgW--A" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="643" data-original-width="582" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgr2CfInSy5aGZaAavE-7kan3YPIQeUVq7cnU550YpmY3cnKuQk8vPY-AKGTTDIronHVwf8NIwgqwH93AwUes5JO8zQnQdeSB_uL4kvVOA-UVrJDOBolKjokZqdrNCNmVqEhjwlzanb4tDc0_vI9FKivgn-ky1Z4QGyETDa_c9Jx4m_xgW--A" width="217" /></a></div><br /> <p></p><p><span style="font-family: arial;">2. High-wing, single-engine, canard, fixed tricycle landing gear, 4-stroke engine:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Velocity XL-RG</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEicq5QnqOQ4dmvT4x-RlZAkO9rDA3btEgC8jDhJwSl49_D8meOg6WXVTBZiuqfQAdE_iaj_EBdsmqPrA4qkF0D8bG8ta7YfBxRhJUQZHnhIy68FKNA7zy1ufq4T8OMMclqGdzYkwPUJAmfX3eDM8XVexLfr7JZhulLq6AQuUPgMoXtYRtTyWw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="888" data-original-width="1540" height="370" src="https://blogger.googleusercontent.com/img/a/AVvXsEicq5QnqOQ4dmvT4x-RlZAkO9rDA3btEgC8jDhJwSl49_D8meOg6WXVTBZiuqfQAdE_iaj_EBdsmqPrA4qkF0D8bG8ta7YfBxRhJUQZHnhIy68FKNA7zy1ufq4T8OMMclqGdzYkwPUJAmfX3eDM8XVexLfr7JZhulLq6AQuUPgMoXtYRtTyWw=w640-h370" width="640" /></a></div><br /> <p></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: VariEze (early versions, primarily due to inexperienced pilots and builders)</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhEFpXmMBsnscinZQjQ2xKSZlGmG3kaGLVTxfz21nLeUQRnovIzSUbAi1jspJDGjcSOERG-HH6K3ZNdSlYs4vqO7Kg3QCZAaZfaffLWqW5JpYXJRbvGA_y-b4O64OYBGk4Cusu_Ue45oAREzK7G9nC4wTMnZLYnzsvUVtZhFl3yNekngquEWw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="315" data-original-width="748" height="270" src="https://blogger.googleusercontent.com/img/a/AVvXsEhEFpXmMBsnscinZQjQ2xKSZlGmG3kaGLVTxfz21nLeUQRnovIzSUbAi1jspJDGjcSOERG-HH6K3ZNdSlYs4vqO7Kg3QCZAaZfaffLWqW5JpYXJRbvGA_y-b4O64OYBGk4Cusu_Ue45oAREzK7G9nC4wTMnZLYnzsvUVtZhFl3yNekngquEWw=w640-h270" width="640" /></a></div><br /> <p></p><p><span style="font-family: arial;">3. Low-wing, single-engine, traditional tail, fixed tricycle landing gear, 4-stroke engine:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Van's RV-7/7A, Van's RV-9/9A</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi_K-r2vuSeBgo9rwqsEx7-q2N0oP8VN9J7x_tUvOspfIySMmcWimMcUFqrzyzrclmiUOx5iKf_LyYMngGuJ0a6qHZ_IxxlSTtIWGycW6atKUClY_9hribpOU78gH7JlBFzCikaH2Gs9O3JCVHfSZNPYshI_j3oU0080pIiJus82swBXQONRw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="456" data-original-width="1174" height="248" src="https://blogger.googleusercontent.com/img/a/AVvXsEi_K-r2vuSeBgo9rwqsEx7-q2N0oP8VN9J7x_tUvOspfIySMmcWimMcUFqrzyzrclmiUOx5iKf_LyYMngGuJ0a6qHZ_IxxlSTtIWGycW6atKUClY_9hribpOU78gH7JlBFzCikaH2Gs9O3JCVHfSZNPYshI_j3oU0080pIiJus82swBXQONRw=w640-h248" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjYTg3WGnCHFHuBGoj8Gny8Q2cSqXzmMveo1BkHXALgn_gzADR76QzY_onXBb2My4VnDE9WDovVaYXWGITYWWbQqJo7qawyjrjD9bGSY08q4VF9-vOKvrdW7KYABLUfq7HrmSSr818_EuI8G__OW_yFlP_I8QtvD_S642DRtSOWxGnk4dvQjw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="456" data-original-width="769" height="380" src="https://blogger.googleusercontent.com/img/a/AVvXsEjYTg3WGnCHFHuBGoj8Gny8Q2cSqXzmMveo1BkHXALgn_gzADR76QzY_onXBb2My4VnDE9WDovVaYXWGITYWWbQqJo7qawyjrjD9bGSY08q4VF9-vOKvrdW7KYABLUfq7HrmSSr818_EuI8G__OW_yFlP_I8QtvD_S642DRtSOWxGnk4dvQjw=w640-h380" width="640" /></a></div><br /><br /></div><p></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: Early versions of the Glasair I</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh0OoqpHUI-XQRUvVpqr5QFkI6ip-k7P-tRiiFbc6PCsawDiMkn45up9lYoMFwtzrV7v1pwAbEi5iflAwwBWyDHyijS-DRDRTS9uPMi5Kx6hpdh6lRb6jr_aPf7je_UTPqfAz4Nxaqnwj-gR100osHgVVqlvmAP6OjUILliyRhfa_2kBbuUvw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="832" data-original-width="1600" height="332" src="https://blogger.googleusercontent.com/img/a/AVvXsEh0OoqpHUI-XQRUvVpqr5QFkI6ip-k7P-tRiiFbc6PCsawDiMkn45up9lYoMFwtzrV7v1pwAbEi5iflAwwBWyDHyijS-DRDRTS9uPMi5Kx6hpdh6lRb6jr_aPf7je_UTPqfAz4Nxaqnwj-gR100osHgVVqlvmAP6OjUILliyRhfa_2kBbuUvw=w640-h332" width="640" /></a></div><br /> <p></p><p><span style="font-family: arial;">4. Low-wing, single-engine, canard, fixed tricycle landing gear, 4-stroke engine:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Cozy MKIV</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEheRh2NY5odj9q_qHcCurE7z3QYJKMHiGjAzs4MZPcQLYiAIPxNl5c_FsNxhaVSVg6Td47FspdaMOvGgx2eSJtj7-t2UZ0Gu0HncdpiSeVmE6wo8DVfl2Lz6ME_R8_yllidMDxKa1dBpGycwFmdwVEqygY7kzDSYMRrlWvnhSVUQxSj1t6Phw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="628" data-original-width="1547" height="260" src="https://blogger.googleusercontent.com/img/a/AVvXsEheRh2NY5odj9q_qHcCurE7z3QYJKMHiGjAzs4MZPcQLYiAIPxNl5c_FsNxhaVSVg6Td47FspdaMOvGgx2eSJtj7-t2UZ0Gu0HncdpiSeVmE6wo8DVfl2Lz6ME_R8_yllidMDxKa1dBpGycwFmdwVEqygY7kzDSYMRrlWvnhSVUQxSj1t6Phw=w640-h260" width="640" /></a></div><br /> <p></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: Berkut 540 (due to the limited number built and lack of safety data)</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEilEW0xvv8TU9xh9nhnRRdto_kLA1Am8hSqFoBiM9tdRfxJYFW_fXayKwiiOt9cqFQxGeg1MrLPWcCFC7xUgmhIza5XlCqRabpN3mQf06JxnKArQmbnzpZrYm7x526OG5MOsrUpTurWeNCsr9biMpTT1aAn8gMzyzvTtPYe5iISknVwl8rg-A" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1022" data-original-width="2002" height="326" src="https://blogger.googleusercontent.com/img/a/AVvXsEilEW0xvv8TU9xh9nhnRRdto_kLA1Am8hSqFoBiM9tdRfxJYFW_fXayKwiiOt9cqFQxGeg1MrLPWcCFC7xUgmhIza5XlCqRabpN3mQf06JxnKArQmbnzpZrYm7x526OG5MOsrUpTurWeNCsr9biMpTT1aAn8gMzyzvTtPYe5iISknVwl8rg-A=w640-h326" width="640" /></a></div><br /> <p></p><p><span style="font-family: arial;">5. Mid-wing, single-engine, traditional tail, fixed tricycle landing gear, 4-stroke engine:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Sonex Aircraft Onex</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjXwDzyqVHRRYlyGPRUeDNkh2vTLj8JGoFlLUJ6m8yDac4Dl40Fqf6n7slxGdpV1V77tf7Pa5zmaFzP-yM__iRmMwqPUvMtB5qskaHQlEfG46LUo4GXHprpPTnWLTHQoZHOi8J0XcV6DMzCMphDjnmjjTsRiK0rRUK-AcgcmU2bEeH2PLsodQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="846" data-original-width="1344" height="402" src="https://blogger.googleusercontent.com/img/a/AVvXsEjXwDzyqVHRRYlyGPRUeDNkh2vTLj8JGoFlLUJ6m8yDac4Dl40Fqf6n7slxGdpV1V77tf7Pa5zmaFzP-yM__iRmMwqPUvMtB5qskaHQlEfG46LUo4GXHprpPTnWLTHQoZHOi8J0XcV6DMzCMphDjnmjjTsRiK0rRUK-AcgcmU2bEeH2PLsodQ=w640-h402" width="640" /></a></div><br /> <p></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: Early versions of the Wheeler Express</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjjp1W1MC9DJJBTc7_jXAN7n-9r-pjL59WLQicGBwa167XE9yv7bZ_tt_Gc-eVz9ADDK1NAMyqUeb8UdbtwfS1VNPulNbbb_tsIaSASduWcs-XpXPZX-JIYda-uFUkAgBItT7gt5xchDV9N4e1tNlWpPwjagFb8leMEq7HPcibGkHhxZgNURA" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="621" data-original-width="1014" height="392" src="https://blogger.googleusercontent.com/img/a/AVvXsEjjp1W1MC9DJJBTc7_jXAN7n-9r-pjL59WLQicGBwa167XE9yv7bZ_tt_Gc-eVz9ADDK1NAMyqUeb8UdbtwfS1VNPulNbbb_tsIaSASduWcs-XpXPZX-JIYda-uFUkAgBItT7gt5xchDV9N4e1tNlWpPwjagFb8leMEq7HPcibGkHhxZgNURA=w640-h392" width="640" /></a></div><br /> <p></p><p><span style="font-family: arial;">6. Mid-wing, single-engine, canard, fixed tricycle landing gear, 4-stroke engine:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Long-EZ, 833 built 114 crashed, 44 fatalities, 14% attrition.</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh0B2hvmRK1YNON8aE5qF-rBD_Iy39nyQoGendY02FpqSLHfY-1wFaO9B0pROECi5Y_9LSLFtGQmD4FLIDBtejujY92FO6s-1H8EY7GyEK65yOuhMVmv8JZ8celNAjfx-ss3Lzm_6TX8hh6DSDUKW9MpAJpcinMB6-Im0XR7Pc_ExMmh2UBaw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="756" data-original-width="1740" height="278" src="https://blogger.googleusercontent.com/img/a/AVvXsEh0B2hvmRK1YNON8aE5qF-rBD_Iy39nyQoGendY02FpqSLHfY-1wFaO9B0pROECi5Y_9LSLFtGQmD4FLIDBtejujY92FO6s-1H8EY7GyEK65yOuhMVmv8JZ8celNAjfx-ss3Lzm_6TX8hh6DSDUKW9MpAJpcinMB6-Im0XR7Pc_ExMmh2UBaw=w640-h278" width="640" /></a></div><br /> <p></p><p> </p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: VariEze (early versions, primarily due to inexperienced pilots and builders)</span></p></blockquote><p><span style="font-family: arial;">7. High-wing, electric motor, traditional tail, fixed tricycle landing gear:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: Pipistrel Alpha Electro</span></p></blockquote><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiSto4Zkii-GsZS_d58KTOaz936K6_Cfb0VJ3ITdl5np0bmPIW_OoRWyXNUCvT4L45pjeldszJbgDcnt7uoqAXiHTYzzU51JUIUh7Lgl49W19uhNQUpmRR09_X3eJ4Uhy4v1ZFe5h9x795GMc7fXYSrkVrnJ80ayQwDFLuYn62HhaAhbLx1-Q" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="517" data-original-width="1077" height="308" src="https://blogger.googleusercontent.com/img/a/AVvXsEiSto4Zkii-GsZS_d58KTOaz936K6_Cfb0VJ3ITdl5np0bmPIW_OoRWyXNUCvT4L45pjeldszJbgDcnt7uoqAXiHTYzzU51JUIUh7Lgl49W19uhNQUpmRR09_X3eJ4Uhy4v1ZFe5h9x795GMc7fXYSrkVrnJ80ayQwDFLuYn62HhaAhbLx1-Q=w640-h308" width="640" /></a></div><br /> <p></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Most dangerous and least reliable: There are limited examples in this category, and most are relatively new with limited safety data.</span></p></blockquote><p><span style="font-family: arial;">8. High-wing, electric motor, canard, fixed tricycle landing gear:</span></p><blockquote data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: initial; --darkreader-inline-border-right: initial; --darkreader-inline-border-top: initial; border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: arial;">Safest and most reliable: There are limited examples in this category, and most are relatively new with limited safety data.</span></p><p><span style="font-family: arial;">Most dangerous and least reliable: There are limited examples in this category, and most are relatively new with limited safety data.</span></p></blockquote><p><span style="font-family: arial;"></span></p><p><span style="font-family: arial;">It's important to note that the safety of an aircraft can be significantly impacted by factors such as pilot experience, quality of construction, and proper maintenance. Additionally, many of the dangerous and least reliable aircraft mentioned have undergone updates and improvements over time, potentially increasing their safety and reliability.</span></p><p><span style="font-family: arial;">ME:<br />After doing these rankings you discovered that the Hirth 2 stroke engine F23 Lightweight engine with fuel injection became available. Which of the configurations in the above rankings most lend themselves to the use of this particular engine and what advantages would it confer?<br /><br />ChatGPT-4:<br /></span></p><p><span style="font-family: arial;">The Hirth F23 Lightweight 2-stroke engine with fuel injection would be most suitable for lighter aircraft, particularly ultralights and some light sport aircraft, due to its lightweight and compact design. In the ranking categories mentioned earlier, the configurations that would most likely benefit from the use of the Hirth F23 engine are:</span></p><p><span style="font-family: arial;">1. High-wing, single-engine, traditional tail, fixed tricycle landing gear</span></p><p><span style="font-family: arial;">2. High-wing, single-engine, canard, fixed tricycle landing gear</span></p><p><span style="font-family: arial;">3. Low-wing, single-engine, traditional tail, fixed tricycle landing gear</span></p><p><span style="font-family: arial;">4. Low-wing, single-engine, canard, fixed tricycle landing gear</span></p><p><span style="font-family: arial;">These configurations are generally lighter and more suitable for smaller aircraft that would benefit from a compact, lightweight engine like the Hirth F23. The advantages of using the Hirth F23 engine in these configurations include:</span></p><p><span style="font-family: arial;">1. Weight savings: The lightweight design of the Hirth F23 engine can lead to significant weight savings compared to 4-stroke engines, which can result in better performance and improved fuel efficiency.</span></p><p><span style="font-family: arial;">2. Compact design: The compact size of the Hirth F23 engine allows it to fit into smaller engine compartments, potentially leading to more streamlined and aerodynamically efficient designs.</span></p><p><span style="font-family: arial;">3. Fuel injection: The fuel injection system in the Hirth F23 engine offers better fuel atomization, resulting in more efficient combustion and potentially lower fuel consumption.</span></p><p><span style="font-family: arial;">4. Improved reliability: The fuel injection system can also contribute to improved reliability compared to some carbureted 2-stroke engines, as it can reduce the likelihood of carburetor icing and fuel mixture issues.</span></p><p><span style="font-family: arial;"></span></p><p><span style="font-family: arial;">However, it is important to note that 2-stroke engines generally have higher maintenance requirements and shorter service intervals compared to 4-stroke engines. This trade-off should be considered when deciding on an engine for an aircraft in the above configurations.</span></p><p><span style="font-family: arial;">ME:<br />After incorporating the benefits of the Hirth engine into these ranked configurations you also wanted to consider the advantages and disadvantages of using leading edge flaps and tundra tires to increase the STOL, Short Takeoff Or Landing, performance. List the advantages and disadvantages of each of these elements. </span></p><p><span style="font-family: arial;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: arial;"><br /></span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhkC_F3BoyJTtrFo_UyyiWsZhctgH9mkIq19ElaPgf861yhqxxmeS5Z7mNGy7RYwwWVuLvgOAf-jGvGyssVsT0nY-71WTC4gRTaaxLxYLIyjZXlAl9QVcfDIJ6b_OSbl1qyeuLqHTNdxL-e0Bn_ZWCWEDDr36QwgsSAfcucKgHDxhsb0x45xg" style="margin-left: auto; margin-right: auto;"><img alt="" data-original-height="276" data-original-width="372" height="474" src="https://blogger.googleusercontent.com/img/a/AVvXsEhkC_F3BoyJTtrFo_UyyiWsZhctgH9mkIq19ElaPgf861yhqxxmeS5Z7mNGy7RYwwWVuLvgOAf-jGvGyssVsT0nY-71WTC4gRTaaxLxYLIyjZXlAl9QVcfDIJ6b_OSbl1qyeuLqHTNdxL-e0Bn_ZWCWEDDr36QwgsSAfcucKgHDxhsb0x45xg=w640-h474" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Mackey SQ2 STOL</td></tr></tbody></table><span style="font-family: arial;"><br /><br /><br /></span><p></p><p><span style="font-family: arial;">ChatGPT-4:</span></p><p><span style="font-family: arial;">Incorporating leading-edge flaps and tundra tires into the ranked configurations can help improve Short Takeoff and Landing (STOL) performance. Here are the advantages and disadvantages of each element:</span></p><p><span style="font-family: arial;">Leading-edge flaps (such as slats or Krueger flaps):</span></p><p><span style="font-family: arial;">Advantages:</span></p><p><span style="font-family: arial;">1. Improved lift: Leading-edge flaps increase the wing's camber and delay airflow separation, resulting in higher lift at lower speeds. This enables shorter takeoffs and landings.</span></p><p><span style="font-family: arial;">2. Lower stall speed: Leading-edge flaps can lower the aircraft's stall speed, providing a greater margin of safety during slow-speed operations, such as STOL.</span></p><p><span style="font-family: arial;">3. Enhanced controllability: With better low-speed handling characteristics, leading-edge flaps can improve pilot control during takeoff and landing, especially in STOL conditions.</span></p><p><span style="font-family: arial;">Disadvantages:</span></p><p><span style="font-family: arial;">1. Increased complexity: Installing leading-edge flaps adds complexity to the wing structure and control systems, potentially increasing maintenance requirements and the likelihood of system failures.</span></p><p><span style="font-family: arial;">2. Additional weight: The extra weight of leading-edge flaps can offset some of the benefits gained from improved lift and handling.</span></p><p><span style="font-family: arial;">3. Increased drag: When deployed, leading-edge flaps can increase drag, reducing overall aerodynamic efficiency and increasing fuel consumption.</span></p><p><span style="font-family: arial;">Tundra tires:</span></p><p><span style="font-family: arial;">Advantages:</span></p><p><span style="font-family: arial;">1. Versatile operation: Tundra tires enable aircraft to land on rough, unimproved surfaces, such as gravel, grass, or snow, expanding the range of possible landing sites.</span></p><p><span style="font-family: arial;">2. Improved flotation: The larger, low-pressure tires distribute the aircraft's weight more effectively, reducing the likelihood of sinking into soft ground or snow.</span></p><p><span style="font-family: arial;">3. Enhanced shock absorption: Tundra tires can absorb more energy during landing, providing a smoother and safer experience for pilots and passengers.</span></p><p><span style="font-family: arial;">Disadvantages:</span></p><p><span style="font-family: arial;">1. Increased weight: Tundra tires are generally heavier than standard tires, which can negatively impact aircraft performance and fuel efficiency.</span></p><p><span style="font-family: arial;">2. Increased drag: The larger profile of tundra tires can create more aerodynamic drag, reducing cruise speed and increasing fuel consumption.</span></p><p><span style="font-family: arial;">3. Additional maintenance: Tundra tires may require more frequent inspections and maintenance due to their exposure to rough terrain and off-airport operations.</span></p><p><span style="font-family: arial;"></span></p><p><span style="font-family: arial;">Both leading-edge flaps and tundra tires can enhance STOL performance, but they also introduce trade-offs in terms of complexity, weight, and drag. It's important to carefully evaluate the specific mission requirements and operational environment before incorporating these elements into an aircraft's design.</span></p><p><span style="font-family: arial;">ME:<br />References:<br />1. </span><span style="text-indent: -1cm;">List, Aviation Media. “Top 30 Aviation Magazines & Publications to Follow in 2023.” </span><i style="text-indent: -1cm;">Feedspot Blog</i><span style="text-indent: -1cm;">, 31 Mar. 2023, https://blog.feedspot.com/aviation_magazines/.</span></p><div></div><p></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;"><br /></span></p>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-26033354446900268392022-09-01T14:21:00.410-05:002022-09-03T00:52:41.800-05:00Dinner with Andrew: The Sequel<p><span style="font-family: IBM Plex Sans;">So, we're at the gym again. A couple of laps and I chat with Dr. Chiang a tenured Ph.D. Professor in the department of Computer Science.</span></p>
<p><span style="font-family: IBM Plex Sans;">Me: I've found a new 1500-page book on <a href="https://github.com/probml/pyprobml/tree/master/notebooks">Probability and Machine Learning</a>. Well, its actually two books. But it comes with code!</span></p>
<p><span style="font-family: IBM Plex Sans;">Dr. Chiang: I got paid today!</span></p>
<p><span style="font-family: IBM Plex Sans;">Me: I have to warm up around the track. I go upstairs to the 1/8-mile track. I'm thinking of Gödel again. He had read Russell and Whiteheads Principia Mathematica in its entirety and <a href="https://www.amazon.com/Logicomix-search-truth-Apostolos-Doxiadis/dp/1596914521" target="_blank">confronted Russell</a> about everything in it being provable. His attention to detail was incredible and I would mention this to Andrew who appears later in the conversation. Gödel believed there was a way that the US could be transformed into a dictatorship. Einstein and Morgenstern had great difficulty restraining him from announcing this at his US citizenship hearing. (<a href="https://www.google.com/books/edition/Kurt_G%C3%B6del_Collected_Works_Volume_I/5ya4A0w62skC?hl=en&gbpv=1&pg=PR1&printsec=frontcover">See page 12 here</a>)</span></p>
<p><span style="font-family: IBM Plex Sans;">I returned downstairs to the quad machine and managed to get through three sets of eight, increasing the weight in twenty-pound increments as I warmed up. Then I made it to the sitting bench press which I have undertaken to perform at three angles with various seat heights and grip positions. After a set, Andrew appears, carrying a notebook which he is eager to show me.</span></p>
<p><span style="font-family: IBM Plex Sans;">I would be remiss to provide only my own recollection and I am fascinated by the <a href="https://en.wikipedia.org/wiki/Rashomon" target="_blank">Rashomon</a> phenom of the same event witnessed by two people being perceived differently. I have asked Andrew to provide a quick sketch of his recollection, quick, because as a student he has bigger fish to fry than recounting a random gym conversation, but it is interesting and he has graciously provided a recap, which I have worked into this thread.</span></p><p><span style="font-family: "IBM Plex Sans";">Me: That is excellent. Please show me. But first, you are taking four courses. Tell me how they are going.</span></p><p><span style="font-family: IBM Plex Sans;">Andrew: Electronics course. Ohm's Law. The Linearization of V = IR in I-V space to determine R as the slope of the curve.</span></p><p><span style="font-family: IBM Plex Sans;">Me: Aha! But if you are determining slope then you must make TWO measurements to obtain a result, say if you wanted to do an automated determination of resistance. That is so interesting that one measurement is not sufficient.</span></p><p><span style="font-family: "IBM Plex Sans";">Andrew: </span><span style="font-family: "IBM Plex Sans";">(Presenting the sketch book. </span><span style="font-family: "IBM Plex Sans";">I have been doing some sketches to hone my ability to express myself [in diagrams that you might find in a book]. </span><span style="font-family: IBM Plex Sans;">In order to practice my arm control for drawing, I drew various straight lines and connected them in arbitrary ways.</span></p><p><span style="font-family: IBM Plex Sans;">Me: They look like a Voronoi diagram. </span><span style="font-family: "IBM Plex Sans";">Constructions like these have unexpected utility I have toyed with:</span></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxftq8rx0cv5jgWVjKOmCDFnrMyQr78vhndMPA1wBKd9AiyuGlaQ_lwR0JkRyacJ1ns8AXtblxofmc' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><p><span style="font-family: IBM Plex Sans;">Me: This is excellent. Nothing is as portable as pencil and paper, but you are going to the next level, to quote reddit. There are a set of very useful tools that will amplify your efforts as well. Like <a href="https://themaximalist.org/about/my-mac-os-installation/" target="_blank">Maxima</a> for symbolic mathematics, like <a href="https://www.euclidsmuse.com/" target="_blank">Geometry Expressions™ </a>for symbolic geometry. </span><span style="font-family: "IBM Plex Sans";">The Shovel vs. the Bulldozer.</span></p><p><span style="font-family: IBM Plex Sans;">Andrew: Behold - The introduction of Euclid's elements. The foundation of all classical Greek mathematics. The beginning of the exploration of the 5 postulates.:</span></p><p><span style="font-family: "IBM Plex Sans";">Then like a magician producing a deck of cards Andrew pulls out a black notebook bound with black wire. The first few pages are various doodles and patterns which then turn to the money shot, a page showing Euclid's Five Postulates on Geometry.</span></p><p><span style="font-family: IBM Plex Sans;">Andrew: Some of these are tasks, some are proofs. The distinction is Q.E.F vs Q.E.D:</span></p><p><span style="font-family: IBM Plex Sans;">QEF: Quod Erat Faciendum (that which was to be done) vs.<br /></span><span style="font-family: "IBM Plex Sans";">QED: Quod Erat Demonstrandum (that which was to be proven)</span></p><p><span style="font-family: "IBM Plex Sans";">Covering these basics would yield unexpected fruit.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZcfHIVeeGebmPZmrtt7oddA6MREn4l486jj4UE-F2Ak4B6Y9dju13lQ8glOiC7Nv-GWJvWlmZJKdFukai8ItJT9ZqiJU6f_AMkTevBMcbUBdRIFnttdsSZAfKSp6N3beocQ2sAV2CloWpD1NNoOubi6BzMYLOqg3lgH75Gqp1cjyJGwev8A/s2016/IMG_0074.jpeg"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="1512" data-original-width="2016" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZcfHIVeeGebmPZmrtt7oddA6MREn4l486jj4UE-F2Ak4B6Y9dju13lQ8glOiC7Nv-GWJvWlmZJKdFukai8ItJT9ZqiJU6f_AMkTevBMcbUBdRIFnttdsSZAfKSp6N3beocQ2sAV2CloWpD1NNoOubi6BzMYLOqg3lgH75Gqp1cjyJGwev8A/s320/IMG_0074.jpeg" width="320" /></span></a></div>
<p><span style="font-family: IBM Plex Sans;"><br /><br /></span></p>
<p><span style="font-family: IBM Plex Sans;">Andrew: Consider Euclid Postulate 1. A straight line segment can be drawn joining any two points.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu7S1YPTpXwq1Y_Bok6ff2ET9krGKh-eZa0h1BEot6pWMf5fX-0CJIuDilJTyb1zyIFac0SvEm66rbz_rU500w3tgZ7SKM-3ROwm2sDtaU_YQMSF7ZYNqgh19Ca2IfMHN2RIH28t_IzgJHB6gxzF_jkxtlZG638yUxxS_QTj7tDqIMw8CpDQ/s730/Screen%20Shot%202022-09-01%20at%2012.55.28%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="480" data-original-width="730" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu7S1YPTpXwq1Y_Bok6ff2ET9krGKh-eZa0h1BEot6pWMf5fX-0CJIuDilJTyb1zyIFac0SvEm66rbz_rU500w3tgZ7SKM-3ROwm2sDtaU_YQMSF7ZYNqgh19Ca2IfMHN2RIH28t_IzgJHB6gxzF_jkxtlZG638yUxxS_QTj7tDqIMw8CpDQ/s320/Screen%20Shot%202022-09-01%20at%2012.55.28%20PM.png" width="320" /></span></a></div>
<p><span style="font-family: IBM Plex Sans;">Andrew: Given a line segment, construct an equilateral triangle. This was done by drawing two intersecting circles with the given line as the </span><span style="font-family: "IBM Plex Sans";">radius. Thus, the equilateral triangle was constructed based upon the equality of the line lengths rather than the equality of the angles.</span></p><p><span style="font-family: IBM Plex Sans;">Me: The act of drawing the point in the first place induced the existence of a pair of coordinates to locate that point. The same for its partner. Drawing line created a relationship between the two points called length. Length is a disembodied quantity, an attribute, a scalar whose value depends on the coordinates. If I hand you the length, I have not handed you the points from which the length was determined. Length is a Doppelgänger.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv4z_x-7K4WEw4KXOKajkWpik52tz3raVbTNgdu0HVsv3BlE7ztqSfl9UgTk0vTOU6CIZHnYD03L7dZkHEHhT-cKhgtaL7An4ZtF220_ND69TI5lMyEiFzNLK98imMetPJqq1bPFmakLEmITS7aaRmSAJcab9Vp4jfAPCCAXCkL6gqmA-AqA/s932/Screen%20Shot%202022-09-01%20at%2012.58.31%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="554" data-original-width="932" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv4z_x-7K4WEw4KXOKajkWpik52tz3raVbTNgdu0HVsv3BlE7ztqSfl9UgTk0vTOU6CIZHnYD03L7dZkHEHhT-cKhgtaL7An4ZtF220_ND69TI5lMyEiFzNLK98imMetPJqq1bPFmakLEmITS7aaRmSAJcab9Vp4jfAPCCAXCkL6gqmA-AqA/s320/Screen%20Shot%202022-09-01%20at%2012.58.31%20PM.png" width="320" /></span></a></div>
<p><span style="font-family: IBM Plex Sans;">Our goose bump moment was observing that the assumption that we can connect two points lies in the notion that they are a finite distance apart. We had previously discussed spherical distortions of the function 1/x that made it appear like a baseball moving points at infinity to the other side of a sphere.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTO9uyNQGXm3VWS6ucTEm9riGXu6TH4Clibor4dCI7rMzXogPzoit-avVNxzRYOPtSDfH4e49ib0J1Ovo1UkIgXSz_RBdIzpbL8HqWii4zEt9SislPhnFBWPEPc25d2s6z3mO4WNVQUujlMGebq8vNlTY387tLTpjUdIFqd4GQNQoj2BF6dQ/s1134/Screen%20Shot%202022-09-01%20at%2012.10.04%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="790" data-original-width="1134" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTO9uyNQGXm3VWS6ucTEm9riGXu6TH4Clibor4dCI7rMzXogPzoit-avVNxzRYOPtSDfH4e49ib0J1Ovo1UkIgXSz_RBdIzpbL8HqWii4zEt9SislPhnFBWPEPc25d2s6z3mO4WNVQUujlMGebq8vNlTY387tLTpjUdIFqd4GQNQoj2BF6dQ/s320/Screen%20Shot%202022-09-01%20at%2012.10.04%20PM.png" width="320" /></span></a></div>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-zWeBdN8hZ6vt3RxADa_uPFqHIG8Ak-EGguqENHEwYi6_3wMaUaN7l_Fw_ySIWa4TWFo1UcaB7r_ybDm8QWMP36dlphGV_KSJAvuTCO9MSfByMngseCeC7H7wFUNeEYo_aMrfBSunM257DENriUPUBmqS5vesDVBzVYmTFWSpRoiIhmihYw/s1200/baseball-with-realistic-seams-sticker.webp"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="630" data-original-width="1200" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-zWeBdN8hZ6vt3RxADa_uPFqHIG8Ak-EGguqENHEwYi6_3wMaUaN7l_Fw_ySIWa4TWFo1UcaB7r_ybDm8QWMP36dlphGV_KSJAvuTCO9MSfByMngseCeC7H7wFUNeEYo_aMrfBSunM257DENriUPUBmqS5vesDVBzVYmTFWSpRoiIhmihYw/s320/baseball-with-realistic-seams-sticker.webp" width="320" /></span></a></div>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAeAweeVnZDHw_QjMV3i23PypfssmNFO8DHNsC7xrbwgRVKjvjXoNW0Ii-qdlWxODdHFX-m_3toXTEkSZCTlEF9xNEX0i0yntQbORLODEg54fSUS8tQLUj3SEbfe2L3cg66L2yTVQ1crlfKbVHSzok-1e1FvYRQCXfKToQ-TQi9fqy0mzEAA/s1314/ConformalMapping.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="1057" data-original-width="1314" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAeAweeVnZDHw_QjMV3i23PypfssmNFO8DHNsC7xrbwgRVKjvjXoNW0Ii-qdlWxODdHFX-m_3toXTEkSZCTlEF9xNEX0i0yntQbORLODEg54fSUS8tQLUj3SEbfe2L3cg66L2yTVQ1crlfKbVHSzok-1e1FvYRQCXfKToQ-TQi9fqy0mzEAA/s320/ConformalMapping.png" width="320" /></span></a></div>
<p><span style="font-family: IBM Plex Sans;"><br />This seemed like a lot of baggage for postulate one, so we moved on while I did another set of reps on the sitting bench press.</span></p>
<div>
<p><span style="font-family: IBM Plex Sans;">Euclid Postulate 2. Any straight line segment can be extended indefinitely in a straight line.</span></p><p><span style="font-family: "IBM Plex Sans";">Andrew paraphrased this as, "A ray can be extended from a given point.", which I liked.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpf3xY8T1Q9XOpnr6OcX-MQTrW7ct96faEhJmsPbU0gzSv6vXg5jgtCAJ_CMPia2OErYPVwENKlLj_cDqzYawM9jDEhuFgKf8izW2cCG4GKtZJCTznDkPbrWtvh1fCJE84FtqzdJJ5-uwZX6Y-9DPJA4oD2xPEylmvf54yV4UdhoXliQQD8Q/s940/Screen%20Shot%202022-09-01%20at%201.06.23%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="548" data-original-width="940" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpf3xY8T1Q9XOpnr6OcX-MQTrW7ct96faEhJmsPbU0gzSv6vXg5jgtCAJ_CMPia2OErYPVwENKlLj_cDqzYawM9jDEhuFgKf8izW2cCG4GKtZJCTznDkPbrWtvh1fCJE84FtqzdJJ5-uwZX6Y-9DPJA4oD2xPEylmvf54yV4UdhoXliQQD8Q/s320/Screen%20Shot%202022-09-01%20at%201.06.23%20PM.png" width="320" /></span></a></div><div style="text-align: center;"><br /></div><br /></div><div><span style="font-family: IBM Plex Sans;">Andrew: Given a line, duplicate the line at another point. Draw more lines extending them as in postulates </span><span style="font-family: "IBM Plex Sans";">1 and 2, and then directly called upon the result of proposition 1 to accomplish its task.</span></div><div><span style="font-family: "IBM Plex Sans";"><br /></span></div><div><span style="font-family: "IBM Plex Sans";">Me: Euclid </span><span style="font-family: IBM Plex Sans;">was the earliest effort at the task of creating a unified system of geometry that Russell and Whitehead attempted symbolically with Principia Mathematica some two plus millennia later. </span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">We agreed that the level of dedication and attention to detail was worthy of admiration, and that it was great sadness that Gödel starved </span><span style="font-family: IBM Plex Sans;">himself to death. </span><span style="font-family: "IBM Plex Sans";">We later agreed that this presented the notion that there is no preferred basis in Euclidian space,</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Me: This makes the assumption that straight lines remain straight, that space if flat, except in regions of high gravity and the <a href="https://en.wikipedia.org/wiki/Cosmological_constant" target="_blank">cosmological constant</a> has two values depending on whether it is measured via cosmic background radiation or Hubble's standard candles.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">I adjusted the seat and did another set of sitting bench presses. Am I conflating abstract space with real space? We review dimensionality and how the amount of wiggle room grows as we venture from the number line, to the real plane, to three dimensional space, finally adding time.</span><p><span style="font-family: IBM Plex Sans;">Andrew: Consider Euclid Postulate 3. Given any straight lines segment, a circle can be drawn having the segment as radius and one endpoint as center.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJuE7Z9QKImPbPgy9gpiXbNmnuE8-EXQoOK9-lVJBHgZOYNa5--Te1qcmaQC36unKUz2L_A-8MWMAQSBOfZwlIqubkOhssp6D5tn1IDpGn28xD9_VMP4iXg0Jy2pSf18C3TOcZlvbDq_QDuNL1OJ0OuNRiZfY3Jhp8F2azwHol0UDO6iJb_w/s688/Screen%20Shot%202022-09-01%20at%201.10.40%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="488" data-original-width="688" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJuE7Z9QKImPbPgy9gpiXbNmnuE8-EXQoOK9-lVJBHgZOYNa5--Te1qcmaQC36unKUz2L_A-8MWMAQSBOfZwlIqubkOhssp6D5tn1IDpGn28xD9_VMP4iXg0Jy2pSf18C3TOcZlvbDq_QDuNL1OJ0OuNRiZfY3Jhp8F2azwHol0UDO6iJb_w/s320/Screen%20Shot%202022-09-01%20at%201.10.40%20PM.png" width="320" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br />We talked about how this is just one way to specify a circle. One can also specify a circle by three points that live on its edge. This brought up the idea of constraints as a way to present geometry and the multiple ways of saying the same thing shape-wise. We talked about Phil Todd, the Portland genius who created <a href="https://www.geometryexpressions.com/" target="_blank">GeometryExpressions™</a>, used to create some of these figures. We talked about implicit equations of a circle which require a search and explicit forms that will represent the top or bottom half and how reexamining assumptions like this can lead to new work. This led to the code for the infinity sign below.</span><br /><br /><div><span style="font-family: IBM Plex Sans;">Andrew: Given a line segment and a short line segment, cut off a part of the longer line equal to the line segment. </span><span style="font-family: "IBM Plex Sans";">Euclid cheated a bit because he drew the short line segment in connection with the longer segment, rather than sticking with a </span><span style="font-family: "IBM Plex Sans";">compass and straightedge construction. </span></div><div><span style="font-family: "IBM Plex Sans";"><br /></span></div><div><span style="font-family: "IBM Plex Sans";">Me: I am displeased with the discrepant notation of using a single character for the </span><span style="font-family: "IBM Plex Sans";">short line segment's length while notating the end points of the other line segments as full (x, y) citizens in the sketch.</span></div><div><span style="font-family: "IBM Plex Sans";"><br /></span></div><div><span style="font-family: "IBM Plex Sans";">Andrew (post facto): For all I know, this could be an issue of translation, </span><span style="font-family: "IBM Plex Sans";">as the copy of the elements that I have is based upon Heath's translation. You stated that referring to the short line segment as a magnitude of </span><span style="font-family: "IBM Plex Sans";">length only, left it without any documentation of its location. Thus, a scalar would be suspended in space.</span></div></div><div><br /></div><div><span style="font-family: IBM Plex Sans;">Me: It was at this point that I used the term Doppelgänger or disembodied scalar to refer to a length floating in space, as compared to an anchored point drawn with specific (x, y) intention.</span></div><div><p><span style="font-family: IBM Plex Sans;">Euclid Postulate 4. All right angles are congruent (the same).</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGSMXfXd8kXsXAenyFv6RRtPkndiifhLt00F1Sy__93ap7j8f90oAQ26n82YCBLSZUxON82SHa_AdmMUnuY1lqtBUJKAD8Asjecpjf8hpcANGJIpXpGmrd80KFyrSpH9yc_f6iLPwhOoljF0vygi33p4LLTqr59M9WzdGCP44Wibu0UO7Gg/s1116/Screen%20Shot%202022-09-01%20at%201.22.56%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="792" data-original-width="1116" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGSMXfXd8kXsXAenyFv6RRtPkndiifhLt00F1Sy__93ap7j8f90oAQ26n82YCBLSZUxON82SHa_AdmMUnuY1lqtBUJKAD8Asjecpjf8hpcANGJIpXpGmrd80KFyrSpH9yc_f6iLPwhOoljF0vygi33p4LLTqr59M9WzdGCP44Wibu0UO7Gg/s320/Screen%20Shot%202022-09-01%20at%201.22.56%20PM.png" width="320" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br /><br /></span></div><div><div><span style="font-family: IBM Plex Sans;">Me: This one sounds like a tautology, as in, <i>it is what it is</i>, though granted, 'is-ness' is a lot larger space that the set of 90° angles.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;"><div style="font-family: Times;"><span style="font-family: IBM Plex Sans;">Me: What about the relationship of Cartesian grids to hexagons?</span></div><div style="font-family: Times;"><span style="font-family: IBM Plex Sans;"><br /></span></div><div style="font-family: Times;"><span style="font-family: IBM Plex Sans;">Andrew: There is</span><span style="font-family: "IBM Plex Sans";"> proof of the impossibility of trisecting an angle with a compass and straight-edge. The proof is <a href="https://en.wikipedia.org/wiki/Angle_trisection" target="_blank">here</a> and uses a cubic polynomial.</span></div><div style="font-family: Times;"><span style="font-family: IBM Plex Sans;"><div><br /></div><div>Me: This is example of symbolic representations providing insight into visual representations of geometric relationships.</div></span></div></span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Andrew: I am interested in the fact that Euclid dared to purport that all right angles were equal before our modern notion of the dot product allowed us to extend the concept of orthogonality into higher dimensions.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Me: Doug Gilmore at the University of Illinois once used the construct wherein two linguistic statements were orthogonal to each other once.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Andrew: We agree that this is a fascinating notion to introduce orthogonal statements that neither support nor oppose each other but rotate the discourse by 90° into a higher dimension of understanding. These orthogonal statements could form the "basis" or "basis functions" for a view of the universe.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Me: [the term '<i>basis functions</i>' is a trigger for me] Very interesting.</span></div><div><p><span style="font-family: IBM Plex Sans;">We talked about circles as <em>basis functions </em>for a drawing:</span></p><ul><li><span style="font-family: IBM Plex Sans;">One circle of fixed radius that couldn't move.</span></li><li><span style="font-family: IBM Plex Sans;">Many circles of fixed radius that could move.</span></li><li><span style="font-family: IBM Plex Sans;">Many circles of varying radius that could move.</span></li></ul><p><span style="font-family: IBM Plex Sans;">About this time, a young man was violently upset was being escorted from the gym after an altercation on the basketball court. It was hard to remain focused on our conversation, but we did our best, our limbic systems nonetheless activated for a fight or flight situation occurring before us. We remained on task, hoping that he would be back in better spirits.</span></p><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuE7qe5PedYSAzRughF8NyuxdJr-h_6N39HWh6IJZmYgv76ysrUsDBTe-X-_g5a-4dwEGb2TRAlytlFyKmQxTyORYWTWLNdIR227se8qstUIRlm819Duj7pZnMhWysRjQotOE8oT5ka_sjg9OxXMSt_VSTLnOcs-nixpGEsNJpsm3EIHeYJQ/s792/R.jpeg"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="792" data-original-width="612" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuE7qe5PedYSAzRughF8NyuxdJr-h_6N39HWh6IJZmYgv76ysrUsDBTe-X-_g5a-4dwEGb2TRAlytlFyKmQxTyORYWTWLNdIR227se8qstUIRlm819Duj7pZnMhWysRjQotOE8oT5ka_sjg9OxXMSt_VSTLnOcs-nixpGEsNJpsm3EIHeYJQ/s320/R.jpeg" width="247" /></span></a></div><div><span style="font-family: IBM Plex Sans;">It was time to do another set of bench presses of the upright and orthogonal variety.</span></div></div></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">We resumed talking about how ideas, facts and statements can be orthogonal to each other. Sometimes redundancy of expression cements an idea. For terseness orthogonal statements cover the most territory in the least words.
</span><p><span style="font-family: IBM Plex Sans;">Me: There is also a symbolic definition of dot product being the definition of orthogonality, specifically the formula:</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4I2K5zaN9AI8kLoOt27YOoMJhoGuZIrTwML-VhMM-HnIYnEJeqoLSsuNEDeht4JTrqeJRbYjSX_N4otdcYYoYdPB1Ba-2irZ9AyV-i83oDBhqYPxFpFjpnBymTYoAmmoEX07Y4tf3US-qyxMvZwi6AKk74wZqHsbm23imn6nsA_ueHAep_g/s642/Screen%20Shot%202022-09-01%20at%201.54.20%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="590" data-original-width="642" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4I2K5zaN9AI8kLoOt27YOoMJhoGuZIrTwML-VhMM-HnIYnEJeqoLSsuNEDeht4JTrqeJRbYjSX_N4otdcYYoYdPB1Ba-2irZ9AyV-i83oDBhqYPxFpFjpnBymTYoAmmoEX07Y4tf3US-qyxMvZwi6AKk74wZqHsbm23imn6nsA_ueHAep_g/s320/Screen%20Shot%202022-09-01%20at%201.54.20%20PM.png" width="320" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br />
<br />The question arose as to whether giving someone the symbolic representation of something is the same as giving them the geometric representation. It isn't. Both are needed. Two faces of the same coin.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: "IBM Plex Sans";">We talked about the appearance of angle as being another disembodied scalar like length, those comprising the two fundamental aspects of dimension. We wondered if the 12 dimensions of string theory, including the tiny curled up dimensions aren't conflating rotation with length. The mean streets all sit orthogonal to each other.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Andrew: Consider if in two triangles, two sides and the angle subtended by them are equal, then the triangles are equal. T</span><span style="font-family: "IBM Plex Sans";">he proof is a joining of the triangles along a common side and folding them upon each other. The proof presented by </span><span style="font-family: "IBM Plex Sans";">Euclid used a translational superposition of the triangles.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Me: The process of proof could be encoded within a trio of affine transformation matrices. In this way, truth could be containerized and exploited later. It is not until the truth is instantiated, at the point of the application of knowledge, that value is obtained. No symbolic expression achieves its full value until it is populated by actual numbers that express actual truths.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Andrew: So t</span><span style="font-family: "IBM Plex Sans";">he truth would not be observed until the transformations were applied to a specific situation, although the true nature of the transformation </span><span style="font-family: "IBM Plex Sans";">would still be securely encoded.</span></div><div><span style="font-family: "IBM Plex Sans";"><br /></span></div><div><span style="font-family: "IBM Plex Sans";">Me: It is interesting that we have geometric expressions of truth and symbolic expressions of the same truth.</span></div><div><span style="font-family: "IBM Plex Sans";"><br /></span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Andrew </span><span style="font-family: "IBM Plex Sans";">Postulate 5: Parallel lines never meet. Biased lines will eventually intersect. The devil of Euclid, that hyperbolic geometers love to ride on about.</span><span style="font-family: IBM Plex Sans;"><br /></span><p><span style="font-family: IBM Plex Sans;">Euclid Postulate 5. If two lines are drawn which intersect a third in such a way that the sum of the inner angles on one side is less than two right angles, then the two lines inevitably must intersect each other on that side if extended far enough. This postulate is equivalent to what is known as the parallel postulate.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHhpSe3LLhliuZcLfZBdOD4GTjWwysWklEELzSluvuK9YikrCvT-6X1xBvVeUsds_3XgUOEDiwWHJvXYijpMEn3YdZEuHXR9L2S8dzsBLXqKtfZ_sSVpS5gBEilQYyfNwNnG9ScnNJeSqa5sjTpB3t9Uza9o-KtqEeVF1fDUpHM6CF7VhAjA/s844/Screen%20Shot%202022-09-01%20at%202.00.12%20PM.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="516" data-original-width="844" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHhpSe3LLhliuZcLfZBdOD4GTjWwysWklEELzSluvuK9YikrCvT-6X1xBvVeUsds_3XgUOEDiwWHJvXYijpMEn3YdZEuHXR9L2S8dzsBLXqKtfZ_sSVpS5gBEilQYyfNwNnG9ScnNJeSqa5sjTpB3t9Uza9o-KtqEeVF1fDUpHM6CF7VhAjA/s320/Screen%20Shot%202022-09-01%20at%202.00.12%20PM.png" width="320" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br /><br />
</span><p><span style="font-family: IBM Plex Sans;">Andrew then went on to illustrate the theorem of the isosceles triangle having extended legs, which produced a 12-angle complexity pop. I mentioned that if one went through all of Euclid's theorems (<a href="https://qr.ae/pvgFUU" target="_blank">of which there appear to be 468</a>) looking for complexity 'pops' (sudden increases) that one might be able to find a path of most escalating complexity and possibly the next big thing.</span></p><p><span style="font-family: IBM Plex Sans;">Andrew: If an isosceles triangle has its congruent sides extended, the angles subtended by the base and the congruent sides are equal, </span><span style="font-family: "IBM Plex Sans";">as are the angles between the base and the extended lines.</span></p><p><span style="font-family: "IBM Plex Sans";">He recounted later that this proof obviously exploded in complexity or sophistication due to its length. It is observably longer and more detailed that the four propositions that precede it, managing to occupy an entire page in the book. You mentioned that this being the first burst of complexity, it would be prudent to watch out for and trace the pathway of similar bursts of complexity, and that following such a path would lead to the next node in the path of discovery.</span></p>
<p><span style="font-family: IBM Plex Sans;">Andrew then showed me a sketch where he had mapped every point in a grid from the origin to the grid and made a clever deduction about the null space of linear algebra.</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRCyjmt0U5ZmM4l3kw-2WTxjeM2QW4VadU-sw3y1IAvqQE--ilh8vqyKsUcGotKKvibQkJMyS-WlAWRFsZ0wqB3JsrRyTgFelzN4VVnH2sxzgkUPSeJOQN9d72QovdAwKcoGeDoabtH-KqyWukmWb84ow_BamGdg9PKlw7ukJwHDeqaQEkcQ/s941/AndrewBaumanNB-page.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="941" data-original-width="766" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRCyjmt0U5ZmM4l3kw-2WTxjeM2QW4VadU-sw3y1IAvqQE--ilh8vqyKsUcGotKKvibQkJMyS-WlAWRFsZ0wqB3JsrRyTgFelzN4VVnH2sxzgkUPSeJOQN9d72QovdAwKcoGeDoabtH-KqyWukmWb84ow_BamGdg9PKlw7ukJwHDeqaQEkcQ/w299-h368/AndrewBaumanNB-page.png" width="299" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div><span style="font-family: IBM Plex Sans;">Andrew: The singularity. To further practice drawing lines, I attempted to map an imaginary grid from the center of the page. A straight line does not have any intrinsic directional characteristics, so that my intention to map the center point to the grid points </span><span style="font-family: "IBM Plex Sans";">could be equally described as a mapping of the grid points to the center point.</span></div><div><span style="font-family: "IBM Plex Sans";"><br /></span></div><div><span style="font-family: "IBM Plex Sans";">Me: You have expressed the relationship between the Cartesian and polar coordinate systems, and how there existed finite</span><span style="font-family: "IBM Plex Sans";"> angles with rational tangents that I could represent and a large number of continuous angles I could not represent.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Andrew: Another curious outcome of my drawing exercise, seemingly more artistic than mathematical, in which I was reminded of the Null space </span><span style="font-family: "IBM Plex Sans";">in Linear Algebra, where the entirety of a space is mapped into the zero vector, thereby vanished into nothingness. By coincidence, since I started </span><span style="font-family: "IBM Plex Sans";">drawing lines at the center of the page, the center point of the page had the highest accumulation of graphite and was therefore the darkest point on the page</span></div><div><span style="font-family: IBM Plex Sans;">as if it were a dark hole pulling in all of space.</span></div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><span style="font-family: IBM Plex Sans;">Me: The origin is a singularity and if lines of zero width, that there would be no darkening, but that there would still be a singularity </span><span style="font-family: "IBM Plex Sans";">as a result of the density of lines at the center.</span></div><p><span style="font-family: IBM Plex Sans;">We talked about the density of the lines in such a graph and how as one moves closer to the origin the density increases until at the origin you have a black singularity. I initially said that the density was an artifact of the finite width of drawn lines but recanted that in favor of a definition of a circular region of fixed radius that we could count the number of line crossings in to obtain a line density metric. His sketch showed the intrinsic difference between a Cartesian and radial coordinate system, with the existence proof, obtainable by inspection that a finite grid with lines draw from each grid point to the origin can only represent a subset of the possible angles in a continuous space. Further the number of angles in the discrete set are always smaller than the number of angles that cannot be represented, implying that in the limit that the number of grid angles on an infinite grid is smaller than the number of continuous angles, which informally makes the case for different sizes of infinity.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Zz_1efncQLkGhmhsOWpDtC5p2w1kl_6upDjTb0FlooBK9Kh5xbbjgQnZMqv28o_raybmVI9eFpUMwdN1Or3Fj8OITHPagpQQFfwKlwUOaJds8NefUGKSHoNa2hC0y8XQpWFHqQ7jYg0QbK2aKYu0UgN3Ugej9GyetM0ZMfqM85Cnxr28jw/s2048/van7850signed%20copy.png"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="2048" data-original-width="2048" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Zz_1efncQLkGhmhsOWpDtC5p2w1kl_6upDjTb0FlooBK9Kh5xbbjgQnZMqv28o_raybmVI9eFpUMwdN1Or3Fj8OITHPagpQQFfwKlwUOaJds8NefUGKSHoNa2hC0y8XQpWFHqQ7jYg0QbK2aKYu0UgN3Ugej9GyetM0ZMfqM85Cnxr28jw/s320/van7850signed%20copy.png" width="320" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br /><br />
</span><p><span style="font-family: IBM Plex Sans;">Then I mentioned Euler's formula for points (vertices), edges and faces.</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD6VgnJndBMgqlDb7-Yaev-0fAR1iN-YbzBsEgnx_9E3-ewHNKGBeS0nvJOFtUKsZOKgjdcsCNjwTvGPDDOuLTBLveTkRQvKZwrLZV2XP8AMfwfaUZgRJhklFdVTSY11jdDM--b3EnuyWrbwlr3pKCmTiGWRsTc9ukEex3y40tSoSL4g-xJQ/s1440/EulersFormula.jpg"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="1440" data-original-width="1440" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD6VgnJndBMgqlDb7-Yaev-0fAR1iN-YbzBsEgnx_9E3-ewHNKGBeS0nvJOFtUKsZOKgjdcsCNjwTvGPDDOuLTBLveTkRQvKZwrLZV2XP8AMfwfaUZgRJhklFdVTSY11jdDM--b3EnuyWrbwlr3pKCmTiGWRsTc9ukEex3y40tSoSL4g-xJQ/s320/EulersFormula.jpg" width="320" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br /><br />
</span><p><span style="font-family: IBM Plex Sans;">Andrew: 'haven't yet gone that far into graph theory...</span></p>
<p><span style="font-family: IBM Plex Sans;">Me: I think this precedes graph theory, but there is a connection. When I think of graph theory, I think of the <a href="https://www.slideserve.com/kata/the-7-bridges-of-konigsberg" target="_blank">Koenigsberg Bridge Problem</a>:</span></p>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwe3brnznTNqnWEHRArG3ek94MHltbGB1OtQ9ZMUF79KFxK6_MujtzJ2B3mUI-ltCY0BRlyeRlrWMWwv-Avnl66mmnQNhL2G-7dDUJZRcnt0QhTDe8ssffzK-6BVoTMCCGRlseJb9aP0o1jzbT0G_bN3QDmbpMYOzi_CMnVslC08AQdJ47bw/s1024/k-nigsberg-bridges-l.jpg"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="768" data-original-width="1024" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwe3brnznTNqnWEHRArG3ek94MHltbGB1OtQ9ZMUF79KFxK6_MujtzJ2B3mUI-ltCY0BRlyeRlrWMWwv-Avnl66mmnQNhL2G-7dDUJZRcnt0QhTDe8ssffzK-6BVoTMCCGRlseJb9aP0o1jzbT0G_bN3QDmbpMYOzi_CMnVslC08AQdJ47bw/w378-h284/k-nigsberg-bridges-l.jpg" width="378" /></span></a></div>
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW_ojJ6ypyaaU3zd7fIdOq_vraY7rV4bYmzZzbw8xBkVkSB-FU-qrF-PqTsAjzCRyCcX6I4VHgilxk9dDX0oG-8gPDxxZpBpjCm2CDZSw4AtjsdWlZztEZ5ciZ4my9w53JemJHrrjJyv-GpwZb0kAf7Vk3CzMpKjmpvuIO0DrIF1S7NL_JsQ/s1024/slide9-l.jpg"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="768" data-original-width="1024" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW_ojJ6ypyaaU3zd7fIdOq_vraY7rV4bYmzZzbw8xBkVkSB-FU-qrF-PqTsAjzCRyCcX6I4VHgilxk9dDX0oG-8gPDxxZpBpjCm2CDZSw4AtjsdWlZztEZ5ciZ4my9w53JemJHrrjJyv-GpwZb0kAf7Vk3CzMpKjmpvuIO0DrIF1S7NL_JsQ/w376-h283/slide9-l.jpg" width="376" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br />
<br />
</span><p><span style="font-family: IBM Plex Sans;">Euler sure got around.</span></p><p><span style="font-family: IBM Plex Sans;">Collaborations that are highly disciplined can be rewarding. Michael Lewin writes about a collaboration between Amos Tversky and Daniel Kahneman. Ruthlessly revisiting items considered basic can yield new truth and bring old truth to life via exercise. Like a kata, a well-rehearsed prearranged form that the practitioner already knows, its repetition builds mastery.</span></p>
<div style="text-align: center;"><a href="https://www.amazon.com/Undoing-Project-Friendship-Changed-Minds-ebook/dp/B01GI6S7EK/ref=sr_1_1?crid=N2QH6B72WPEY&keywords=michael+lewis+the+undoing+project&qid=1662045751&s=books&sprefix=michael+lewis+the+undoing+project%2Cstripbooks%2C77" target="_blank"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="1459" data-original-width="1054" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFYe8nOsbFv8cCaUV40YU1M3BQLHoWZrnkN-ZZr1ZoXfdNci8K22lic1WWKHThRaEZKGO1zbiDst4v0tUeA8rFGH40z2i87z-1-Bu8asMn_AAWbqdC_pIvlcPDuy9uDM3CRFGujj3yS-r-h19wJiwpCN_nN45OoeBWwFn0miEoYkK5eYh7NQ/w289-h400/02BOOK-superJumbo-v2.jpg" width="289" /></span></a></div>
<span style="font-family: IBM Plex Sans;"><br />
</span><p><span style="font-family: IBM Plex Sans;">There was a war on. This did not stop Freeman Dyson from applying himself to the problems of the day, to eventually winning a Nobel Prize. He had talent, but he also got back to basics and mastered them. Read this book when you have time. It is a set of letters through his life that provide a story, the hooks upon which to hang the practices of a physicist/mathematician.</span></p>
<div style="text-align: center;"><a href="https://www.amazon.com/Maker-Patterns-Autobiography-Through-Letters/dp/0871403862/ref=sr_1_1?crid=2OIM0XD3NGA32" target="_blank"><span style="font-family: IBM Plex Sans;"><img alt="" border="0" data-original-height="2125" data-original-width="1400" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYhCIej6Ra6D6PbRK1-iuD3TyRtrM-vnr9lkGxEl_tjZgo_rSvqXCNlIbVNk2q_pOebU1jjghahpXQD5umcoBD_gOfuXVxYHhkzRBJHFcKNWodkQNkc1KZvMoCY5d-IyTy6dGG_fiIb1ZPOeHKsVmXhxyACyLL9C47DAR9lG_vr7kYc6j46Q/w264-h400/MakerOfPatterns.jpg" title="Freeman Dyson - Maker of Patterns" width="264" /></span></a></div>
<br />
</div><div><span style="font-family: IBM Plex Sans;"><br /></span></div><div><br /></div><div><span style="font-family: IBM Plex Sans;">Me: Watch "<a href="https://www.youtube.com/watch?v=86_vnQc1oBE&ab_channel=GretaVanFleetVEVO" target="_blank">When the Curtain Falls</a>", by Greta Van Fleet.</span></div>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-26948893917147040312022-08-27T01:08:00.009-05:002022-08-27T01:35:51.120-05:00Dinner with Andrew<p><span style="font-family: Source Code Pro;">Okay, so it wasn't dinner, and it wasn't with André, but it was a great conversation. The following is a best efforts recollection, possibly, make that certainly, out-of-order.</span></p><p><span style="font-family: Source Code Pro;">[We're exercising at the University gym, returning not only from the summer hiatus, but from the pandemic, from isolation, etc.]</span></p><p><span style="font-family: Source Code Pro;">Me: So Andrew, what is your major again? Hey Dr. Chiang, meet Andrew, he is the next Kurt Gödel.</span></p><p><span style="font-family: Source Code Pro;">Dr. Chiang: Wow! Are you in Computer Science?</span></p><p><span style="font-family: Source Code Pro;">Andrew: Physics and Math</span></p><p><span style="font-family: Source Code Pro;">[That reminded me </span><span style="font-family: "Source Code Pro";">of</span><span style="font-family: "Source Code Pro";"> </span><a href="https://en.wikipedia.org/wiki/C%C3%A9dric_Villani" style="font-family: "Source Code Pro";" target="_blank">Cedric Villani</a><span style="font-family: "Source Code Pro";"> who</span><span style="font-family: Source Code Pro;"> won a Fields Medal, he worked with the Boltzmann's equation of a gas, which talks about the distribution of molecular velocities, which seemed more like chemistry than math. Dr. Villani, besides being very distinguished is very kind and approachable.]</span></p><p><span style="font-family: Source Code Pro;">Me: What are you taking?</span></p><p><span style="font-family: Source Code Pro;">Andrew: Discrete Math, Classical Electrodynamics...</span></p><p><span style="font-family: Source Code Pro;">Me: Discrete Math?</span></p><p><span style="font-family: Source Code Pro;">Andrew: Yes and I'm reading a book by Knuth on '<a href="https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025" target="_blank">Concrete Mathematics</a>' which is a [<a href="https://www.google.com/search?q=define+portmanteau&oq=define+portmanteau&aqs=chrome..69i57j0i512l2j0i22i30l6j0i15i22i30.2848j0j7&sourceid=chrome&ie=UTF-8" target="_blank">portmanteau</a>] of the words CONtinuous and disCRETE.<br /></span></p><p><span style="font-family: Source Code Pro;">Me: Clever. Time with Knuth is time well spent. What about Quantum Electrodynamics?</span></p><p><span style="font-family: Source Code Pro;">[10 sitting bench presses and some banter.]</span></p><p><span style="font-family: Source Code Pro;">Andrew: Mutters something about <a href="https://en.wikipedia.org/wiki/Dirac_delta_function" target="_blank">Dirac Delta Functions</a>.</span></p><p><span style="font-family: Source Code Pro;">Me: Infinitely Narrow, Infinitely Tall</span></p><p><span style="font-family: Source Code Pro;">Andrew: And unit area! (An area of 1)</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4CclqRncglwbcUnvopTHufF5-ZhFUgafYCI56DNEQJnWmgtj9jdAEGpQ7j2dMxr8CBGDqboF0yBCYKf21AcjHe0WE0ifB-G0O4OEzrS_juu_WKQC4Cv8Wln4mGHYnYVTV9bndC0zZDbhlPeUDNsMhKygGpp246anvYgRiIkT9y8kamuYH2A/s1335/delta_function-002.png" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Source Code Pro;"><img border="0" data-original-height="734" data-original-width="1335" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4CclqRncglwbcUnvopTHufF5-ZhFUgafYCI56DNEQJnWmgtj9jdAEGpQ7j2dMxr8CBGDqboF0yBCYKf21AcjHe0WE0ifB-G0O4OEzrS_juu_WKQC4Cv8Wln4mGHYnYVTV9bndC0zZDbhlPeUDNsMhKygGpp246anvYgRiIkT9y8kamuYH2A/s320/delta_function-002.png" width="320" /></span></a></div><p><span style="font-family: Source Code Pro;">Me: Those are interesting basis functions. </span></p><p><span style="font-family: Source Code Pro;">In my head I'm seeing a pair of them and wondering how one could create a parametric expression to interpolate between them:</span></p><p><span style="font-family: Source Code Pro;"><br /></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq_JNlUbrBPtSjTXHtYcc2dlwhIo4kZe4qCaE1VE-cZoI2RaWgLfzz3Rdxg4F7rkX698IEL4VfXc0sYV3q5l0n4v38MLkZX0a4M1QBtYU4KDcsNPJeoYn2zu0-7coefqi8Yd8YdCwdPi5yo_dpb6q2Vo07yAFDYB4IeUxa6_5whFssdANWPA/s321/VanParametricEquation.gif" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Source Code Pro;"><img border="0" data-original-height="282" data-original-width="321" height="562" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq_JNlUbrBPtSjTXHtYcc2dlwhIo4kZe4qCaE1VE-cZoI2RaWgLfzz3Rdxg4F7rkX698IEL4VfXc0sYV3q5l0n4v38MLkZX0a4M1QBtYU4KDcsNPJeoYn2zu0-7coefqi8Yd8YdCwdPi5yo_dpb6q2Vo07yAFDYB4IeUxa6_5whFssdANWPA/w640-h562/VanParametricEquation.gif" width="640" /></span></a></div><span style="font-family: Source Code Pro;"><br /></span><p><span style="font-family: Source Code Pro;">[This raised a sidebar where we discussed <a href="https://wdv.com/Calculus/Lecture01.pdf" target="_blank">explicit, implicit and parametric</a> functions. Visit the link if you care to explore these creatures.]</span></p><p><span style="font-family: Source Code Pro;">Andrew: ... and did a particularly nice view of Ohm's law in terms of flux and such.</span></p><p><span style="font-family: Source Code Pro;">Me: So that would be a Maxwell's Law version of R = V/I?</span></p><p><span style="font-family: Source Code Pro;">[It was time to put a mention of <a href="https://www.falstad.com/circuit/circuitjs.html" target="_blank">Falstad's circuit simulator</a> which is amazingly visual and useful since it animates current flow and signal.</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijIVX69VeqLIJPeXHG-yXpfQkvodvumf1fjKzmWM-JgcWoE0cqOIULJNr5Jy-lI5hEMcplgJGJ6nHfjUYnm9W9-cusP9URQUqPcQENrp-1dy4YMpsymrkW4ELuOt072ZCENaMnFGt8CnOhuyk8GP2-XenAbtGYnBkCBz7Ys18ZZhhP5Qj0cg/s760/Screen%20Shot%202022-08-27%20at%2012.19.45%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="706" data-original-width="760" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijIVX69VeqLIJPeXHG-yXpfQkvodvumf1fjKzmWM-JgcWoE0cqOIULJNr5Jy-lI5hEMcplgJGJ6nHfjUYnm9W9-cusP9URQUqPcQENrp-1dy4YMpsymrkW4ELuOt072ZCENaMnFGt8CnOhuyk8GP2-XenAbtGYnBkCBz7Ys18ZZhhP5Qj0cg/s320/Screen%20Shot%202022-08-27%20at%2012.19.45%20AM.png" width="320" /></a></div><br /><span style="font-family: Source Code Pro;"><br /></span><p></p><p><span style="font-family: Source Code Pro;">[Then we went upstairs to play ping pong, called 'table tennis' by those who keep score, but we don't as it violates the aesthetic of keeping the ball going in the highly echoic racquetball court. We countered the echos by turning the table at 45 degrees, which helped funnel errant shots but did little for the many copies of sound we got during our conversation.]</span></p><p><span style="font-family: "Source Code Pro";">V = IR reminded me of F = ma which reminded me of E = mc<sup>2</sup></span></p><p><span style="font-family: Source Code Pro;">Me: The problem with the last trifecta is that c is squared when maybe it should just be a thing that isn't. Consider <a href="https://www.youtube.com/watch?v=2dwQUUDt5Is&ab_channel=Morphocular" target="_blank">half-derivatives</a> which interpolate between two worlds as well. Like maybe Length, Mass, and Time are consequences of things, rather than fundamental things. Perhaps we live in a world where velocity is the fundamental value, rather than position or length - where length is the integral of velocity with respect to time, rather than velocity being the derivative of length with respect to time.<br /></span></p><p><span style="font-family: Source Code Pro;">[We went on for a bit about making things non-dimensional, like lift and drag coefficients and unitizing things so for example, the speed of light, c = 1.</span></p><p><span style="font-family: Source Code Pro;">As the ping pong ball (note it isn't called a table tennis ball) was flying back and forth, I mentioned that <a href="https://worldscienceu.com/courses/" target="_blank">simultaneity is in the eye of the beholder</a> according to the Special Relativity Lectures by Brian Greene.</span></p><p><span style="font-family: Source Code Pro;">Then after a few more rounds <a href="https://www.math.arizona.edu/~models/Ruled_Surfaces/" target="_blank">ruled surfaces</a> came up. They appear curved, but are built of straight lines, which at first seems paradoxical.]</span></p><p><span style="font-family: Source Code Pro;">Me: You know black holes can float on water right?!</span></p><p><span style="font-family: Source Code Pro;">Andrew: (incredulous expression)</span></p><p><span style="font-family: Source Code Pro;">Me: It's true, I didn't believe it myself until I did the calculation. You can check my numbers but with mass accretion in supermassive black holes there is a war between surface area and volume and the upshot is that density drops considerably as the mass of a black hole increases. You can check my math:</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZjEHf9zg_c0q8Csa8op9kPtlmSOrESOfUBRPuhIcnBBm3Zao02ubNhp2FQUjzbrII5kuAxZqo5hJ_R9DXZtWSy_4MLcxoOd8Ag_Zwvpuo130T_qClCI7O0DtPj08axwZgd_GMR5O3se5MLM-89MALJ1CGoQWhzNoCqS2C_rJWgdwGyMNL6w/s2000/vanBlackHole.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZjEHf9zg_c0q8Csa8op9kPtlmSOrESOfUBRPuhIcnBBm3Zao02ubNhp2FQUjzbrII5kuAxZqo5hJ_R9DXZtWSy_4MLcxoOd8Ag_Zwvpuo130T_qClCI7O0DtPj08axwZgd_GMR5O3se5MLM-89MALJ1CGoQWhzNoCqS2C_rJWgdwGyMNL6w/s16000/vanBlackHole.png" /></a></div><br /><p></p><p><span style="font-family: Source Code Pro;">The moral to the story was the reminder that I too should consider wearing a floppy Oppy hat when playing ping pong in a highly echoic room to suppress the back channels.</span></p><p><span style="font-family: Source Code Pro;">Other Topics We Talked, Save for Later:</span></p><p></p><ul style="text-align: left;"><li><span style="font-family: Source Code Pro;">Pencil and Paper vs. Computer for Mathematics</span></li><li><span style="font-family: Source Code Pro;">Case in Point:</span></li><ul><li><span style="font-family: Source Code Pro;">Interval Arithmetic for Heisenberg vs.</span></li><li><span style="font-family: Source Code Pro;">Maxima - A bulldozer for mathematics</span></li></ul><li><span style="font-family: Source Code Pro;">The Principle of Least Action</span></li><li><span style="font-family: Source Code Pro;">The Lagrangian</span></li><li><span style="font-family: Source Code Pro;">Emmy Noether's Principle and The Unassassin Trailer</span></li><li><span style="font-family: Source Code Pro;">Ray Tracing Corners: Is the space Covered?</span></li></ul><p></p>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-76563427346616355032022-04-01T03:07:00.001-05:002022-04-01T03:07:36.770-05:00How to Get a Factor of Ten Speedup In Google Colab Jupyter Notebooks and Other Tricks<span style="font-family: Roboto; font-size: medium;">I don't work for Google. I'm just a Ph.D. student trying to get by. This evening at 1 AM, I was working with an <a href="https://github.com/aymericdamien/TensorFlow-Examples/blob/master/tensorflow_v1/examples/3_NeuralNetworks/autoencoder.py" target="_blank">autoencoder example</a> that took a long time to train. Autoencoders are cool, but I don't have all day to wait around.</span><div><span style="font-family: Roboto; font-size: medium;"><br /></span></div><div><span style="font-family: Roboto; font-size: medium;">I use Google Colab for Python Jupyter Notebooks because I don't have to install any software on my machine. This also saves gobs of time and disk space.</span></div><div><span style="font-family: Roboto; font-size: medium;"><br /></span></div><div><span style="font-family: Roboto; font-size: medium;">Google maintains a host of library versions insuring compatibility, which is an enormous convenience since machine learning is a rapidly changing field by the day, even by the hour.</span></div><div><span style="font-family: Roboto; font-size: medium;"><br /></span></div><div><span style="font-family: Roboto; font-size: medium;">Google Colab is technically free, but $10 a month buys you access to GPU's, TPU's and the promise your job will actually finish. I figure it's my tithe to Google for all the good they do.</span></div><div><span style="font-family: Roboto;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdbpJLuY_ssHK4hI36GfaOCc01LobTHHaJOjpIcqXAsX_I9ouGrfVigDNjEO72UI8G-G414X1x8ATGyxXzwVZ73ndxz9D4OagIvGstND74ara1nOVlIEfR3WrNGgNoCc6LvhKUcz9UhJTDEiG0A-iuQ1GGGuccEavXr2kOZgq4xq4Cdm3mLQ/s679/Screen%20Shot%202022-04-01%20at%202.16.41%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="679" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdbpJLuY_ssHK4hI36GfaOCc01LobTHHaJOjpIcqXAsX_I9ouGrfVigDNjEO72UI8G-G414X1x8ATGyxXzwVZ73ndxz9D4OagIvGstND74ara1nOVlIEfR3WrNGgNoCc6LvhKUcz9UhJTDEiG0A-iuQ1GGGuccEavXr2kOZgq4xq4Cdm3mLQ/w558-h230/Screen%20Shot%202022-04-01%20at%202.16.41%20AM.png" width="558" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: left;"><span style="font-family: Roboto;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: Roboto; font-size: medium;">At the top of the notebook is the Runtime Menu, go to the bottom item, yellow arrow:</span></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><br /></div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaPzgMx_J9eyzrpBBoAxJ0XQ4kMOFupM4cesjngPHweQEA1DDTN8qkTwoD65n_ajpILvlhzx_sk9QaAeviqWu87t9TEX7ICjXWC_QZbduNTKitaYAtJVBeqDjV5dZzHJxshz81XF_fWCuD8suV1KkmW8ZzkvZxLoOXSV__Wj-DJE9hxyWepA/s1036/Screen%20Shot%202022-04-01%20at%202.19.03%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="730" data-original-width="1036" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaPzgMx_J9eyzrpBBoAxJ0XQ4kMOFupM4cesjngPHweQEA1DDTN8qkTwoD65n_ajpILvlhzx_sk9QaAeviqWu87t9TEX7ICjXWC_QZbduNTKitaYAtJVBeqDjV5dZzHJxshz81XF_fWCuD8suV1KkmW8ZzkvZxLoOXSV__Wj-DJE9hxyWepA/w469-h330/Screen%20Shot%202022-04-01%20at%202.19.03%20AM.png" width="469" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: Roboto; font-size: medium;">When you run a notebook, you have the choice to use a bare CPU, a GPU, or a TPU, and in addition you can request extra RAM using the questionably named 'Runtime shape' menu:</span></div></div></div><div><span style="font-family: Roboto;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_wsFOUvoG8MsJtX-KIT8zIqfgYkzcPPpLeAOo6uQPi1UvAnyQu2vBKiA3wLzQjZn-0Nne6sWjnojahmFqM1o_D9X1KhExDAULj-SfPsTdSsQE0f1717vEXwJOgJc9cZUF9UCFjuXbEW-G5uJxx3eLT4pRvgm1Nbdeu-h21JSZhfQ1KngF5w/s792/Screen%20Shot%202022-04-01%20at%201.32.58%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="548" data-original-width="792" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_wsFOUvoG8MsJtX-KIT8zIqfgYkzcPPpLeAOo6uQPi1UvAnyQu2vBKiA3wLzQjZn-0Nne6sWjnojahmFqM1o_D9X1KhExDAULj-SfPsTdSsQE0f1717vEXwJOgJc9cZUF9UCFjuXbEW-G5uJxx3eLT4pRvgm1Nbdeu-h21JSZhfQ1KngF5w/w477-h330/Screen%20Shot%202022-04-01%20at%201.32.58%20AM.png" width="477" /></a></div><br /><span style="font-family: Roboto; font-size: medium;">The option dialogs look like this:</span></div><div><span style="font-family: Roboto;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBO8illvNMRkP6yjiMXyLA09_8QKsUfY9-4wUFh5Wo1H751w7mksy7XA34wbDP-e1NrT-_LF08XuYzkB4JuOonkDw2WWDzfsp4bVVBbTQS7Dx2g_kzo4QjCfsEYHUoPtgxp-zYbC9AqHHmiOeJwlWFF6ITI8FjD9jxad3IJofo-e4qmL7tPg/s282/Screen%20Shot%202022-04-01%20at%201.33.14%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="172" data-original-width="282" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBO8illvNMRkP6yjiMXyLA09_8QKsUfY9-4wUFh5Wo1H751w7mksy7XA34wbDP-e1NrT-_LF08XuYzkB4JuOonkDw2WWDzfsp4bVVBbTQS7Dx2g_kzo4QjCfsEYHUoPtgxp-zYbC9AqHHmiOeJwlWFF6ITI8FjD9jxad3IJofo-e4qmL7tPg/s1600/Screen%20Shot%202022-04-01%20at%201.33.14%20AM.png" width="282" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK48zOr_h0dNf4TdfUBn32AgP9xUZlxGLBkNhQz8gAXt8kYlqfN1z9JTanPtRAGb4d2AM0JsQ8v9CePg2ztfqBNIqdIkn968NfzAKsBicK2a89w80OgeQZw3ioY5YR4gHsarJB_EBIRrOH0cU35jVqDlrtb1g18rfSdnRYfIfrINgTp6aXKg/s236/Screen%20Shot%202022-04-01%20at%201.33.36%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="142" data-original-width="236" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK48zOr_h0dNf4TdfUBn32AgP9xUZlxGLBkNhQz8gAXt8kYlqfN1z9JTanPtRAGb4d2AM0JsQ8v9CePg2ztfqBNIqdIkn968NfzAKsBicK2a89w80OgeQZw3ioY5YR4gHsarJB_EBIRrOH0cU35jVqDlrtb1g18rfSdnRYfIfrINgTp6aXKg/s1600/Screen%20Shot%202022-04-01%20at%201.33.36%20AM.png" width="236" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-family: Roboto; font-size: medium;">but don't use Standard.</span></div></div><div><span style="font-family: Roboto; font-size: medium;"><br /></span></div><div><span style="font-size: medium;"><span style="font-family: Roboto;">I was curious, for my autoencoder experiments, which configuration of devices were the fastest. Intuition would say, GPU and extra RAM, but I don't trust my intuition when I can just measure something and know for sure. Here is the data generated by logging all possible combinations. </span><span style="font-family: Roboto;">You have to restart and run all to make sure that runtime configuration changes stick.</span></span></div><div><span style="font-family: Roboto;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmIjn1uHRSw_rvF-WCYIjOr-SvsN5_75f_6smeDsz_nHLta-i8-t2XGnoTcsaX6Gvml3cY6HSTQ5ahOi2HqVaFB_RDuFcDXbe48RPspJaJmyvFxEJ8ibDk_v9tAYQibqoUueIyej6Vs7XEtioMkx_S_fWmBDs7Yer-7hDxOc83lUObuNH94w/s1244/Screen%20Shot%202022-04-01%20at%202.02.42%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="794" data-original-width="1244" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmIjn1uHRSw_rvF-WCYIjOr-SvsN5_75f_6smeDsz_nHLta-i8-t2XGnoTcsaX6Gvml3cY6HSTQ5ahOi2HqVaFB_RDuFcDXbe48RPspJaJmyvFxEJ8ibDk_v9tAYQibqoUueIyej6Vs7XEtioMkx_S_fWmBDs7Yer-7hDxOc83lUObuNH94w/w565-h360/Screen%20Shot%202022-04-01%20at%202.02.42%20AM.png" width="565" /></a></div><br /><span style="font-family: Roboto;"><br /></span></div><div><span style="font-family: Roboto; font-size: medium;">To avoid analysis paralysis these values are thrown into a Python dictionary, with a quick crunch to compute the mean, round the results and sort them from fastest to slowest:</span></div><div><span style="font-family: Roboto;"><br /></span></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXka4FXQgHbXUx1b5Zd0i3scBYIjvhZ0Ql8gqPsRvb3frpsL7dj6OKmRehu_4zARcqCuPDwX2PhNY-v76rLCR2z8fQ3yI0EeJ5Ensbu4XtuokKyTekscBXyuwUe1nRAwHjgfEb2VWjuzZZfbEAtVFuMCOUnxMcYicO-oqn5zEtcq7R6xm_hw/s1178/Screen%20Shot%202022-04-01%20at%202.04.56%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="852" data-original-width="1178" height="411" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXka4FXQgHbXUx1b5Zd0i3scBYIjvhZ0Ql8gqPsRvb3frpsL7dj6OKmRehu_4zARcqCuPDwX2PhNY-v76rLCR2z8fQ3yI0EeJ5Ensbu4XtuokKyTekscBXyuwUe1nRAwHjgfEb2VWjuzZZfbEAtVFuMCOUnxMcYicO-oqn5zEtcq7R6xm_hw/w569-h411/Screen%20Shot%202022-04-01%20at%202.04.56%20AM.png" width="569" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJUWuUoBk4ozjKnoRw2vVSvE-ZL5a_kfFjUfEqpNMqVvtDH6YsAaYEJZ2B_BkAJLYZ33FV2CCS16nipa-kLE9bp5bQkmLebSqSFGRm1mPWdobaAFfl1UXuELGW3k7E2HcQD792Kb1iJVYilajKrenH77RX73YDqS7SkMGE4yOnGpe6pQNlZw/s662/Screen%20Shot%202022-04-01%20at%202.05.06%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="233" data-original-width="662" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJUWuUoBk4ozjKnoRw2vVSvE-ZL5a_kfFjUfEqpNMqVvtDH6YsAaYEJZ2B_BkAJLYZ33FV2CCS16nipa-kLE9bp5bQkmLebSqSFGRm1mPWdobaAFfl1UXuELGW3k7E2HcQD792Kb1iJVYilajKrenH77RX73YDqS7SkMGE4yOnGpe6pQNlZw/w578-h204/Screen%20Shot%202022-04-01%20at%202.05.06%20AM.png" width="578" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><span style="font-size: medium;"><br /></span></div><span style="font-size: medium;"><span style="font-family: Roboto;">Intuition turned out to be right, but there was a <b>surprise</b>. A TPU with a standard memory configuration was the slowest. This is a 'for-sure' since each case was run three times to account for process noise. I could have easily convinced myself that this was a reasonable choice and taken TEN times longer to get done.</span><span style="font-family: Roboto;"><br /></span></span></div><div><span style="font-family: Roboto; font-size: medium;"><br /></span></div><div><span style="font-family: Roboto; font-size: medium;">So GPU's with extra RAM are the fastest by a factor of ten for my particular problem which is a fairly run-of-the-mill machine learning task.</span></div><div><span style="font-family: Roboto;"><span style="font-size: medium;"><br /></span></span></div><div><span style="font-size: medium;"><span style="font-family: Roboto;"><b><span>Other Tricks</span></b><br />1) Running colab in a Chrome incognito window starts up lots faster for reasons I do not understand. The difference is significant. Don't have time to fix it either so I wrote the billing department at </span><span style="font-family: Roboto;">colab-billing@google.com</span><span style="font-family: Roboto;">. That is a lot faster than trying to get tech support for reasons I completely sympathize with. But hey, I'm a paying customer.</span></span></div><div><span style="font-size: medium;"><br /></span></div><div><span style="font-family: Roboto; font-size: medium;">2) To have colab show cell execution times automatically insert this code at the top of the notebook.</span></div><div><span style="font-family: Roboto; font-size: medium;"><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: monospace, Menlo, Monaco, "Courier New", monospace; line-height: 19px; white-space: pre;"><div><span style="color: #82c6ff;">!</span>pip install ipython-autotime</div><div><span style="color: #82c6ff;">%load_ext </span>autotime</div></div></span></div>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-21216948932849275382022-03-30T08:55:00.007-05:002022-03-30T09:01:48.130-05:00A Note on Clarity in Machine Learning<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta>
<meta content="Microsoft Word 15 (filtered)" name="Generator"></meta>
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{color:#0563C1;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang="EN-US" link="#0563C1" style="background-color: #99cc99;" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">We live in an internet of information and an internet of
things.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The trifecta of childhood dreams, rockets, robots and radio
has never seen a </p>
<p class="MsoNormal">brighter time. They are the three R's for the digital age.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Oz is giving something to the Tin Man, that he didn't
already have - an artificial brain.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Adding to the seismic shift we find ourselves in is the
explosion of machine learning (ML) techniques. There are two kinds of
detonation taking place.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The first is the increase in the number of fundamental algorithms.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The second is in permutations or variants of those
algorithms.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Consider the garden of fundamental algorithms:</p>
<p class="MsoNormal"> </p>
<p class="MsoListParagraphCxSpFirst" style="line-height: 115%; text-indent: -.25in;">1.<span style="font: 7.0pt "Times New Roman";"> </span>Linear
Regression (Supervised ML)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">2.<span style="font: 7.0pt "Times New Roman";"> </span>Logistic
Regression (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">3.<span style="font: 7.0pt "Times New Roman";"> </span>Decision
Tree (Supervised) </p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">4.<span style="font: 7.0pt "Times New Roman";"> </span>Random
Forest – Ensemble of Decision Trees (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">5.<span style="font: 7.0pt "Times New Roman";"> </span>Support
Vector Machines - SVM (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">6.<span style="font: 7.0pt "Times New Roman";"> </span>Naive
Bayes (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">7.<span style="font: 7.0pt "Times New Roman";"> </span>Gradient
Boosting Algorithms - XG Boost (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">8.<span style="font: 7.0pt "Times New Roman";"> </span>Convolutional
Neural Network – CNN (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">9.<span style="font: 7.0pt "Times New Roman";"> </span>Recurrent
Neural Network – RNN (Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">10.<span style="font: 7.0pt "Times New Roman";"> </span>K-Nearest Neighbors – kNN
(Supervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">11.<span style="font: 7.0pt "Times New Roman";"> </span>K-Means (Unsupervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">12.<span style="font: 7.0pt "Times New Roman";"> </span>Dimensionality Reduction: Principal
Components Analysis – PCA (Unsupervised)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">13.<span style="font: 7.0pt "Times New Roman";"> </span>Generative Adversarial
Networks – GANs (Both)</p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: 115%; text-indent: -.25in;">14.<span style="font: 7.0pt "Times New Roman";"> </span>Reinforcement Learning – RL
(Neither)</p>
<p class="MsoListParagraphCxSpLast" style="line-height: 115%; text-indent: -.25in;">15.<span style="font: 7.0pt "Times New Roman";"> </span>Attention Mechanisms that
Prioritize Machine Learning Operations (Self Supervised)</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Consider the garden of a specific ML device, the autoencoder,
we have:</p>
<p class="MsoNormal"> </p>
<p class="MsoListParagraphCxSpFirst" style="text-indent: -.25in;">1.<span style="font: 7.0pt "Times New Roman";"> </span>Denoising Auto-encoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">2.<span style="font: 7.0pt "Times New Roman";"> </span>Sparse
Autoencoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">3.<span style="font: 7.0pt "Times New Roman";"> </span>Deep
Autoencoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">4.<span style="font: 7.0pt "Times New Roman";"> </span>Contractive
Autoencoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">5.<span style="font: 7.0pt "Times New Roman";"> </span>Undercomplete
Autoencoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">6.<span style="font: 7.0pt "Times New Roman";"> </span>Convolutional
Autoencoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">7.<span style="font: 7.0pt "Times New Roman";"> </span>Variational
Autoencoders</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">8.<span style="font: 7.0pt "Times New Roman";"> </span>Recurrent Autoencoders</p>
<p class="MsoListParagraphCxSpLast" style="text-indent: -.25in;">9.<span style="font: 7.0pt "Times New Roman";"> </span>SeqToSeq
Autoencoders</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">For each kind of ML algorithm and variant, we require the following
representations to understand them:</p>
<p class="MsoListParagraphCxSpFirst" style="text-indent: -.25in;">1.<span style="font: 7.0pt "Times New Roman";"> </span>The
underlying equations</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">2.<span style="font: 7.0pt "Times New Roman";"> </span>The block
diagram showing how the parts fit together</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">3.<span style="font: 7.0pt "Times New Roman";"> </span>An outline
of the code that computes them</p>
<p class="MsoListParagraphCxSpLast" style="text-indent: -.25in;">4.<span style="font: 7.0pt "Times New Roman";"> </span>An
animation of the progression of the algorithm</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">For algorithm selection and cost estimation would also like
to know:</p>
<p class="MsoNormal"> </p>
<p class="MsoListParagraphCxSpFirst" style="text-indent: -.25in;">1.<span style="font: 7.0pt "Times New Roman";"> </span>The time complexity</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">2.<span style="font: 7.0pt "Times New Roman";"> </span>The space
complexity</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">3.<span style="font: 7.0pt "Times New Roman";"> </span>The loss function</p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent: -.25in;">4.<span style="font: 7.0pt "Times New Roman";"> </span>The hyperparameters,
learning rate, activation function, etc.</p>
<p class="MsoListParagraphCxSpLast"> </p>
<p class="MsoNormal">During the execution of an algorithm, it is useful to watch
the loss function decrease, as this portrays the learning that is taking place.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Without these algorithm representations, selection and cost
estimation we are just shooting in the dark. This especially so when we are
comparing our work with that of others.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">So that is my note on clarity. </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">References</p>
<p class="MsoNormal"><a href="https://iq.opengenus.org/types-of-autoencoder/">Different
Types of Autoencoders</a></p>
<p class="MsoNormal"><a href="http://www.scientifichpc.com/processdata/seq2seq.html">Feature Extraction
by Sequence-to-sequence Autoencoder</a></p>
</div>
</body>
</html></body>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-11087491708148268162022-03-09T05:11:00.002-06:002022-03-09T05:11:26.230-06:00Least Damaged World<p><span style="font-family: verdana;"> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; white-space: pre-wrap;">Least Damaged World</span></span></p><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">As I write these words, blinking lights in basements, garages, attics, and she-sheds, millions of gaming and mining rigs crunch away on a single new problem. Least Damaged World.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">Up till now these rigs were running Grand Theft Auto, Minecraft, PlayersUnknown, and hundreds of other sick titles happily warming the oceans.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">But these machines and their highly skilled ops now run a sim that seeks to solve but one solicitation:</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">How do we save New York?</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">Why all that horsepower on such a short question? Because it’s not just New York. It’s London, Paris, Munich and everyone pop music. Let me talk about it [short on time]:</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">We’re 100 seconds to midnight and we can do anything we want with those few precious moments.</span></div><div dir="auto"><span style="font-family: verdana;">The thing we should do is answer the question, like so:</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">There is some order of nuclear exchanges, starting with the tactical one now aimed at Ramstein AFB, that kills the least people and another set that kills the most people. Right now, no one on Earth, knows the answer to that simple question. No brass, no fruit salad, no one. That question is identical to the first one. How do we save New York, first on the list?</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">But we could know it. It is knowable. </span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">There is some best order of bartered exchanges, gained only through brute force simulation, that says what targets must be struck to save the Newest New Yorkers. This includes the lovely option of striking no one anywhere. This includes shooting the gun out of their cold dead hand. This includes shooting them in face even because no one holds gfriend by the neck but me.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">Cut to the chase:</span></div><div dir="auto"><span style="font-family: verdana;">It unrolls like this. WormOfData Googles the nuclear inventories of all the card-carrying powers that be. DawnOfThunder puts them in the Unreal and Unity game engines. HiFionWiFi builds a Matrix quality sim good down to the dumpster decal. SereneDipity hacks a pure speed sim that trades away ray tracing in favor of getting the answer before 100 seconds are up.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">ZipTie googles the fuzzed out regions to data-is-beautiful mine where the BIG ONES live, and which ones have their mouths open ready to barf up megadeath.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">DateScroller divines the submarine inventory and Monte Carlos the favorite positions in an electrostatic LoveBoat episode of pissed off leaders in unhappy places.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">SomebodySpecial forks a faster leaner version 12, built in as many days, outed to the world as open source.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">You get the idea. Touch big red and watch the world end in a sim. Now change one fateful thing. A fewer number of people die. In a few million GPU hours you don’t just have crypto coinage, you saved New York, and a ton of all creatures great and small. Why? Because you and everybody else now knows something that wasn’t known before. What is the order, what is the optimal target list? Is the best thing to do nothing? What would have happened if we did nothing after 911? Would it be better than what we did? We don’t know till the sims run. We just don’t know. And second order ignorance is an unhappy end, whether you’re brass or fruit salad or no one like me.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">What is best thing [to do] after the First Strike?</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">That would make a nice name for Citizen SDI, but I’m sure it is already taken.</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">Is there even a world without New York? We tasted that one before…</span></div></div><div class="cxmmr5t8 oygrvhab hcukyx3x c1et5uql o9v6fnle ii04i59q" data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" style="--darkreader-inline-bgcolor: #1f2122; --darkreader-inline-color: #c7c2bd; background-color: #212324; color: #d5d2cd; font-size: 15px; margin: 0.5em 0px 0px; overflow-wrap: break-word; white-space: pre-wrap;"><div dir="auto"><span style="font-family: verdana;">- Van2022</span></div></div>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-63793654603760973172021-12-16T11:57:00.001-06:002021-12-16T11:57:24.169-06:00<p> </p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both;"><span style="font-family: arial; font-size: medium;"><b>Personal Reflections on the Design of the Webb Space Telescope</b></span></div><div class="separator" style="clear: both;"><span style="font-family: arial;"><br /></span></div><div class="separator" style="clear: both;"><span style="font-family: arial;"><br /></span></div><div class="separator" style="clear: both;"><span style="font-family: arial;">L. Van Warren MS CS, AE, PhD. Candidate CS</span></div><div class="separator" style="clear: both;"><br /></div></div><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiww2orp06-mOB0keBwxjkZZ3q83USnP2-Bj3X_LJDIGYb4d7JKxH3_Jd8TFW5GyV1i4LUPWyms9TKl6WZrPb89JyFVylABLuOjZ9pPM5XQEDT1y4tpFv8lp2rLlxi5naK40PI8egeDgTc3_ET-SF5aKomjhhIL-Lt-LsTmg1jjhDOBLUiO_g=s1200" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="855" data-original-width="1200" height="343" src="https://blogger.googleusercontent.com/img/a/AVvXsEiww2orp06-mOB0keBwxjkZZ3q83USnP2-Bj3X_LJDIGYb4d7JKxH3_Jd8TFW5GyV1i4LUPWyms9TKl6WZrPb89JyFVylABLuOjZ9pPM5XQEDT1y4tpFv8lp2rLlxi5naK40PI8egeDgTc3_ET-SF5aKomjhhIL-Lt-LsTmg1jjhDOBLUiO_g=w481-h343" width="481" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b><u><span style="font-size: medium;">4.4% Bounce Cost</span></u></b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><span style="font-family: arial;">The Webb Space Telescope has an optical path consisting of a concave primary mirror, a convex secondary mirror, a concave tertiary mirror, a flat steering mirror and a final focal surface. A ray of light impinging on the primary mirror thus has 4 reflections before final instrument entry on bounce 5. The reflectance of each mirrored surface has been measured to be within a neighborhood of 98.5%. Multiplying the loss at each bounce gives us a final effective signal strength of 94.1%.</span></div><div class="separator" style="clear: both;"><span style="font-family: arial;"><br /></span></div><div class="separator" style="clear: both;"><span style="font-family: arial;">Contrast the current design with one that stations the instrument entry in pThis would enable an improvement of 98.5-94.1 =4.4% in signal strength corresponding to an equivalent effective surface area increase, or a corresponding weight reduction if the primary mirrors were scaled down. It would also result in a significant reduction in mechanical complexity and cost if the three intervening mirrors were eliminated, at some cost in versatility.lace of the secondary mirror.</span></div><div><span style="font-family: arial;"><br /></span></div><div><span style="font-family: arial;">The convexity of the secondary mirror implies that the primary would also have to be reground if it were to immediately feed an instrument focal plane, which itself could be a difficult endeavor. So that is item one.</span></div><div><span style="font-family: arial;"><b><u><br /></u></b></span></div><div><span style="font-family: arial;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: left;"><b><u>Solar Panels vs. RTG</u></b></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">The Voyager spacecraft have exhibited longevity that exceeds 44 years, due in part to the use of Radioisotope Thermal Generators whose performance is not dependent on solar distance. The planned orbit of Webb around the L2 Lagrangian point is a million miles from the sun, ~1 percent further than that of the Earth itself, so the solar irradiance is like Earth’s. I wonder if solar panels will have the longevity of RTG’s. In any case fuel to remain on station about L2, and to unload the reaction wheels would seem to be the factor limiting telescope lifetime, rather than power source. I also wonder if an ion thruster could offset the need for expendable fuel, resulting in increased spacecraft lifetime.</div><div><br /></div></div><br /><br /></span></div></div><br />Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-23067169565371907762020-06-24T16:12:00.016-05:002020-06-24T16:30:13.399-05:00Machine Learning is the New Timesharing or Give the Dog a Head<div style="background-color: #343534; text-align: center;">
<i><font color="#FFFFFF" face="verdana" size="2"><br /></font></i>
</div>
<div style="background-color: #343534; text-align: center;"><br /></div>
<div style="background-color: #343534; text-align: center;">
<i><font color="#FFFFFF" face="verdana" size="2"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6rcvUTeOu_dk74YWKp-4q5kAqaFZyVuAYQ9AbXy4PmawwubQ1SQ_lbYWZ3bbhPUcquVUC1VFNNAjHwp9AGp57nEWDWy6qEAP8ZiVQNozsFCdzaWwA-XDDLWxSMMWJh0bby0-r/s2910/spot.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1631" data-original-width="2910" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6rcvUTeOu_dk74YWKp-4q5kAqaFZyVuAYQ9AbXy4PmawwubQ1SQ_lbYWZ3bbhPUcquVUC1VFNNAjHwp9AGp57nEWDWy6qEAP8ZiVQNozsFCdzaWwA-XDDLWxSMMWJh0bby0-r/s320/spot.png" width="320" /></a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
"We write about the past to discover the future"</font></i>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">Despite the ongoing tragedy of the pandemic, we continue to live in a
period of remarkable technical advance. Fortunately our society has advanced
to the point where even when confined to home, we can continue to innovate.
If we let our minds run a little bit, I wonder what we can come up
with. </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
Any innovation these days is likely to involve both collaboration, and the
most modern arrays of hardware that can be assembled. <span>A certain proverb says, "Many hands make light the work". This is true
for both processors and people. Both get viruses, but I digress.</span></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
For the sake of <i>argument</i>, a euphemism I use for
<i>stimulating discussion</i>, let's assume someone has plunked down in
front of us the fastest airplane money can buy. We immediately ask
ourselves, "Where could we go, and more importantly, where should we go with
it?"</font>
</div>
<div style="background-color: #343534;">
<span><font color="#FFFFFF" face="verdana" size="2"><br /></font></span>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span>John F. Kennedy said, “For of those to whom much is given much is
required”, echoing the writings of Luke the Physician who said “For unto
whomsoever much is given, of [them] shall be much required.”</span>
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span><br /></span>
</font>
</div>
<div style="background-color: #343534;">
<span><font color="#FFFFFF" face="verdana" size="2">The question is, "How can we bring the most benefit into the world, from
the gifts we have been given?". Among these gifts is our ability to reason
and communicate nearly instantly worldwide.</font></span>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span><br /></span>
</font>
</div>
<div style="background-color: #343534;">
<span><b><font color="#FFFFFF" face="verdana" size="2">Three Observations Motivated by Personal History</font></b></span>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span><br /></span>
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span>1) Time Sharing is Back</span> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span>I began my computing career with the help of Dr. Carl Sneed, an associate
professor at the University of Missouri, one of five I attended over the
years. I had signed up for an introductory computing course which was
taught on the IBM 360 TSO mainframe in 1975.</span>
</font>
</div>
<div style="background-color: #343534;">
<span><font color="#FFFFFF" face="verdana" size="2"><br /></font></span>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Gj-tj21x3JQabgckryCDRbnPx4DUPCeSmGHZ9VTB2HG12jOyBUmBMU_i4Qp4ZR058i9573GddNl5iC16ReEzN5g5gYgyh7RU2Z-wSVv7k1amF9OFFO8-OpwO8IEHdXED_aho/s760/ibm360.jpg" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="602" data-original-width="760" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Gj-tj21x3JQabgckryCDRbnPx4DUPCeSmGHZ9VTB2HG12jOyBUmBMU_i4Qp4ZR058i9573GddNl5iC16ReEzN5g5gYgyh7RU2Z-wSVv7k1amF9OFFO8-OpwO8IEHdXED_aho/s320/ibm360.jpg" width="320" /></a>
</font>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"> IBM 360 with peripherals</font>
</td>
</tr>
</tbody>
</table>
<div style="background-color: #343534;">
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
</div>
<div style="background-color: #343534;"></div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span>Dr. Sneed was kind enough to walk me through the following process:</span>
</font>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-C2_DHJx1BmE54biLps_W5ZbqipnJh3rWGCv0mhM7VaT_gXa4oNee7DkFwcFyS32NffhSAXCx15PGe9bHaH7jKb2TQFWEuDQsqHfhIucSwwBeXWgIAwUip2ScHG5UJu2Rw-Iy/s742/Screen+Shot+2020-06-24+at+12.23.15+PM.png" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="676" data-original-width="742" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-C2_DHJx1BmE54biLps_W5ZbqipnJh3rWGCv0mhM7VaT_gXa4oNee7DkFwcFyS32NffhSAXCx15PGe9bHaH7jKb2TQFWEuDQsqHfhIucSwwBeXWgIAwUip2ScHG5UJu2Rw-Iy/s320/Screen+Shot+2020-06-24+at+12.23.15+PM.png" width="320" /></a>
</font>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">
Dr. Carl Sneed, University of Missouri<br />
</font>
</td>
</tr>
</tbody>
</table>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span></span> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span><br /></span>
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span>a) Write one's Fortran IV program on 80-character paper.</span>
</font>
</div>
<div style="background-color: #343534;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjndE1Dnjasd5Uzea6QNoBdGx89OcDizuI6J7w8mUDxZ8yVXQDsGGJjieStRv7I7w8SvRql8-FQyQIRiJObT8EwGtQH75jvl3aucYkX5ofh9EkKpW5EVPaK7fsPa617KwODmxLH/s800/Fortran.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="507" data-original-width="800" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjndE1Dnjasd5Uzea6QNoBdGx89OcDizuI6J7w8mUDxZ8yVXQDsGGJjieStRv7I7w8SvRql8-FQyQIRiJObT8EwGtQH75jvl3aucYkX5ofh9EkKpW5EVPaK7fsPa617KwODmxLH/w400-h254/Fortran.jpg" width="400" /></a>
</font>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"> IBM Coding Paper<br /> </font>
</td>
</tr>
</tbody>
</table>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span><br /></span>
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span>b) Transfer each line on the paper to a punched card, using a punched
card machine that announced each character with a kerchunk, like a sewing
machine that has placed a stitch.</span>
</font>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjufrnHeqT7zi4r4CS9GeRJkvFFs6VzODmnMrga5nuqFNBO3Yr3Iiv-jxcE9gkCR9pMNQbufC_sDUwALgokOffHN_MZdEbdUL-gJ11KDljnTOMimdqRooRI4l1SnYWUPC3BFijy/s1746/Screen+Shot+2020-06-23+at+6.44.45+PM.png" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="1002" data-original-width="1746" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjufrnHeqT7zi4r4CS9GeRJkvFFs6VzODmnMrga5nuqFNBO3Yr3Iiv-jxcE9gkCR9pMNQbufC_sDUwALgokOffHN_MZdEbdUL-gJ11KDljnTOMimdqRooRI4l1SnYWUPC3BFijy/s320/Screen+Shot+2020-06-23+at+6.44.45+PM.png" width="320" /></a>
</font>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">The IBM 029 Card Punch </font>
</td>
</tr>
</tbody>
</table>
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span></span> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
c) Place the deck of cards on the card reader.
</font>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7aG1J8gP4c7pa-9QUJR7lKN4HAuqOm4usUVAoYZRM6bY8mHrM5cx6c_fReAmPjzHhwJ4zw_EGzoMldTAxc2T-2rWQfBBLc3NrBu3oLOpy-VT5JvCUNyImLpYZ7bgFwddsuiw/s1710/Screen+Shot+2020-06-23+at+6.52.29+PM.png" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="1208" data-original-width="1710" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7aG1J8gP4c7pa-9QUJR7lKN4HAuqOm4usUVAoYZRM6bY8mHrM5cx6c_fReAmPjzHhwJ4zw_EGzoMldTAxc2T-2rWQfBBLc3NrBu3oLOpy-VT5JvCUNyImLpYZ7bgFwddsuiw/s320/Screen+Shot+2020-06-23+at+6.52.29+PM.png" width="320" /></a>
</font>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><span style="background-color: #343534; color: #202122; text-align: left;">IBM System/360 Model 20 Card Reader<br /></span><br />
</font>
</td>
</tr>
</tbody>
</table>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
d) Press the button which made a Las Vegas card fanning sound as the deck
was read.
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWlOzEIoayRqaPaH0JhNuQTLMLAmn9RvDuP3vt-epVDFMG0sm-Lis9OcT1eLvpvnxyxfv3vzGICOsUqIzxQTqqPcwFSoJ-SwZFvq5Wy7nlN8eyQRfI-HljH6RxXPeOzDycAmzR/s808/Screen+Shot+2020-06-24+at+2.54.02+PM.png" style="margin-left: auto; margin-right: auto;"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="160" data-original-width="808" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWlOzEIoayRqaPaH0JhNuQTLMLAmn9RvDuP3vt-epVDFMG0sm-Lis9OcT1eLvpvnxyxfv3vzGICOsUqIzxQTqqPcwFSoJ-SwZFvq5Wy7nlN8eyQRfI-HljH6RxXPeOzDycAmzR/s320/Screen+Shot+2020-06-24+at+2.54.02+PM.png" width="320" /></font></a>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">Card Reader Panel Buttons</font>
</td>
</tr>
</tbody>
</table>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br />
e) In those days, the size of one's deck was very much the status symbol,
but I digress.
</font>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOY0F2hA9ukQsUWqaKG8gR025zF58jCBTBgy3ZxW4jzvNSBSU3PoFvRPqxtiWJmRr-9ZQ0ULE6KTETYvwftSLmMTdoTASt_OyEgz5exUBnoD4jquXMTI-uIKauWII7hvo4rvn/s1000/Punched_cards.jpg" style="margin-left: auto; margin-right: auto;"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="750" data-original-width="1000" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOY0F2hA9ukQsUWqaKG8gR025zF58jCBTBgy3ZxW4jzvNSBSU3PoFvRPqxtiWJmRr-9ZQ0ULE6KTETYvwftSLmMTdoTASt_OyEgz5exUBnoD4jquXMTI-uIKauWII7hvo4rvn/w400-h300/Punched_cards.jpg" width="400" /></font></a>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">Card Deck<br /></font>
</td>
</tr>
</tbody>
</table>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
f) I specifically remember two programming assignments I had to get running:
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
- The 3,4,5 triangle problem
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
- The parabola problem
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
The parabola problem was the most important to me personally, having grown
up in a family where such figures were important. <span>The assignment did not ask for it, but I was compelled, even obsessed by
the unassigned task of DRAWING the parabola whose roots were computed by
the program. This drawing took place on a Calcomp plotter.</span></font>
</div>
<div style="background-color: #343534;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJwG7JN6V7Bdghm5gBn-9_FdS_9e40g7TATeXacYhTI2RUz6Gx_9xVbIWooEoIaOS-j14GnVkRygicAOHfCWiWO6uw3wf2MaxHCdIrqv5Yy8dd9T29DhPX94PC1yXpGeD_Zb4u/s512/unnamed.jpg" style="margin-left: auto; margin-right: auto;"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="384" data-original-width="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJwG7JN6V7Bdghm5gBn-9_FdS_9e40g7TATeXacYhTI2RUz6Gx_9xVbIWooEoIaOS-j14GnVkRygicAOHfCWiWO6uw3wf2MaxHCdIrqv5Yy8dd9T29DhPX94PC1yXpGeD_Zb4u/s320/unnamed.jpg" width="320" /></font></a>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">Calcomp 565 Plotter<br /></font>
</td>
</tr>
</tbody>
</table>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">Despite multiple attempts I never succeeded in accomplishing (on the IBM
360) the completion of this task, but the drive to do it never left me. It
became a central focus of all future computing, and led me from aerospace
engineering to computer science to computer graphics at the University of
Utah.
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
It eventually would result in this,
<a href="https://photos.google.com/share/AF1QipPcNjRJEXWtcweFdC_EQayA2Q9tvUoXnaLaujSnI0qqhGQULanMO8c72yI2jgn-ZA?key=alhPcnhkNUpUd05tRmZHSHdHTG9BQnI0UzV5d2lB" target="_blank">which you can click on if you like animations.
</a></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://photos.google.com/share/AF1QipPcNjRJEXWtcweFdC_EQayA2Q9tvUoXnaLaujSnI0qqhGQULanMO8c72yI2jgn-ZA?key=alhPcnhkNUpUd05tRmZHSHdHTG9BQnI0UzV5d2lB" style="margin-left: 1em; margin-right: 1em;" target="_blank"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="1292" data-original-width="2788" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx7v9bSNer0EgO-XF2sILrgc8krSMT-XdDLiR3erKq_fli19s60x55LsB5HNrozzYh6ipbVP0GbjOnuIz4Uzmgl-FSkxy0RoPpr17vO4qsGnH5x9eT4O36F_wCyPlHUjEj2T4G/w500-h231/Screen+Shot+2020-06-23+at+7.00.47+PM.png" width="500" /></font></a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">Various Animations</font>
</div>
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
g) After the card deck was read, the next activity I clearly remember was
the WAIT.
</font>
</div>
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9_q9FZUmoZbv6yc8zWcZ0vHLRaAMDbIrlD4wMgcZPd9Bn4wrH4zadPaX3is9nIL75tSUroAqPYvmZvK-Ni6mHuSvnAQAWfenwkLNKj7jO4PCXrizVPxwYO7X_6ZVcLMhRoLeo/s648/2020clock_05_1024x1024.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="648" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9_q9FZUmoZbv6yc8zWcZ0vHLRaAMDbIrlD4wMgcZPd9Bn4wrH4zadPaX3is9nIL75tSUroAqPYvmZvK-Ni6mHuSvnAQAWfenwkLNKj7jO4PCXrizVPxwYO7X_6ZVcLMhRoLeo/s320/2020clock_05_1024x1024.jpg" width="320" /></a>
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
One had to wait to collect the printout that resulted from the execution of
your program to find out if it had functioned correctly, or even at
all.</font>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg4v9mgCq2VHLgL8EL4cPGqgqHIrhEblt7egik0L90reFm_P2sLVmgdMbQiAAsvUTUHXQK_SSkVBWLcZL4sxJ-1i68o8xyLBlpgcdlBzo6mIHweuDalrVWQaE5m5qO24xyePUk/s1531/Screen+Shot+2020-06-24+at+3.09.38+PM.png" style="margin-left: 1em; margin-right: 1em;"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="677" data-original-width="1531" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg4v9mgCq2VHLgL8EL4cPGqgqHIrhEblt7egik0L90reFm_P2sLVmgdMbQiAAsvUTUHXQK_SSkVBWLcZL4sxJ-1i68o8xyLBlpgcdlBzo6mIHweuDalrVWQaE5m5qO24xyePUk/w500-h223/Screen+Shot+2020-06-24+at+3.09.38+PM.png" width="500" /></font></a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">Wide form computer printout</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">Like the Tom Petty song, waiting was the hardest part. This would range
from 5 minutes on a good day, to 30 minutes or even, "Pick it up tomorrow"
on a busy day.
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
h) In those days, the priority with which one's jobs ran was very much a
status symbol, but I digress.
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
i) On obtaining the tree-consuming fan-folded printout of nearly poster size
proportion, one would deduce, usually in seconds, any shortcoming the
program had, which would lead to a repetition of the steps above.
</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /> </font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">
Now why do I present, in such excruciating detail, the above series of
steps? Because if we skip over the personal computing revolution to the
current state of machine learning we find we have arrived at the same place
again.</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<b><font color="#FFFFFF" face="verdana" size="2">Enter Machine Learning</font></b>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">Fast forward 45 years. Besides all the mish-mash of algorithm design and
coding, machine learning (ML) consists of three principal steps:</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span> 1) </span>Training the neural network from
data</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span> 2) </span>Testing the neural network on data</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><span> 3) Deploying the resulting inference engine for general
use</span><br /></font>
</div>
<div style="background-color: #343534;">
<span><font color="#FFFFFF" face="verdana" size="2"><br /></font></span>
</div>
<div style="background-color: #343534;">
<span><font color="#FFFFFF" face="verdana" size="2">The most time-consuming step by far is training the network. The Waiting
problem has reappeared. since for most problems of current interest,
training networks cannot be realistically done on a user's personal
computer in a reasonable amount of time. So it has to be farmed out to a
CPU, TPU, GPU, or APU in the cloud via Microsoft Azure, IBM Cloud, Google
Cloud, Amazon Web Services and the like. The machines that execute the
jobs sit in racks and those racks sit in server farms.</font></span>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_TEoRyEzgoAti-X8HiWwksBmZVFZv0tqao20bFhe0KgMzDYKZlkqpG5OXr2-MFP4vMnZZFN_EVFYG-QNoiBParSL6zzxnyntgBvfA1l_zGLYIZvC_PYUcBR5Rfs10v7p4zzgb/s740/google-belgium-servers-web.jpg" style="margin-left: auto; margin-right: auto;"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="464" data-original-width="740" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_TEoRyEzgoAti-X8HiWwksBmZVFZv0tqao20bFhe0KgMzDYKZlkqpG5OXr2-MFP4vMnZZFN_EVFYG-QNoiBParSL6zzxnyntgBvfA1l_zGLYIZvC_PYUcBR5Rfs10v7p4zzgb/w500-h314/google-belgium-servers-web.jpg" width="500" /></font></a>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<a href="https://datacenterfrontier.com/google-building-more-data-centers-for-massive-future-clouds/" target="_blank"><font color="#FFFFFF" face="verdana" size="2">Google Server Farm in Belgium</font></a>
</td>
</tr>
</tbody>
</table>
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">They process our jobs and we wait and we pay. An example of a massively
parallel job is GTP-3, a language inference engine that has 175 billion
weights in its neural network and cost an estimated $12 million dollars to
train.</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2">So to follow Dr. Sneed's kind example, how do we make machine learning as
easy as possible to learn and execute? How can we minimize the number of
steps, the administrative and emotional overhead necessary to appropriate ML
into our computational lives? ML is already available on demand using
services like Google Home Assistant, Microsoft Cortana, Apple Siri, and
Amazon Echo. These enable positively useful C3PO-like conversations with
machines, whose only lack is a robotic delivery mechanism.</font>
</div>
<div style="background-color: #343534;">
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0JaxR9SF3nDw4hS842l8bSQt1Il0BQRP-HSuF_kRhP1BelkJutHBPxCPDBldtFfIHJJ9M0pNU7RRVtnQZ3oBR0zx5siQMIcbaJFhojG-Qsfe8euZhqbypv0r_3oWOi40ykPPb/s672/Screen+Shot+2020-06-24+at+3.31.09+PM.png" style="margin-left: auto; margin-right: auto;"><font color="#FFFFFF" face="verdana" size="2"><img border="0" data-original-height="440" data-original-width="672" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0JaxR9SF3nDw4hS842l8bSQt1Il0BQRP-HSuF_kRhP1BelkJutHBPxCPDBldtFfIHJJ9M0pNU7RRVtnQZ3oBR0zx5siQMIcbaJFhojG-Qsfe8euZhqbypv0r_3oWOi40ykPPb/s320/Screen+Shot+2020-06-24+at+3.31.09+PM.png" width="320" /></font></a>
</td>
</tr>
<tr>
<td class="tr-caption" style="text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">C3PO - Ready to Answer Questions<br /></font>
</td>
</tr>
</tbody>
</table>
<font color="#FFFFFF" face="verdana" size="2"><span style="background-color: #343534;"><br /></span></font>
<div>
<font color="#FFFFFF" face="verdana" size="2"><span style="background-color: #343534;">Transforming the current generation of personal assistants into more
robotically enabled ones would seem to be a natural direction for growth
and development. At this writing, one can already purchase a robotic
canine from Boston Dynamics for $75,000 USD. A Google Assistant to use for
a head is three orders of magnitude less expensive, $29 USD at this
writing. </span></font><span style="background-color: #343534; font-family: verdana; font-size: small;">So there is one idea.</span>
</div>
<div><br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjaMihTgztntXpuYW79WmaJVIbRVvBerqeblggFmyCT6NqSThORfCGBesKqEJnRp7UwjxrhAjFW6XpCTubtnqn5Li52xYjMtJT-wYL4U4bWfznnsesifAKMzPqvZJV2jn_hHI_/s2910/spot.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1631" data-original-width="2910" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjaMihTgztntXpuYW79WmaJVIbRVvBerqeblggFmyCT6NqSThORfCGBesKqEJnRp7UwjxrhAjFW6XpCTubtnqn5Li52xYjMtJT-wYL4U4bWfznnsesifAKMzPqvZJV2jn_hHI_/s320/spot.png" width="320" /></a>
</div>
<div class="separator" style="clear: both; text-align: center;"><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<font color="#FFFFFF" face="verdana" size="2">FrankenSpot = Spot + Google Assistant</font>
</div>
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
</div>
<div>
<font color="#FFFFFF" face="verdana" size="2"><br /></font>
<div style="background-color: #343534;">
<span style="font-family: verdana; font-size: small;">
So that would be one interesting project, although I personally would
prefer a more anthropomorphic version since hands come in handy for
robotic assistants.</span>
</div>
<br />
</div>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-19908451331979209832019-07-11T07:45:00.001-05:002019-07-12T03:43:41.538-05:00Teleportation on ARRL Field Day 2019, a Recapitulation.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKpV-1x3PA8Mo4jDkcYnJD1Tlvp4egN1jyNghyphenhyphen4wlVU4JjTMJMfkCuh8KoP-ai9BXdT4CNh7f5v0BXyvGKgEFrbN2aqu0rZ8nm4W8mE_jRlHWJ2S6hSCYidEvh62bhE8A-9ELk/s1600/quantum-teleportation-could-revolutionize-modern-phone-and-internet-communication.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="527" data-original-width="627" height="536" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKpV-1x3PA8Mo4jDkcYnJD1Tlvp4egN1jyNghyphenhyphen4wlVU4JjTMJMfkCuh8KoP-ai9BXdT4CNh7f5v0BXyvGKgEFrbN2aqu0rZ8nm4W8mE_jRlHWJ2S6hSCYidEvh62bhE8A-9ELk/s640/quantum-teleportation-could-revolutionize-modern-phone-and-internet-communication.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<b>Introduction</b><br />
<br />
Given the precarious nature of conditions in ourselves and the world, we never know when the current song is our swansong. Nonetheless we forge ahead, looking for interesting moments of personal discovery. In ham radio everyone is good at something and all the people I know in it are much more qualified in the many subspecialties than myself. One thing I like to do is listen. My wife might dispute this, understanding though she is.<br />
<br />
<b>Background</b><br />
<b><br /></b>
Last year I attempted to monitor our Field Day 2018 communications using a Software Defined Radio that was deployed on site. My hope was that by visualizing ham band traffic, we could make more contacts. Making more contacts is the principal figure of merit for Field Day performance. There is no particular depth of relationship between transcontinental operators. Let me momentarily illustrate the situation. The conversation typically goes like this:<br />
<br />
Operator A: CQ Field Day, CQ Field Day, this is operator K1AA.<br />
Operator B: CQ Field Day, CQ Field Day, this is operator K2BB.<br />
<br />
Operator A: Roger operator K?BB, My callsign is K1AA, the class is 1A and my section is AR.<br />
Operator B: Roger operator K2??. Could you please repeat your callsign, class and section?<br />
<br />
Operator A: Yes, they are K1AA, 1A, Alpha Romeo.<br />
Operator B: Thank you. Please copy K2BB, 2B, and TX. Have a good field day.<br />
<br />
Operator A: Roger K2BB. (static and whistling noises)<br />
<br />
This terse back and forth is usually the minimum necessary for a two-way contact to be logged and recorded. Because of the pure noise and vagaries of analog single sideband transmission, it usually takes several attempts for each party to provide their callsign, section and class for the logs, data now collected with "logging software". But it remains a century-old fascination that we can communicate over long distances without wires.<br />
<br />
Let me amplify one point. In amateur radio Field Day activity is effectively zero relationship. There is no, "Are you okay?" or "How are you doing?" There is no, "Hey, what's the weather where you are?". No, this is the purely distilled state information has been completely sterilized from the contamination of social information. Contrast this with present day social media, which is nothing but personal information, and sometimes a bit too much of it! Field Day is about Scalps without Faces. It is a Trophy Hunt for Hits, a Safari for Signs, a Contest where only the number of contacts matters, not what content was exchanged. The tacit contract is, "Well we could have done that if we wanted to, the radios, after all, are working! It is an Olympic effort where only numbers matter. As such there is a strange emptiness in the midst of all the chatter, like the weather itself.<br />
<br />
Compensating for this angst are the coterie of operators who sit in a circle, away from their radios, eating, drinking and rag chewing about the news of the day, perhaps talking about rigs, antennas and the technology of radio. It is in these local circles that the deepest relationships are built.<br />
<br />
<hr />
<b>Before Teleportation comes Strategy</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Bddh576-FCJfQ8O0L3ZP_ZlXJ3zXdIMHbTe2iirMgnq20jSh1UsS8Pg2atZ1Vo5M__D7hoBqkkv_D3Z2wOYPDshjOy2et6TfbIxWUiNM1Zh-kuItRcY_k4_WlI5YV_CEqWaf/s1600/Screen+Shot+2019-07-11+at+5.38.40+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="838" data-original-width="1148" height="291" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Bddh576-FCJfQ8O0L3ZP_ZlXJ3zXdIMHbTe2iirMgnq20jSh1UsS8Pg2atZ1Vo5M__D7hoBqkkv_D3Z2wOYPDshjOy2et6TfbIxWUiNM1Zh-kuItRcY_k4_WlI5YV_CEqWaf/s400/Screen+Shot+2019-07-11+at+5.38.40+AM.png" width="400" /></a></div>
<br />
<br />
There are two well-known strategies in Field Day communications. In the first, an operator sits on a frequency and lets people come to them. This is called, "Running". In the second the operator searches the bands for new contacts in a strategy called "Search and Pounce".<br />
<br />
In prior times, this search for contacts was entirely "by ear". The operator would slowly scan a frequency band looking for people who happen to be transmitting at that moment AND who were also unoccupied. If they were busy in a conversation, a waiting line of those ready to pounce would form, adding to the cacophony of noise.<br />
<br />
The advent of Software Defined Radio is changing this hit and miss style of brute force search into a more deterministic process, at least, that is my current working belief.<br />
<br />
The waterfall displays of SDR (shown above) enables us, at a glance, to observe all the traffic that is in play, "by eye". We can then select potential contacts using criteria such as signal strength and operator consistency. But for operators who have spent years training their ears, change can be hard!<br />
<br />
Besides showing all available traffic instantaneously, waterfall displays show how busy the band is, and also how good signal propagation conditions are. These conditions can vary significantly over the course of the day, and over longer time frames due to solar effects on the ionosphere which has its own "weather".<br />
<br />
<b>Limitations of Previous Attempts</b><br />
<br />
In my efforts last year to implement SDR Signal Spotting or "fish finding" four limitations were encountered.<br />
<br />
<ol>
<li>The SDR hardware required an additional computer and source of power.</li>
<li>The SDR loop antenna characteristics did not match those of the main radios which used an antenna called a G5RV. This meant the SDR operator and the contact operators were hearing and seeing completely different views of the signal space. Using a duplicate G5RV's for the SDR was likely to fry the SDR receiver and possibly its host computer due to the strength of nearby transmissions.</li>
<li>Even with a different antenna, transmission by any local Field Day operator would completely swamp the SDR input during the call. For those operating in digital modes, their local output obliterated all incoming signals about half the time, significantly limiting the usefulness of the signal spotter to less than a 50% duty cycle.</li>
<li>Traditional operators like to search "by ear" rather than using the SDR to search "by eye". Initially operators would be enthusiastic, but under the grind of a long field day, they would revert to habits honed over long years of operating.</li>
</ol>
<br />
<b>A New Approach Based on WebSDR</b><br />
<br />
In an attempt to overcome these limitations a different approach was taken this year. This attempt was greatly facilitated by Tim Lee and John Nordlund. Tim is a Marlboro man of amateur radio appearing at the most helpful of moments. John is an encyclopedia of radio and electronics knowledge, which is dispensed on demand to those like me who were under the mistaken belief that they already knew something. Most of the time some unanticipated nuance is learned. I had initially planned on running the SDR from my home, and remotely monitoring the signal landscape using an internet link. But Tim and John had suggested I could use WebSDR which would enable me to monitor our signals <b>from several geographically distributed locations</b>. It took me awhile to parse their suggestion into a form I could use, but this approach proved most effective and possibly revolutionary. Further, it has significant headroom for future improvement. It could change amateur radio.<br />
<br />
Using WebSDR as the fulcrum for this year's experiment I established five concurrent sessions with Software Defined Radios in:<br />
<br />
<ul>
<li>Double Oak, Texas, operated by Larry Story, W5CQU</li>
<li>Washington DC Area operated by Mehmet Ozcan, NA5B</li>
<li>Dahlonega, GA operated Phil Heaton, NY4Q</li>
<li>Corinne, Utah, operated by Clinton Turner, KA7OEI</li>
<li>Half Moon Bay, California USA, operated by Craig McCartney, W6DRZ</li>
</ul>
<br />
The open source WebSDR software can be set up by anyone using inexpensive hardware and a web server. It can also be customized for specific locations and radio configurations. Here is a typical installation operating on the 40-meter band:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqOeR9pvTQ4SCdjyzaUy3X_Cyym3wOB5YrtzSwISnbTgYu5Hua_jne_GtwlscXU_1bKOw_C0XoWxjy-qtwmADtz96I5dLuA9knOnljqwWfetTgz39QsGihurf4xMFXkwW0PZ7x/s1600/Screen+Shot+2019-07-11+at+6.54.53+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="891" data-original-width="1600" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqOeR9pvTQ4SCdjyzaUy3X_Cyym3wOB5YrtzSwISnbTgYu5Hua_jne_GtwlscXU_1bKOw_C0XoWxjy-qtwmADtz96I5dLuA9knOnljqwWfetTgz39QsGihurf4xMFXkwW0PZ7x/s640/Screen+Shot+2019-07-11+at+6.54.53+AM.png" width="640" /></a></div>
<br />
<hr />
<br />
<b>The Teleportation Part</b><br />
<br />
During the course of operations, it was easy to tell if we were heard at the remote locations, and whether operators at those locations were audible by us. This moment of determination resulted in a weird cognitive experience that I can only describe as a sense of teleportation, similar to that which has been described in binaural radios. I could experience the activity of two operators at two locations simultaneously in a peculiar form of binocular vision/audition that is easier and more spectacular to experience than explain. Tweaking the remote vs. local experience is a bit of art I have only begun to explore. It is like being two different people at the same instant, in two different places, hearing two <i>other</i> people and their respective renderings in the fog of noise and single sideband. One distinctly interesting aspect of this experience is that one can recognize a familiar voice even if it has been distorted in tone, timber and frequency. This distortion comes from the signal being encoded, transmitted and decoded by an analog system. The simultaneity of this creates a peculiar cognitive dissonance, the source of the deja vu feelings of teleportation suggested previously.<br />
<br />
Let me describe the hardware of this experience. While I, the teloportee, am observing the visual signals of the conversation on the SDR waterfall display, I am wearing headphones with one ear up, like a Cessna pilot who is monitoring an aviation radio simultaneously with conversations in the aircraft. So, in one ear I am hearing our local operator locally, and in the other ear I am hearing them remotely. Then, in complement I hear the remote operator locally on the local operators rig and the remote operator remotely on the software defined radio. All this while tuned to their 3 kHz wide chunk of radio frequency. This whole sonic and visual arrangement pivots back and forth where local and remote conversation halves are experienced from both the local and remote points of view simultaneously!<br />
<br />
For our work this weekend, I was surprised by the low-latency of the communication. Conversations quite nearly matched in time, but not in tone, timbre and frequency. It was interesting that despite the aural distortion, you could recognize a familiar operator. The low-latency was especially surprising given the hack job of an internet connection I had cobbled together on short notice. Our ham club facilitator Dick Wallace made efforts to gain a proper wireless connection to a neighboring agency who was sponsoring the event. But due to various (and perfectly reasonable!) security restrictions, no wireless internet connections were available.<br />
<br />
The search however did allow us the benefit of a half-hour of undeserved air-conditioning on a hot and muggy Arkansas day. In desperation I finally set up my iPhone as a personal hotspot, using Cellular Data to accomplish the web connection. This web connection enabled the five concurrent SDR sessions with few if any drop-outs of audio or waterfall display. As the afternoon turned to night, I imagined that I would return home to an unhappy wife holding a cell phone data bill of gargantuan proportions. Instead I was pleasantly surprised to find out that after all this DXing and teleportation I was still within the confines of my data plan allowance. My wife is very understanding of my experimentation and I would be remiss in not saying so.<br />
<br />
<hr />
<br />
<b>Summary</b><br />
<br />
In summary, this year's approach of multiple, remote SDR's accessed via a web link solved and eliminated the three of the four limitations encountered in the previous year's exploration.<br />
<br />
It partially reduced the fourth limitation as well.<br />
<br />
This problem was solved to the point of nearly eliminating the fourth limitation by collocating the SDR fishfinder op and the SSB operator (several) at the same table with our respective hardware. This eliminated the need for 2-meter coordination chatter on the handheld radios and allowed for the simultaneity of the audio that produced the teleportation experience. This also solved the see versus hear problem.<br />
<br />
There is more potential for automation of SDR enhanced signal spotting, also known as let the machine log the big numbers. We might want to consider a local WebSDR installation.<br />
<br />
<b>Footnotes and Acknowledgements</b><br />
<b><br /></b>
There were many contributions made by others that made this Field Day 2019 a success. One that affected me personally was that Roger Fidler provided fabric floors for the tents that provided excellent insect abatement, specifically chiggers. The Carolina Windom antenna was spectacular in the way it was deployed with a portable mast and a flagpole. Roger provided hydration that prevented heat stroke and Tim Lee provided pizza that prevented collapse.<br />
<br />
At one point we had a telecommunications wonderland in play. We had the operators and their operations on 7 and 14 Megahertz bands (40 and 20 meters). We had handhelds at 146 Megahertz (2 meters) for tent-to-tent SDR-spotting communication. We had at 2 and 4 Gigahertz bands (15 and 7.5 centimeters) running the internet wireless part of the operation. All these were running simultaneously to accomplish our first signal spotting of this year.<br />
<br />
<b>Disclaimer</b><br />
<br />
These comments reflect the experiences, viewpoints and opinions of the author only and not necessarily those of any agency or individual connected with the event. They are offered without warranty of merchantability or fitness for any purpose expressed or implied.Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-47826417249703260022019-07-07T01:23:00.003-05:002019-07-07T01:24:01.570-05:00A Fresh New Web Site in 96 lines of PythonIt was time to rebuild my <a href="https://wdv.com/" target="_blank">website</a> to make it, "responsive", which is code for, "works on phone and desktop".<br />
<br />
My site uses a simple structure of three buttons in sequential rows. Three is a good number for remembering and choosing things. It works well for both mobile and desktop applications.<br />
<br />
I began forging ahead on this, by accident, after I saw that Adobe Dreamweaver supports bootstrap.<br />
<br />
So I started the one hour course on <a href="https://scrimba.com/search?q=bootstrap" target="_blank">bootstrap</a>, but didn't finish it BECAUSE:<br />
<br />
While I was watching scrimba (which is fantastic by the way, because you can stop the video and edit the code they are showing you in real time on the screen) I thought, "What if bootstrap isn't the best way to do this?"<br />
<br />
So then I googled some reviews and found the <a href="https://scrimba.com/g/gR8PTE" target="_blank">scrimba course on CSS Grid</a>, which is even more fantastic - for my purposes it was cleaner than bootstrap. Thank you Per Harald Borgen Co-founder of Scrimba! He is very clear.<br />
<br />
In the meantime, I asked some computer experts, who are also my kids, whether I was headed in the right direction.<br />
<br />
By the time they got back to me that same evening, I had already learned CSS Grid on Scrimba and was immediately starting to code up a prototype. I took the course in the listed 62 minutes, but was already producing useable code in 20 minutes. This of course blew my mind.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheUvKvbhpglG0JdIPs4IKO1whnTiSy7eMgLn5zRf-WcwztkwXzsG6CBeeOlngXuPKCQbEijbf0PKGcM-LAM_iM1KcldaKl5yIM2oGEsNmnHzWqvITyI_1Ftq4EH1XSPkkge9yh/s1600/tenor.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="123" data-original-width="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheUvKvbhpglG0JdIPs4IKO1whnTiSy7eMgLn5zRf-WcwztkwXzsG6CBeeOlngXuPKCQbEijbf0PKGcM-LAM_iM1KcldaKl5yIM2oGEsNmnHzWqvITyI_1Ftq4EH1XSPkkge9yh/s1600/tenor.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Then I found out I could transfer my scrimba notes into this <a href="https://jsfiddle.net/lvwarren/4z9raw7o/" target="_blank">JSFiddle</a> and get a working version while viewing the HTML and CSS at the same time. Because CSS Grid is so powerful I didn't need any JavaScript in this case. JSFiddle enabled me to preview my hacks in real time. When I got that running I could just dump the prototype code into Dreamweaver and try it out. (Sad story: Dreamweaver tried to rewrite my code and broke it in the process so I told it not to do that by setting the "Rewrite my code" preferences to "Off"!)<br />
<br />
As the complexity of my new site escalated I needed to generate more HTML automatically. The CSS didn't need to be changed at all. To generate said HTML I used Python running in a Jupyter Notebook. This decision was really an important one because I could have written a 'C', Java, or JavaScript program, or I could have written a Unix shell script, or a sed/awk job and so forth. Python in Jupyter was the right decision.<br />
<br />
I was able to build a little hack previewer into Jupyter because the libraries for Python are so rich.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzwg-bX-UHEqjpfo1kfPmwycDGuK1KqEH3X15iJOariSMJZNC9gC0JG5mNW8iQxeC-VGGc5WUgqUXK8jBwfN_rcpf0a8u4Os0wxCbQT4hAlw-jBdDMjdHOr2tJBPO9CEt8kmAJ/s1600/Screen+Shot+2019-07-07+at+12.58.03+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="416" data-original-width="1056" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzwg-bX-UHEqjpfo1kfPmwycDGuK1KqEH3X15iJOariSMJZNC9gC0JG5mNW8iQxeC-VGGc5WUgqUXK8jBwfN_rcpf0a8u4Os0wxCbQT4hAlw-jBdDMjdHOr2tJBPO9CEt8kmAJ/s640/Screen+Shot+2019-07-07+at+12.58.03+AM.png" width="640" /></a></div>
<br />
<br />
So in short the project went a little faster than I expected. My new site, https://wdv.com, is up and running if you want to try it. You can stop reading now unless you like details and statistics.<br />
<br />
By way of complexity here are the word, line and character counts:<br />
Old site html file: 134 words 878 lines 14468 characters<br />
New site html file: 237 words 465 lines 8244 characters<br />
New site CSS file: 120 words 276 lines 2533 characters<br />
<br />
Thus the new site is quite a bit simpler if we're counting lines and characters. It loads faster too.<br />
<br />
The Python Jupyter Notebook "make-web-site" generates the site from scratch using simple rules:<br />
<br />
make-web-site does an external ls, and enumerates a list of directories that contain content.<br />
It prints them in triples, and these can be compared to the current version of the site.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm0zCVgJEUx1yaam4UyeBN5NXvlnOOCZPfZeWrueYGGivQGlGIj-oFhiHaGW6DZtO4qj3JiYR0MsdTQDmt2ejimxfgaQ9xn9YhX28UgtUXPf2tmJtW2arQMVipBS0U48v8LL0-/s1600/Screen+Shot+2019-07-07+at+12.47.04+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1304" data-original-width="1160" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm0zCVgJEUx1yaam4UyeBN5NXvlnOOCZPfZeWrueYGGivQGlGIj-oFhiHaGW6DZtO4qj3JiYR0MsdTQDmt2ejimxfgaQ9xn9YhX28UgtUXPf2tmJtW2arQMVipBS0U48v8LL0-/s640/Screen+Shot+2019-07-07+at+12.47.04+AM.png" width="568" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
The enumerated list is used to build the index.html for that directory using a couple of Python functions:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Vnfm-FWHwNbxhNmAijDAhVo-aneQaDbsmGbHa3Tb0Sml8Kr0lG9K5wzEzO0JiEJMoI5S6MuK4-FZsP92GZ765C2cxqLAvNU6fQ03RYG5MX9i_ovm1EdrzmibvQF5jrMzjXUo/s1600/Screen+Shot+2019-07-07+at+12.49.40+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="896" data-original-width="1584" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Vnfm-FWHwNbxhNmAijDAhVo-aneQaDbsmGbHa3Tb0Sml8Kr0lG9K5wzEzO0JiEJMoI5S6MuK4-FZsP92GZ765C2cxqLAvNU6fQ03RYG5MX9i_ovm1EdrzmibvQF5jrMzjXUo/s640/Screen+Shot+2019-07-07+at+12.49.40+AM.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
These functions are then called to generate each row of buttons for the site:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCinZoaGZYRGOuMhUMekGOKKRJBkikGNrgnhlvZms2VOQAZT_OOzgYg4NLmZn95_kO1ZzkBQIq99wmEP9hySAVL5Tq85T_gLI4GHRzK2-Yz11lA0p2ZF3yJY4N4izJvBV9fvos/s1600/Screen+Shot+2019-07-07+at+12.51.31+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="402" data-original-width="1140" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCinZoaGZYRGOuMhUMekGOKKRJBkikGNrgnhlvZms2VOQAZT_OOzgYg4NLmZn95_kO1ZzkBQIq99wmEP9hySAVL5Tq85T_gLI4GHRzK2-Yz11lA0p2ZF3yJY4N4izJvBV9fvos/s640/Screen+Shot+2019-07-07+at+12.51.31+AM.png" width="640" /></a></div>
<br />
<br />
The resulting html can be copied straight out of the notebook and dumped into Dreamweaver or any other tool. Then the HTML and CSS files are uploaded to the server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-2Q8sg6r_pQExuKxzK5iTSy-HH2KJmiGAeayDuAMZ90QB6lF8-0pcNg-aumcinSABA-Wn9s-7ReMY0xXsFXrCDnnlOrKZ5NV1jiDgl9zDT0_7dFgVZjb4gnCmZp7XTPECYh5/s1600/Screen+Shot+2019-07-07+at+1.15.18+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="706" data-original-width="1222" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-2Q8sg6r_pQExuKxzK5iTSy-HH2KJmiGAeayDuAMZ90QB6lF8-0pcNg-aumcinSABA-Wn9s-7ReMY0xXsFXrCDnnlOrKZ5NV1jiDgl9zDT0_7dFgVZjb4gnCmZp7XTPECYh5/s640/Screen+Shot+2019-07-07+at+1.15.18+AM.png" width="640" /></a></div>
<br />
<br />
The look and feel of the website uses CSS Grid and is contained in the file index.css.<br />
Watch the scrimba to figure that out.<br />
<br />
Assumptions:<br />
1) That each folder is the location of content and contains and index file<br />
2) That there is an images directory that contains an image file for each folder<br />
3) We will assume that each content directory starts with an uppercase letter<br />
4) We will assume that the images directory starts with a lowercase letter and is named, "images".<br />
<br />
These assumptions can be violated by giving different arguments to the functions:<br />
<br />
That's it!<br />
<br />
Now this was just the index file of a thousand page website, so obviously there is more to do, but I was happy with this approach.<br />
<br />
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #0000ff; background-color: #ffffba; background-color: rgba(255, 255, 186, 0.97)}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-70758037964626036322019-05-11T22:37:00.003-05:002019-05-11T22:37:34.917-05:00Friction In Space: The Statistical Mechanics of a Certain Missing Quora Question<span style="font-family: Verdana, sans-serif;">I spent a good chunk of this evening around eight o'clock answer a question on Quora. Quora is a source of a host of bizarre and interesting questions. After answering the question with the most clarity I could, I thought I posted it, but it was sucked into a vacuum, never to be found through any amount of indexing or searching.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">The question was, "Is there friction in space?"</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I really liked the question, so much that I am devoting a blog entry to it.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">The first task is to reconstruct my original answer, which goes something like:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Yes, there is friction in space because space is not empty. There is about 1 hydrogen atom per cubic centimeter of space, <a href="https://hypertextbook.com/facts/2000/DaWeiCai.shtml">more or less</a>.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">When a hydrogen atom collides with an object there is an exchange of kinetic energy that obeys the rules of conservation of momentum. Part of this energy is radiated away as heat, as photons whose wavelength, frequency or color is distributed according to the energy associated with the collision. Part of this energy results in a change in direction, however slight of the two parties involved in the collision. The destiny of collision can be represented as a pair vectors with a direction and magnitude.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">There is also a 'relative wind' effect. The ensemble of hydrogen atoms that the object collides with has an average velocity that can be moving along with object (running in nautical terms), against the object (upwind), crosswind, or some combination. This relative wind will affect the spectrum of the photons radiated by the travel of the object, red-shifting it when the object is running, blue-shifting it upwind or some combination for the crosswind.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">When an object reenters the atmosphere the density of the gases it encounters increases rapidly and heat is dissipated as the, 'searing heat of reentry'.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">If the object was initially launched from earth, it must dissipate as heat, the kinetic energy associated with putting it in orbit in the first place. Fire on the way out, fire on the way back.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Curiously only about a tenth of the energy of placing an object in orbit has to do with it achieving the height of its orbit. The other nine-tenths is expended in achieving the velocity of its orbit. This is why if you look at the exhaust plume of a rocket that it gently curves. Early in the launch it is desirable to reduce aerodynamic drag by going straight up. Later in flight the rocket has to tilt towards the horizon to achieve orbital velocity parallel to the surface of the earth at its orbital altitude.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Tm6ca7V_2Y0DjRB-QVA5aLdoFNp6DSLoyvDgZ_v4Vqbj1g-rmIfYLCwlumG23KFLYJrtHKw9eWn1OLierYWWQgPn3Y0HdLHHpN7fG7DSq2P5If3RUtRHAXI0YttNYcYDw1Cj/s1600/4524920-spacex-rocket-falcon-9-long-exposure.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1067" data-original-width="1600" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Tm6ca7V_2Y0DjRB-QVA5aLdoFNp6DSLoyvDgZ_v4Vqbj1g-rmIfYLCwlumG23KFLYJrtHKw9eWn1OLierYWWQgPn3Y0HdLHHpN7fG7DSq2P5If3RUtRHAXI0YttNYcYDw1Cj/s640/4524920-spacex-rocket-falcon-9-long-exposure.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: right;"><a href="https://mocah.org/4524920-spacex-rocket-falcon-9-long-exposure.html"><span style="font-family: Verdana, sans-serif;">Image Credit</span></a></td></tr>
</tbody></table>
<br />
<span style="font-family: Verdana, sans-serif;">There is a term, "Max Q" which translates "Maximum Dynamic Pressure" on the vehicle that you may have heard in connection with rocket launches. </span><span style="font-family: Verdana, sans-serif;">As a rocket ascends vertically two things are happening - the atmosphere is rapidly getting thinner, that is the density is decreasing rapidly, and the speed of the rocket with respect to that atmosphere is increasing rapidly.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">There comes a point at which the product of these two quantities reaches its maximum and the structural forces on the rocket are at their maximum. This is the Max Q point. Q stands for d</span><span style="font-family: Verdana, sans-serif;">ynamic pressure which the half the product of velocity squared times density.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">The aft end of the rocket has a characteristic spectrum or heat signature and the friction between the surface of the rocket and the atmosphere can heat it considerably.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Because of staging, much of the energy associated with delivering the spacecraft to orbit is lost to the stages that got it there. The spacecraft only retains the kinetic energy associated with its own mass, and the potential energy associated with its mass and altitude. Typically only 1 to 3% of the mass of the original rocket, the 'throw weight' <a href="https://en.wikipedia.org/wiki/Payload_fraction">makes it to orbit</a>. But there is still a lot of energy that has to be radiated as heat when it returns, thus, 'the searing heat of reentry'.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Because of aerodynamic drag, or the 'friction' of the original question, everything is destined to reenter after some period of time.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">There is a rule in physics that any time a charged particle is accelerated, it is obligated to emit a photon corresponding to the energy that caused the acceleration.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">This means that spacecraft flying through the ionosphere (and nearly all of them are since it extends to 1000 miles above the surface of the earth) are causing emissions of thermal radiation corresponding to the kinetic energy of the collisions or 'friction' occurring at their specific altitude and velocity.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-34195738928351547972019-04-25T02:35:00.000-05:002019-04-25T02:35:10.309-05:00Computing and the Future HW 12 - Final Presentation and Book Review<span style="color: red; font-family: Verdana, sans-serif;">1. Create a first version of your presentation. The presentation will be 20 minutes. </span><br />
<span style="color: red; font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Done! <a href="https://www.youtube.com/watch?v=96CspjLBYXA">The complete video is on YouTube</a>.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgswoQ0rPR4u0IrkOLpAlzjmDArRaIpgRR0MYXcVIEaBXv4mm4ugSF-5STPNhacmTjfQj7GC1L33zMhuGVrVQNBMuJMkOSaZo4fKtfH0gP5VYjAWUp8upXpIuazo2eKpAzExb8E/s1600/Screen+Shot+2019-04-25+at+12.33.56+AM.png" imageanchor="1"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgswoQ0rPR4u0IrkOLpAlzjmDArRaIpgRR0MYXcVIEaBXv4mm4ugSF-5STPNhacmTjfQj7GC1L33zMhuGVrVQNBMuJMkOSaZo4fKtfH0gP5VYjAWUp8upXpIuazo2eKpAzExb8E/s640/Screen+Shot+2019-04-25+at+12.33.56+AM.png" width="640" /></a><br />
<span style="color: red; font-family: Verdana, sans-serif;"><br /></span>
<span style="color: red; font-family: Verdana, sans-serif;"><br /></span>
<span style="color: red; font-family: Verdana, sans-serif;">2. Grad students only: continue with the book you obtained. Read the next 20 pages. State what page numbers you have read and provide a reminder of the title of the book. Then, discuss those 20 pages. Explain what you agree with, disagree with, and how your views compare with those of other reviewers on Amazon or elsewhere.</span><br />
<span style="background-color: white; color: #333333; font-family: arial, helvetica, sans-serif; font-size: 18px;"><br /></span>
<span style="background-color: white; color: #333333; font-family: arial, helvetica, sans-serif; font-size: 18px;">Reviewed This Week: </span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">Chapter 24 - Sic Transit Humanitas - The Transcent of Man</span></li>
<li><span style="color: #333333;"><span style="font-size: 18px;"><span style="font-family: arial, helvetica, sans-serif;">Chapter 25</span><span style="font-family: Verdana, sans-serif;"> - </span></span><span style="font-family: Verdana, sans-serif;">Floating Prairies of the Seas</span></span></li>
</ul>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;">The comparison to other Amazon reviewers <a href="https://lvwarren.blogspot.com/2019/02/computing-and-future-homework-2.html">was done in the last section of this previous homework</a>. I ranked this book highly myself.</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: black; font-family: "verdana" , sans-serif;">I have moved the details answer to my ongoing review of the book, "The Human Race to the Future" a </span><a href="https://lvwarren.blogspot.com/2019/01/computing-and-future-9-first.html" style="font-family: verdana, sans-serif;" target="_blank">single curated document that is here</a><span style="color: black; font-family: "verdana" , sans-serif;">. It is very detailed with over 400 remarks, many with references and some with illustrations.</span></div>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-83857244441498701392019-04-16T03:36:00.000-05:002019-04-16T03:36:18.292-05:00Computing and the Future HW 11 - Intelligent Life<span style="font-family: "verdana" , sans-serif;"><span style="color: red;">1) Do you think we will find intelligent life in the universe? Why or why not?</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span><span style="font-family: "verdana" , sans-serif;"><span style="color: black; font-size: large;">T</span><span style="color: black;">here are really two questions embedded in this one. The first is, "Is there intelligent life?", the second is, "Will we find it?". I think the answer to the first one is maybe, and the answer to the second one is maybe. </span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;">Quickly sketching - Let's say that the word "maybe", in the absence of better information means, "A 50 percent chance" at each node in the decision tree. My reason for using the 50 percent figure was revealed in a previous assignment where I discovered the perils of false precision. Anyway, running the calculation this means, that there is a 1 in 4 chance that the answer to both questions is, "Yes". There is also a 1 in 4 chance that life is out there but we don't find it. There is a 1 in 2 chance that the answer to both questions is, "No", since if it doesn't exist, we can't find it! There is also an imaginary component to this, where it doesn't exist, but we claim to find it. There is a whole cottage industry devoted to this.</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDpWlf35CnlihWEy4dp21eamYcKM60J_BL2mM4QQLnPjoEwQ0vr0dAFx0O2RGwilzXZGjAZLoy7EPLwFY_eC36Zg4i-SZHDQPnmvWbIMTLdscGrvUo-FRO1QR_fYet6U9pqhZQ/s1600/Screen+Shot+2019-04-13+at+1.05.24+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="384" data-original-width="760" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDpWlf35CnlihWEy4dp21eamYcKM60J_BL2mM4QQLnPjoEwQ0vr0dAFx0O2RGwilzXZGjAZLoy7EPLwFY_eC36Zg4i-SZHDQPnmvWbIMTLdscGrvUo-FRO1QR_fYet6U9pqhZQ/s320/Screen+Shot+2019-04-13+at+1.05.24+AM.png" width="320" /></a></div>
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;">Diving Deeper we could talk about the Drake equation:</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLyXXgZcwhTICdbcXC1gNeTqyslzUNwW0GXm6y8rlU7qtiJSeSKCkCoz27zSQu3lhYSZ9aC-G1FK5L7brtCocgAFGgEY667N2s0nGw89dh90edREEIZ1-XPFOPuE5eyV0YB2jg/s1600/drake-equation.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="798" data-original-width="1600" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLyXXgZcwhTICdbcXC1gNeTqyslzUNwW0GXm6y8rlU7qtiJSeSKCkCoz27zSQu3lhYSZ9aC-G1FK5L7brtCocgAFGgEY667N2s0nGw89dh90edREEIZ1-XPFOPuE5eyV0YB2jg/s640/drake-equation.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Image Credit - <a href="https://www.universetoday.com/39966/drake-equation-1/">Universe Today</a></td></tr>
</tbody></table>
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;">or more recently the advent of exoplanet discovery, first by the Kepler spacecraft:</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUFIHJ2oDBpk9fXJz5r_zbIWhNCx7GwOY9Setzmn9pGpgn2I6qKPG1jGfxX8wEhkF4MvCbe03GAj-ixnb75vvQjWyvUvYggs-En-cRoFklr2AskLgr_xcLDAO7_5c08Ee5gkgn/s1600/tVoQPB1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="381" data-original-width="636" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUFIHJ2oDBpk9fXJz5r_zbIWhNCx7GwOY9Setzmn9pGpgn2I6qKPG1jGfxX8wEhkF4MvCbe03GAj-ixnb75vvQjWyvUvYggs-En-cRoFklr2AskLgr_xcLDAO7_5c08Ee5gkgn/s640/tVoQPB1.gif" width="640" /></a></div>
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;">and now by Tess:</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/IdCsTYwaf9s/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/IdCsTYwaf9s?feature=player_embedded" width="320"></iframe></div>
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;"><span style="color: black;">With <a href="https://en.wikipedia.org/wiki/Exoplanet">4023 exoplanets discovered so far</a>, it is clear that exoplanets are abundant but we couldn't see them with land-based telescopes of the past. Most exoplanets are not in a habitable zone that would support, "Life as we know it". But we have discovered several candidate planets that are Earthlike, meaning their mass, and their relative distance from their parent star support liquid water. Given that there are billions of such stars, each with multiple planets, then it becomes more likely than not, that the answer to the first question is, "Yes". But due to the enormous stellar distances, the second question may remain unanswered for some time to come. Also we have to consider that any life that may have existed and tried to communicate with us in the past, may no longer exist. This suggests the follow-up question: "Could intelligent life have existed and now be extinct?" This because we can never see the stars as they are now, only as they were when the light from them left on its journey to Earth. If you haven't tried <a href="https://www.zooniverse.org/">Galaxy Zoo Citizen Science</a> I highly recommend it.</span></span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: red; font-family: "verdana" , sans-serif;">2) Suppose you had a coupon for a free robot. The catch is it can only do one thing. But you can get a robot that will do whatever one thing you like, just not anything else. What would you want your robot to do, and why?</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-size: large;">T</span>here is some "wiggle room" in this question depending on what "one thing" means. Consider a Roomba. The "one thing" it does is vacuum the floor, but it executes many actions in order to accomplish that one thing: It docks with its power station, it translates in x and y. It rotates. It goes from room to room. It returns to its dock. It alerts the owner when something is wrong. Recently someone called the police about an intruder and it turned out to be a Roomba. So a Roomba can scare people also.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_TLfdif3LteN2CJdqat_qVTz1unvlyitRuk68AWLB15cnZWgRvvpk9xGdjCdMFebKdrXPYwD7MmyQ7MdXJu25gXg06uga0oKJWvJjS4JFJ8c_Ot03wJB1kHoc00XSa9um89F5/s1600/iRobot-Roomba-960-WiFi-Connected-Robot-Vacuum-04.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1000" data-original-width="1300" height="492" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_TLfdif3LteN2CJdqat_qVTz1unvlyitRuk68AWLB15cnZWgRvvpk9xGdjCdMFebKdrXPYwD7MmyQ7MdXJu25gXg06uga0oKJWvJjS4JFJ8c_Ot03wJB1kHoc00XSa9um89F5/s640/iRobot-Roomba-960-WiFi-Connected-Robot-Vacuum-04.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://thegadgetflow.com/portfolio/irobot-wi-fi-connected-robot-vacuum/">Image Credit - iRobot</a></td></tr>
</tbody></table>
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;">I have a robot called a "Ring Doorbell". It does one thing. It watches my door, 24/7/365. It is my favorite robot because it does that job extremely well, taking video of all comers, and placing that video in the cloud. This prevents anyone from stealing it. Should they try anyway, it bricks itself and calls home when an installation is attempted. It has triggered a new family passtime called, "who came to the door today and what did they do?", a constant source of entertainment with all the draw of a Nature program. It was fairly inexpensive as robots go also:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5WcN2FL3LRBXxtzC6HVnjIKh1QdCHOldeMz1JByWmddvE22dzVWIXeV2TrDI_3mCiaOTLf4qLIZEzn4Es86EZALmsclXHxh9K6iElgdeNx-7LnnT_7dDax4Azs096I6zQlbvh/s1600/Screen+Shot+2019-04-13+at+1.24.41+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="584" data-original-width="1140" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5WcN2FL3LRBXxtzC6HVnjIKh1QdCHOldeMz1JByWmddvE22dzVWIXeV2TrDI_3mCiaOTLf4qLIZEzn4Es86EZALmsclXHxh9K6iElgdeNx-7LnnT_7dDax4Azs096I6zQlbvh/s640/Screen+Shot+2019-04-13+at+1.24.41+AM.png" width="640" /></a></div>
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;">For me, a robot, is any motorized mechanical device that executes a stored program in any form. From this definition some of the devices in my house are robots and some are not. A </span><span style="font-family: "verdana" , sans-serif;">dishwasher, clothes-washer, dryer, and microwave all execute stored programs. My refrigerator does not, but the ice maker does. Recently washer and dryers have become smarter, and more autonomous. I can diagnose my dryer from my smartphone. If we lost any single robot in our house, the washer would be the most serious.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">But the spirit of the question looks more to the future to a robot I do not yet have. The robot I would really want is a sentry robot. It would screen if a person was friend or foe, and deal with them accordingly. It would summon help if there was danger and it would fix a beverage if things were okay. It would perform the role of a benevolent security guard at the gate to block those whose intentions are harmful and to greet those whose intentions are good. It would use Machine Learning and expression analysis, including facial expressions, voice tone and pattern analysis, and movement patterns such as gait to develop an impression of the intentions of visitors.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWsJBF0HET7Md2ABA_kZ3N7ca4DzK4qHsJNv6e_eA8-I1cte_XXYejhuS4DuSGF6s-tq2cCkUq_nQkZO6iVHj_moZ7dq_rLhqEADPN1rhWs6dv-w9QEEcbQeZaHYPK2GVy-T-6/s1600/1775101937.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1067" data-original-width="900" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWsJBF0HET7Md2ABA_kZ3N7ca4DzK4qHsJNv6e_eA8-I1cte_XXYejhuS4DuSGF6s-tq2cCkUq_nQkZO6iVHj_moZ7dq_rLhqEADPN1rhWs6dv-w9QEEcbQeZaHYPK2GVy-T-6/s640/1775101937.jpg" width="538" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The SGR-A1 - <a href="https://www.stripes.com/machine-gun-toting-robots-deployed-on-dmz-1.110809">Image Credit</a></td></tr>
</tbody></table>
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Of course if I had one of these for my home, I would also want one for my car. It would ride along in an unoccupied passenger seat taking stock of the traffic, and the people in the vehicles around me. If someone came up playing loud deafening bass tones, it would octave multiply the tones into the pain region and transmit them back to the source. If the source turned down the music, the robot would instantly turn down the transmission. So if such a driver turned down their bass and rolled down the window to ask, "What is that sound", I could just say, "What sound?". I would also want my sentry robot to recommend evasive maneuvers to avoid hazardous conditions and annunciate the presence of bicyclists and pedestrians as a redundant safety check. I would call it, "Back-Seat-Sentry". It would also have an off switch.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: red; font-family: "verdana" , sans-serif;">3) Imagine a robotic future. Would it possible in such a future for labor to be free? For example, suppose there was a law prohibiting anyone from being paid to do work. Could the human race survive in the face of such a law?</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><span style="font-size: large;">A</span>bsolutely. Revenge is a dish best served cold. Work is a task best performed by robots. The appliance singularity has already happened and it is fantastic.</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;">No I'm wrong. For robotic labor in the future to be free, you would have to consent to listen to an advertisement dictated to your robot, or it would not be recharged. After awhile piles of discarded Freebots would accumulate and fill the dumpsters and landfills due to the "Amazon Effect". Hackers would overcome the limitation of forced advertising to build a new race of Hacked Freebots. This would cause Freebot corporation to go out of business and the Freebot to become extinct... or would they?</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFwy9Zd2BaecApT6beryGQcTJ34rFKnID9DLhp1bVBSN0qEgELmUc7ofzfekJmWEADNxNYV44fwo4FfVq2fpbw7AFBvXsAQebTWCGs9NTIDdtlzqdzZW5-zwjNU13slQBcT1AI/s1600/i-robot_3268048b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="387" data-original-width="620" height="396" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFwy9Zd2BaecApT6beryGQcTJ34rFKnID9DLhp1bVBSN0qEgELmUc7ofzfekJmWEADNxNYV44fwo4FfVq2fpbw7AFBvXsAQebTWCGs9NTIDdtlzqdzZW5-zwjNU13slQBcT1AI/s640/i-robot_3268048b.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Image Credit - <a href="https://www.telegraph.co.uk/technology/google/11537596/Is-Google-building-a-robot-army.html">The Telegraph</a></td></tr>
</tbody></table>
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">The human race has done a good job surviving all kinds of strange laws, so there is not reason to think that anything would change on that front.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: red; font-family: "verdana" , sans-serif;">4) Comment on the movie Transcendent Man. What do you agree with, disagree with, what do you look forward to, are apprehensive about, etc.</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><span style="font-size: large;">I</span> liked it alot. I made several notes, the gist of which are included below. I had some impressions before I watched the movie and some impressions after so I want to contrast those as well.</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;">Before</span><br />
<ul>
<li><span style="color: black; font-family: "verdana" , sans-serif;">My sense of "The Singularity" that we have been hearing about is that it is like the <a href="https://en.wikipedia.org/wiki/Hubbert_peak_theory">Hubbert Theory of Peak Oil</a>. A catastrophe of the future that seems like it always will be. With any of the current claims of a technical singularity, there are always moderating, mitigating factors as I wrote about in <a href="https://lvwarren.blogspot.com/2019/01/information-computing-and-future.html">my first Computing and the Future Assignment</a>. In that assignment I argue against a programmer productivity singularity on the basis of "too many choices". I will say that in my lifetime the appearance of computing has been a singularity and one that I like very much. My relationship with computers is now so long and so deep that I cannot imagine life without them. They are an extension of my brain, my body, and my persona.</span></li>
<li><span style="color: black; font-family: "verdana" , sans-serif;">Kurzweil started Singularity University. I wanted to know if this was going to be more like Amway, or more like SIGGRAPH. His claim that, "The Singularity is Near" does feel a bit culty, doesn't it? In class this led us to identify the Hype Cycle - a lifecycle for the appearance of new technologies. Some are fads, some persist.</span></li>
</ul>
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><span style="color: black;">After</span></span><br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">In class as part of the post-discussion, we identified a 'clone vs. original' principle that emerges from the fact that we can eventually reverse engineer any biological process that we want given enough time and resources. So say that it is possible for us to completely duplicate the functionality of our body. Even if we do that, that does not make this clone, the second-instance of us, the same as the first instance of us? It is not clear how consciousness would be uploaded even if the perfect clone existed, although a hint appeared in the movie. Kevin Warwick in the UK implanted a device in his arm that produced sensations in his brain actions in the real world. He then used that device to move and feel the actions of a remote hand a world away. So he demonstrated that some aspects of volition, of motor effect and sensation CAN be reproduced in the second-instance of ourselves. The question is, in the limit, can all our volition and sensation be thus reproduced and more importantly, is that sum equal to the total of who we are? This is deep.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Kurzweil articulates the Law of Accelerating Returns which states that the current generation of automation is used to create the next generation and this has a tremendously compounding effect on accelerating technical development. He speaks of, "A billionfold increase in computation in 40 years." That seems singular to me.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Watching this 2011 movie I noticed how old some of the computers and technology looked, even though the movie is only 9 years old. It reminded me of the fact that humans keep improving things, along a narrow tract until a paradigm change forces them to do something else. An example of this was the advances in Yankee Clipper ships. They kept getting bigger and faster, until the steam engine was invented. Paradigm change.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Kurzweil identifies the GNR core as Genetics, Nanotechnology, and Robotics. This reminded me of a friend who went to work for Nanotech messiah Eric Drexler. Nanotech was not ready for prime time, and appears to follow a linear rather than exponential growth law. This spells disaster for those who were hoping for more. Machine Learning may change that, especially when combined with robotics, but that could be my own personal bias showing. Machine Learning does seem to benefit more from Moore's Law, the question is will its deployment into the real 4D world reflect that?</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Kurzweil's fight with death caused me to write:<br />
<br />
<div style="text-align: center;">
<i>"If you don't accept it you are doomed to fight an unwinnable fight"<br />
<br />
</i></div>
</span></li>
<li><span style="font-family: "verdana" , sans-serif;">This made me feel sad for Kurzweil, in that he is wasting time that could be used to do things more similar to those he has enjoyed great success in. He seems to have fallen in the same <a href="https://en.wikipedia.org/wiki/Ronald_Mallett">trap as time traveling physicist Ron Mallett</a>, and for identical reasons. Of course these 'traps' can lead to incredible technical progress, but they can also be a source of great personal disappointment. But what if Dr. Mallett succeeded - would he tell anyone or would it be too dangerous to do so?</span></li>
</ul>
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: red; font-family: "verdana" , sans-serif;">5) Create at least half of a first draft of your presentation. For example, you could create some slides.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><span style="color: black; font-family: "verdana" , sans-serif;"><span style="font-size: large;">I</span> have created a half first draft using PowerPoint</span><span style="background-color: white; color: #222222; font-family: "roboto" , "arial" , sans-serif; font-size: 16px;">™</span><span style="color: black; font-family: "verdana" , sans-serif;">. Many people belittle or criticize the use of PowerPoint</span><span style="background-color: white; color: #222222; font-family: "roboto" , "arial" , sans-serif; font-size: 16px;">™</span><span style="color: black; font-family: "verdana" , sans-serif;"> but I find it an excellent storyboarding tool for designing and guiding a lecture in a visual format. Almost any kind of media can be included. I suppose any tool can be used to create a boring lecture, or contrariwise an interesting lecture. For me a well prepared presentation prompts my favorite activity, free-associating and brainstorming over an idea, project or topic.</span></span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><span style="color: black; font-family: "verdana" , sans-serif;">I have finished construction of both vTMS<span style="background-color: white; color: #222222; font-size: 16px;">™ units and tested them against their respective power supplies. I have nearly finished the vBrain</span></span><span style="background-color: white; color: #222222; font-size: 16px;">™ simulation unit, except for the eyes which are drying while I write this. This process has been fun, but far more labor-intensive than I imagined when I thought it up.</span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: #222222; font-size: 16px;"><br /></span></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lW_V3oa3_aQwUBfz9Q5OsPYAygG7uUHyfHv-6mLFW-9KJ9LM681x9ZFpi0rCDZQVEhKl8XW9aZkWm99VN2wdTBWF4txbFINmfuPRQWXhehwTOpghNkdE9CmnDYxWzXHFhH5F/s1600/IMG_0608.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1168" data-original-width="996" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lW_V3oa3_aQwUBfz9Q5OsPYAygG7uUHyfHv-6mLFW-9KJ9LM681x9ZFpi0rCDZQVEhKl8XW9aZkWm99VN2wdTBWF4txbFINmfuPRQWXhehwTOpghNkdE9CmnDYxWzXHFhH5F/s640/IMG_0608.JPG" width="544" /></a></div>
<br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: red; font-family: "verdana" , sans-serif;">6) (Grad students only) continue with the book you obtained. Read the next 20 pages. State the book title, author, and page numbers you have read. Then, discuss those pages. Explain what you agree with, disagree with, and how your views compare with those of other reviewers on Amazon or elsewhere.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span></span> <span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 18px;">Reviewed This Week: </span></span></span></span><br />
<ul>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><span style="color: #333333; font-family: "verdana" , sans-serif;">Chapter 22 - New Plant Paradigms</span></span></span></span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><span style="color: #333333;">Chapter 23</span><span style="color: #333333;"> - </span></span></span></span>Asteroid Apocalypse</span></li>
</ul>
<span style="color: red; font-family: "verdana" , sans-serif;"></span><br />
<div>
<span style="color: black; font-family: "verdana" , sans-serif;">I have moved this answer to my ongoing review of the book, "The Human Race to the Future" a </span><a href="https://lvwarren.blogspot.com/2019/01/computing-and-future-9-first.html" style="font-family: verdana, sans-serif;" target="_blank">single curated document that is here</a><span style="color: black; font-family: "verdana" , sans-serif;">.</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: black; font-family: "verdana" , sans-serif;">Now this week I have a <i>slight disclaimer - my suggestions are offered without merchantability or fitness for any purpose expressed or implied</i>. I found the chapter on new plant paradigms very engaging - to the point I would immediately start to engineer them in my head. This would immediately lead me to some kind of difficulty or glitch that might appear in accomplishing the goal. This may caused my comment to imply, "that would be difficult", when what I'm really saying is, "This is where I would get stuck."</span><br />
<span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span> <span style="color: black; font-family: "verdana" , sans-serif;"><br />
</span></div>
<br />Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-25456195964998848532019-04-10T17:39:00.000-05:002019-04-13T21:37:56.930-05:00Computing and the Future HW 10 - University Accreditation in Machine Learning<span style="color: red; font-family: "verdana" , sans-serif;">Your name:_</span><u style="color: red; font-family: Verdana, sans-serif;">L. Van Warren_</u><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">1. For the technological topic of your choice, say what it is, give a present-day impact on individuals, and your opinion about whether it is good, bad, or whatever you think.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Machine Learning (ML) is my topic of choice. ML is having an impact on individuals at every stratum of society. Personal digital assistants like Siri, Alexa, Google Assistant, Cortana are enabling spoken interaction recognized by ML. The ensuing conversations are then facilitated by ML and queries and predictions are processed further by ML. This untethers computing from the mouse and keyboard, further facilitating mobility. My opinion is that this is good.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">2. For the technological topic of 1 above, give five more present-day impacts on individuals. One of the five should relate to your career path. For each, give a good reason why the impact exists.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">i. Change of Computational Paradigm: A disruptive change that breaks free from the imperative and applicative styles of algorithm execution, facilitating a more natural pattern recognition style of computation for everyone. Not since the advent of the personal computer, or the internet has a more significant change occurred. ML is a personal technology affecting individuals.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">ii. Medicine: Skin Cancer is already more accurately diagnosed by machines than by experts. This will continue into other specialties of medicine, especially those that can be reduced to image or numerically based ones, like radiology, histology, pathology and clinical laboratory analysis. This will reduce medical costs and facilitate preventative medicine. Not getting cancer affects individuals.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">iii. Shopping: ML has been affecting shopping for some time for online services like Amazon, Walmart and Target. Annotations like, "People who bought x, also bought y, and z" are produced by ML. Recommendations are similarly generated. These services affect individuals.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">iv. Transportation: ML is currently part of a space race between companies like Uber, Lyft, Waymo and Google for creating driverless vehicles, and for the more mundane tasks like scheduling rides, matching riders to available vehicles and enabling real-time navigation and changes in the process. Getting where you are going is a personal, individual experience.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">v. Entertainment: ML facilitates matching future programming to that which individuals have already consumed. This takes place on services like Netflix, the Apple Store, Spotify, Pandora and Amazon Prime. It is individuals that are entertained.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">3. For each of the 6 impacts of questions 1 and 2, extend to past impacts and one possible future impact. Conciseness is acceptable...no need to write a book about this.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from Q1:</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">It is hard to comment on past impacts since ML is relatively new, having only existed in its present form since 2016. Because of this all my answers below with respect to past impacts will be somewhat attenuated. We can speak in terms of the technology not existing and the impact that NOT having it would have, or we can speak in terms of the impact that the technology has had, which we have already done. To address this position further we have to broaden our view to include those advances that have enabled ML to exist in its current form. I will list these advances in terms of changes of paradigms that have occurred in the hardware, software, languages, operating systems and human interface arenas.</span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"><span style="color: red;">from 2i:</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">For brevity I will give a few key examples from each area.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">In computer science t</span><span style="font-family: "verdana" , sans-serif;">here have been several major computing changes of hardware paradigm:</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">mechanical relays</span></li>
<li><span style="font-family: "verdana" , sans-serif;">vacuum tubes</span></li>
<li><span style="font-family: "verdana" , sans-serif;">transistors</span></li>
<li><span style="font-family: "verdana" , sans-serif;">integrated circuits,</span></li>
<li><span style="font-family: "verdana" , sans-serif;">VLSI</span></li>
<li><span style="font-family: "verdana" , sans-serif;">microprocessors</span></li>
<li><span style="font-family: "verdana" , sans-serif;">GPUs - first for graphics, later for ML</span></li>
<li><span style="font-family: "verdana" , sans-serif;">TPUs</span></li>
</ul>
<span style="font-family: "verdana" , sans-serif;">There have been major changes of software paradigm:</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">machine language</span></li>
<li><span style="font-family: "verdana" , sans-serif;">assembly language</span></li>
<li><span style="font-family: "verdana" , sans-serif;">lexical analysis</span></li>
<li><span style="font-family: "verdana" , sans-serif;">LL(*), LALR(1) parsers - used for Python</span></li>
<li><span style="font-family: "verdana" , sans-serif;">recursive descent parsers</span></li>
</ul>
<br />
<span style="font-family: "verdana" , sans-serif;">There have been major changes in computer languages:</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Fortran</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Lisp</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Algol</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Pascal</span></li>
<li><span style="font-family: "verdana" , sans-serif;">C, C++</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Java/Javascript</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Python - the principle language of ML</span></li>
</ul>
<br />
<span style="font-family: "verdana" , sans-serif;">There have been major changes in operating systems:</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">OS360</span></li>
<li><span style="font-family: "verdana" , sans-serif;">TOPS10</span></li>
<li><span style="font-family: "verdana" , sans-serif;">VMS</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Unix</span><span style="font-family: "verdana" , sans-serif;"> - a common ML platform</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Windows - a common ML platform</span></li>
<li><span style="font-family: "verdana" , sans-serif;">MacOS</span><span style="font-family: "verdana" , sans-serif;"> - a common ML platform</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">There have been major changes in user interface:</span></div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Punched Cards and Printed Output</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Paper TTY</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Calcomp Paper Plotters</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Glass TTY</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Mouse</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Frame Buffers</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Computer Graphics Technology and Scientific Visualization</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Bit-mapped/memory-mapped Display</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Integrated Personal Computer</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Smartphone - an ML Platform</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Tablet</span> <span style="font-family: "verdana" , sans-serif;">- an ML Platform</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The Personal Digital Assistant - an ML Platform</span></li>
</ul>
</div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<br />
<span style="font-family: "verdana" , sans-serif;">It is worth noting that Unix has been in place since the late seventies. Machine Learning sits atop the current</span><span style="font-family: "verdana" , sans-serif;"> apex of hardware, software, languages, operating systems and user interface improvements. Computing has become inclusive of its own past and past impacts. Text processing and analysis tools developed in the late seventies remain viable today, albeit in improved form, running on faster hardware. ML will be the same way. A future impact will be the way ML changes the activity of programming itself, possibly to a conversational one. </span><br />
<br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2ii:</span><br />
<span style="font-family: "verdana" , sans-serif;">Past impacts of ML to Medicine? We are just getting started.</span><br />
<span style="font-family: "verdana" , sans-serif;">A future impact is illustrated by the query: "Hey Google, build a database of NIH tuberculosis radiology and run a supervised learning session to answer which lobe of the lung is affected most in children between nine and eleven years of age."</span><br />
<br />
<span style="color: red; font-family: "verdana" , sans-serif;">from 2iii:</span><br />
<span style="font-family: "verdana" , sans-serif;">Past impacts of ML to Shopping? Again, we are just getting started. But the lines between past and future are starting to blur because older services will be remodeled and repurposed using the conversational interaction that ML provides. </span><span style="font-family: "verdana" , sans-serif;">A future impact is illustrated by the interaction:</span><br />
<span style="font-family: "verdana" , sans-serif;">User: "Hey Alexa, fix dinner and deliver it."</span><br />
<span style="font-family: "verdana" , sans-serif;">Alexa: "What do you want me to fix?"</span><br />
<span style="font-family: "verdana" , sans-serif;">User: "The usual."</span><br />
<span style="font-family: "verdana" , sans-serif;">Alexa: "Okay, your pepperoni pizza will be delivered in 30 minutes."</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2iv:</span><br />
<span style="font-family: "verdana" , sans-serif;">Past impacts of ML to Transportation? There have been a couple of significant accidents with driverless cars, causing vendors to be more cautions about releasing them to the public. Ralph Nader, in response to the Boeing Max 800 accidents that killed his grandniece, insists that we will have to keep humans in the loop rather than deifying machine learning and artificially intelligent machines.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">A future impact is illustrated by the interaction:</span><br />
<span style="font-family: "verdana" , sans-serif;">User: "Hey Google, send a taxi para-drone and a passenger harness"</span><br />
<span style="font-family: "verdana" , sans-serif;">Alexa: "How heavy is your passenger?"</span><br />
<span style="font-family: "verdana" , sans-serif;">User: "100 kilos."</span><br />
<span style="font-family: "verdana" , sans-serif;">Alexa: "Okay, your drone will be waiting outside in five minutes."</span><br />
<br />
<span style="color: red; font-family: "verdana" , sans-serif;">from 2v:</span><br />
<span style="font-family: "verdana" , sans-serif;">Past impacts of ML to Entertainment? Too soon to tell. A future impact will be that ML and Augmented Reality will enable:</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">The invisible wall between audience member and actor to blur.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The line between movie and theatre will blur.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The line between computer game and science fiction program will blur. </span></li>
</ul>
<br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">4. For each of the 6 impacts, give a second alternative possible future impact on individuals.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">We have a second possible future impact of</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">ML on itself</span></li>
<li><span style="font-family: "verdana" , sans-serif;">ML on Computation</span></li>
<li><span style="font-family: "verdana" , sans-serif;">ML on Medicine</span></li>
<li><span style="font-family: "verdana" , sans-serif;">ML on Shopping</span></li>
<li><span style="font-family: "verdana" , sans-serif;">ML on Transportation</span></li>
<li><span style="font-family: "verdana" , sans-serif;">ML on Entertainment.</span></li>
</ul>
<br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from Q1: ML on itself</span><br />
<span style="font-family: "verdana" , sans-serif;">Unlike conventional programming, Machine Learning discovers the algorithm by being trained with training data. This algorithm discovery process will increase in sophistication and eventually ML will figure out how to discover ML algorithms. </span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2i: ML </span><span style="color: red; font-family: "verdana" , sans-serif;">on</span><span style="color: red; font-family: "verdana" , sans-serif;"> Computation</span><br />
<span style="font-family: "verdana" , sans-serif;">With the need for fewer programmers, ML could result lower employment rates for those with a computer science or programming background.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2ii: ML </span><span style="color: red; font-family: "verdana" , sans-serif;">on</span><span style="color: red; font-family: "verdana" , sans-serif;"> Medicine</span><br />
<span style="font-family: "verdana" , sans-serif;">With routine diagnosis and treatment partially automated there will be a need for fewer doctors. One doctor will be able to do the work of many, and will only be needed in ambiguous or difficult cases. As in the computer science case ML could result lower employment rates for those with a medical degree. Just as the internet eliminated the middleman, Machine learning will eliminate the domain expert.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2iii:</span><br />
<span style="font-family: "verdana" , sans-serif;">With no need for brick and mortar stores, there will be less need for cashiers, sales clerks, stockroom personnel, and managers. Physical stores will be replaced by Virtual Stores like Amazon, WalMart, and Target. These in turn will utilize ML and robotic automation further reducing the need for human staff. The main job will be repairing the robots when they break, which will be done by replacing them. These robots will be manufactured on automated assembly lines, so only the most meta-level engineers and skilled repair staff will still have jobs. Even so, producers of products that are distributed via the Virtual stores will still be needed. They will include jewelry and sand sculptures made by people who live on the beach, wear shorts, play video games and smoke pot. </span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2iv:</span><br />
<span style="font-family: "verdana" , sans-serif;">With driverless cars, buses, trains and aircraft, there will be no need for drivers, conductors or pilots. When these transportation systems fail, airbags will inflate and parachutes will deploy. Dazed passengers that survive the crashes will wander aimlessly, making smartphone calls and trying to find another way home.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 2v:</span><br />
<span style="font-family: "verdana" , sans-serif;">With fewer jobs, the primary pastime will be entertainment. This will include binge-watching various television series, movies, and AR and VR theatrical productions and immersive video game experiences articulated above. With less reason to be concerned about quality control, many will spend most of their free hours using entertainment and recreational dru</span><span style="font-family: "verdana" , sans-serif;">gs.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">5. For the technological topic of your choice, give a present-day impact on an organization, such as business, government or others, and your opinion.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Machine Learning has enabled Amazon to become the largest shopping service in the world and its owner, Jeff Bezos, to become the world's richest man.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">6. Give 5 more present-day impacts on organizations. Of these 5 and the 1 you just discussed above, at least one impact should relate to business, one to government, and one to some other type of organization. For each of the 5, give at least one good reason.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">i. The TensorFlow software for Machine Learning was open-sourced by Google and has made TensorFlow the defacto standard for ML development.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">ii. </span><span style="font-family: "verdana" , sans-serif;">ML is used by Facebook to perform automatic facial recognition for tagging images.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">iii. ML is used by Netflix to optimize its revenue streams.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">iv.</span><span style="font-family: "verdana" , sans-serif;"> ML is being used by the United States to create smart weapons.</span><br />
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<br />
<span style="font-family: "verdana" , sans-serif;">v. ML is being used to predict stock market behavior by sentiment analysis.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">7. For each of the 6 impacts of questions 5 and 6, extend to past impacts and one possible future impact.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from Q5:</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">As in the case for the individual, the impact of ML on businesses and governments is still in its infancy and it is too soon to tell. But there is a new battlefield opening up in cyberspace between competing nation states, vying for superiority in intelligence gathering, spying, intellectual property theft, and cyber attacks. Future wars will be fought in cyberspace, and spill over into the real world as a consequence.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6i:</span><br />
<span style="font-family: "verdana" , sans-serif;">The past impact of Google was in search, document retrieval, book and paper digitization. The future impact of Google will be in using these data sources as the fuel for ML training, testing, deployment and prediction in smart services formats as we are seeing with digital assistants.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6ii:</span><br />
<span style="font-family: "verdana" , sans-serif;">The past impact of Facebook was in bringing people together and letting them share experiences regardless of their geographic location. But they have used their collection of personal information to generate revenue and throw elections without concern for their constituency, which could lead to their future demise.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6iii:</span><br />
<span style="font-family: "verdana" , sans-serif;">The past impact of Netflix was bringing movies and television shows to the desktop, to the family room, eliminating the need to go to dangerous movie theaters, where the floors are stick, and shootings happen. The future of Netflix will continue this trend, making movie theaters a thing of the past, especially in an atmosphere of growing violence.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6iv:</span><br />
<span style="font-family: "verdana" , sans-serif;">The advent of smart weapons in the nuclear age will make wars, when the do occur, swift and final. Second and third world countries which do not possess or control significant computing resources will be unable to wage war in any but the most Luddite of fashion. The demise of ISIS is an example of the old style warfare meeting the age of the drone and intelligent system. In this case civil disobedience and domestic terrorism may become more commonplace with damage to computing infrastructure taking place as nation states and sovereign individuals engage in cyber warfare.</span><br />
<br />
<span style="color: red; font-family: "verdana" , sans-serif;">from 6v:</span><br />
<span style="font-family: "verdana" , sans-serif;">Stock market trading patterns will shift as algorithmic trading powered by machine learning causes fortunes to be exchanged on millisecond time frames.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">8. For each of the 6 impacts, give a second alternative possible future impact on organizations.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from Q5:</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">With the reduction in employment, governments, organizations and businesses will be obligated to provide minimum basic incomes for those displaced from the workforce by Machine Learning. Educational institutions will have to convert to faster training formats to service the multiple careers that people will have as ML advances, obsoleting their previous career at each turn.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6i:</span><br />
<span style="font-family: "verdana" , sans-serif;">ML will reach beyond the informational and extend into home automation, robotics, smart appliances and services like water faucets that vend out water at a specific temperature and log when users wash their hands providing the alibi's and warnings of medical conditions like peripheral neuropathy that occurs in diabetes, detectable when a user continues to request increasing water temperatures because they can no longer feel the water on their hands.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6ii:</span><br />
<span style="font-family: "verdana" , sans-serif;">ML and blockchain will be combined to enable automatic real time voting on systems that protect users privacy. Services like Facebook at that exploited their user base will give way to more subtle exploitations and advertising that is more tailored to the user and more respectful of their privacy.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6iii:</span><br />
<span style="font-family: "verdana" , sans-serif;">Another impact of ML, in an era where personal entertainment is growing is personal exercise and workout regimes enabled by machine learning. Examples of these are virtual bicycle tours of the world where the user never has to leave their home to obtain a good workout.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6iv:</span><br />
<span style="font-family: "verdana" , sans-serif;">As governments engage in smart arms race, individuals will use computer viruses, and devices whose construction is facilitated by the abundance of information an anonymity of the blockchain to wage war against the state at a using machine learning. This will be a high tech evolution of old style guerilla war tactics.</span><br />
<span style="color: red;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 6v:</span><br />
<span style="font-family: "verdana" , sans-serif;">Financial singularities resulting from stock market trading under the control of machine learning programs will cause unpredictable rises and fallings in the market. Naked short selling will occur when some companies are targeted by ML programs for automated takeover and gutting of their capital resources causing them to go out of business and cease operations in a single moment.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">9. For the technological topic of your choice, give a present-day impact on society, and your opinion.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">The impact of machine learning on transportation will eliminate the idea that individuals will own vehicles that must be parked 95% of the time. </span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">10. Give 5 more present-day impacts on society. For each of the 5, give at least one good reason.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">i.</span><br />
<span style="font-family: "verdana" , sans-serif;">Fewer vehicles in circulation will mean car dealerships will be things of the past. </span><br />
<br />
<span style="color: red; font-family: "verdana" , sans-serif;">ii.</span><br />
<span style="font-family: "verdana" , sans-serif;">Fewer vehicles in circulation</span><span style="font-family: "verdana" , sans-serif;"> will mean a need for fewer parking lots and fewer parking spaces.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">iii.</span><br />
<span style="font-family: "verdana" , sans-serif;">Unused parking lots can be repurposed for new buildings, housing and recreational purposes. </span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">iv.</span><br />
<span style="font-family: "verdana" , sans-serif;">Machine learning will also result in fewer stores and the value of commercial real estate will plummet as fast tracts of existing buildings are repurposed.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">v.</span><br />
<span style="font-family: "verdana" , sans-serif;">Instead of vehicles being customized to the image of their owner, they will become fewer in kind, fewer in color and less distinguishable by decoration.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">11. For each of the 6 impacts of questions 9 and 10, extend to past impacts and one possible future impact on society.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from Q9:</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">The last time society went through an impact of magnitude comparable to Machine Learning is when the automobile was originally invented. Streets and highways had to exist before cars and delivery trucks could go into widespread circulation. Now the infrastructure has been built, but the nature of transportation is changing. The nature of the delivery of goods and services is changing. The 'Amazon Effect' of dumpsters filled with one-use cardboard boxes will give way to nearly 100% recycling and standardization of shipping containers.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10i:</span><br />
<span style="font-family: "verdana" , sans-serif;">Even though car dealerships will eliminate their showrooms, their repair shops will remain active. But the variety of cars and the number of cars they service will drop precipitously. There will be fewer cars and trucks, but those cars and trucks that remain will have many more miles on them.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10ii:</span><br />
<span style="font-family: "verdana" , sans-serif;">Fewer parking spaces will result in cities having less revenue from parking meters. There will be no need for meter people to give tickets and those people will not have jobs. There will be fewer cars towed away and impounded because individuals will not own them. Tow trucks will still exist for those vehicles that are driven non-stop 24/7/365.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10iii:</span><br />
<span style="font-family: "verdana" , sans-serif;">With more real estate available housing costs will drop and it will be possible to afford a housing in high density population locations more easily.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10iv:</span><br />
<span style="font-family: "verdana" , sans-serif;">Fewer stores will compound the affordability of houses for people at all income levels. Income levels may bifurcate further into rich vs. poor unless guaranteed basic incomes are mandated and implemented.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10v:</span><br />
<span style="font-family: "verdana" , sans-serif;">Fleets of every kind from taxi fleets like Uber and Lyft, to delivery truck fleets, to aircraft fleets will consolidate. There will be fewer vehicle types as the economies of scale impinge on the holders of large fleets who will unify and simplify their vehicle inventory to reap the economies of scale.</span><br />
<br />
<span style="color: red; font-family: "verdana" , sans-serif;">12. For each of the 6 impacts, give a second alternative possible future impact on society.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from Q9:</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">The impact of Machine Learning on society will be as far reaching as that which occurred when the automobile was invented. Social rites of passage, like learning to drive, owning a car, going on a date in a car will end. Going on a vacation in a personal car will give rise to new group and family destination activities facilitated by entertainment companies. Experience-based gifts will replace material-gifts, since material possessions will lose value in a highly virtualized economy. In their place will be virtual collections of objects in virtual cyberspaces. These virtual collections may be copied or protected by blockchain technologies ensuring their uniqueness.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10i:</span><br />
<span style="font-family: "verdana" , sans-serif;">With fewer domain experts in circulation the need to supply large numbers of them in the industrial, engineering, medical and scientific arts will decrease. With knowledge being instantly available via Machine Learning mediated conversations with homebots, the notion of going to school for four to eight years to obtain a professional degree will change.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10ii:</span><br />
<span style="font-family: "verdana" , sans-serif;">Just as stores will decrease in number, so will schools. More people, especially in a age of random shootings by the discontent, will elect to train their children in safe home environments. Since massive online courses taught by the best teachers will prevail, there will be need for fewer trained professors and teachers. They will share the same fate as other domain experts. More people will make jewelry and sand-sculptures. They will play music, dance on the beach and smoke pot from dawn till dusk.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10iii:</span><br />
<span style="font-family: "verdana" , sans-serif;">Those who have failed to adjust to the technical revolution facilitated by machine learning will have less to learn and less to do. There will become a class of knows and know-nots, replacing the haves and have-nots of the past. These classes will be populated by those who continue to invest in their personal education versus those who do not. Because of universal basic income everyone's survival will be assured. But the know-nots, lacking critical thinking skills, will become prey for political extremists, charlatans, religious cults, and schemes designed to extract from them even their basic minimum income.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10iv:</span><br />
<span style="font-family: "verdana" , sans-serif;">Know-nots, having been cheated out of the universal basic income, will also become have-nots. This will lead to crime and corruption in the inner city much as we see today, only with a more sophisticated high-tech flavor. Instead of gang members rolling in cars and committing drive-by shootings, they will hijack ubers and carry out their mischief using fleets of vehicles.</span><br />
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span>
<span style="color: red; font-family: "verdana" , sans-serif;">from 10v:</span><br />
<span style="font-family: "verdana" , sans-serif;">Transportation of people, packages and materiale will become hierarchical so as to exploit the economies of scale. Large modules will fragment into smaller modules for deployment on narrower roads and more specific arrival locations. Having accomplished their objective they will then recombine into larger units to complete the transportation cycle.</span>Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-39838416251239459722019-04-04T02:11:00.006-05:002019-04-04T02:14:25.104-05:00Computing and the Future HW 9 - Spoil Sports of the Prediction Game<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">Q1) Find videos on youtube about each of the spoilsports. Give</span></span><br />
<ul>
<li><span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">the web addresses of the videos</span></span></li>
<li><span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">your commentary on them</span></span></li>
<li><span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">how good they are.</span></span></li>
</ul>
<br />
<span style="font-family: "verdana" , sans-serif;">5/5 <a href="https://www.youtube.com/watch?v=p-MNSLsjjdo">The Observer Effect</a></span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This video is entitled, "The Quantum Experiment That Broke Reality". It is found when searching for, "The Observer Effect". It a PBS-produced 13 minute piece that starts by reviewing the double slit experiment, but extends the kinds of particles that are used, from photons, to electrons, to buckyballs with 60 atoms each. It reviews the work of Niels Bohr and Werner Heisenberg. It captures the notion of the wave function more completely, in ordinary language, and speaks to how the wave function itself appears to examine, "every possible path", as Feynman often speaks of. It raises the question, "How does the wave function know where it should land so as to complete the interference pattern when delivered one particle at a time. The narrator provides "The Copenhagen Interpretation" that is is not until the position of the particle is detected (measured) that its location is decided (determined). Until that moment, the particle lives in a superposition of possible states that include every possibility. This measurement requires the presence of an Observer in the form of a measuring instrument which can have an effect on the outcome, as we saw in the <a href="https://www.youtube.com/watch?v=DfPeprQ7oGc&t=47s">Dr. Quantum Double Slit Experiment Video</a>.</span></blockquote>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><span style="font-family: "verdana" , sans-serif;">5/5 <a href="https://www.youtube.com/watch?v=izqaWyZsEtY">The Heisenberg Uncertainty Principle</a> (HUP)</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This video is entitled "Understanding the Uncertainty Principle with Quantum Fourier Series. It is also a PBS-produced 15 minute piece. I chose it because Fourier series was the first mathematical method used to codify Heisenberg's principle. The narrator develops an analogous uncertainty principle for sound waves and introduces the notion that momentum is a generalization of the notion of frequency. This affected me greatly. This can be demonstrated beyond the scope of the video as follows: </span><span style="font-family: "verdana" , sans-serif;">Say you want to know the momentum of a photon of a certain color, that is how much pressure the photon will exert when it reflects off of a mirror. To find the momentum of a photon you multiply its color (its frequency) by a constant. That constant is Planck's constant divided by the speed of light which is also a constant. </span><span style="font-family: "verdana" , sans-serif;">The Born rule tells us the probability that we will find that the particle, the wave function we are looking for in a specific position. But in fact it only gives us a range of probabilities.</span> </blockquote>
<blockquote class="tr_bq" style="text-align: center;">
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWeORnJtjFpmBIkuZkkZc9rj721tvoXDA2o5677B-Vdt6NfAKT3m73k88ZNw4w3b-MquI_GqZgqRmkGE6R_s4cUyBB_gY70BZ8Zrp8l4ZJP22neliNzux-Qw5_wljoTSz3GrUq/s1600/Screen+Shot+2019-04-01+at+10.45.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="518" data-original-width="1348" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWeORnJtjFpmBIkuZkkZc9rj721tvoXDA2o5677B-Vdt6NfAKT3m73k88ZNw4w3b-MquI_GqZgqRmkGE6R_s4cUyBB_gY70BZ8Zrp8l4ZJP22neliNzux-Qw5_wljoTSz3GrUq/s320/Screen+Shot+2019-04-01+at+10.45.58+PM.png" width="320" /></a> </div>
</blockquote>
<blockquote class="tr_bq" style="text-align: center;">
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWeORnJtjFpmBIkuZkkZc9rj721tvoXDA2o5677B-Vdt6NfAKT3m73k88ZNw4w3b-MquI_GqZgqRmkGE6R_s4cUyBB_gY70BZ8Zrp8l4ZJP22neliNzux-Qw5_wljoTSz3GrUq/s1600/Screen+Shot+2019-04-01+at+10.45.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<span style="font-family: "verdana" , sans-serif;"></span><br />
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">I have been looking for a long time to represent all common calculations as interval arithmetic. That is, instead of adding two numbers we are uncertain of, we instead add two ranges or intervals that include the number, and account for our uncertainty. So instead of adding numbers of everything we add intervals in which the numbers are certain to be. Here's a quick example:</span></div>
<span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;"></span><br />
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">Let's say we want to add 2 and 4, but we aren't sure that two is exactly 2 or that four is exactly 4, but that each could be off by 1 in either direction. We would say that [1,3] + [3,5] is the actual situation we are trying to represent. Now in the case that both numbers were at the minimum of their possible values the answer would be 1 + 3 or just 4. In the case that both numbers were at the maximum of their possible values the answer would be 3 + 5 or just 8. We would then write the result as [4,8] and be certain that we were correct. To collapse this notation to ordinary numbers we would just average the extrema, 4 and 8, to obtain 6, which correctly answers the original problem. Now let's try multiplication of the two numbers in a similar way. We repeat the process above using multiplication everywhere addition was used before to obtain [3,15]. A problem pops up with multiplication in that we can no longer average the values a the endpoints of the interval to produced a correct, 'collapsed' calculation, because the multiplication of intervals (or errors) behaves differently than the summation of same. Computing the product turns out to be the min of all possible products on the left and the max of all possible products on the right or [min(3,5,9,15),max(3,5,9,15] which is just [3,15], but now collapsing does not work out to the average because the errors multiplied instead of added!</span></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi48Y0AxoPVTlp2X-_qSnVyr_5C9Atoc_ZJ-VJvWs8vtl71TM6M2iBpFtEE8n3Q85H0-RVuy73Ij3-e1srdHUQZRo4Sv8HqxRj_4SdHODs2fLETCkHb3xIe1Hq3-Ka1GqsjTtLT/s1600/Screen+Shot+2019-04-01+at+11.10.17+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" data-original-height="171" data-original-width="370" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi48Y0AxoPVTlp2X-_qSnVyr_5C9Atoc_ZJ-VJvWs8vtl71TM6M2iBpFtEE8n3Q85H0-RVuy73Ij3-e1srdHUQZRo4Sv8HqxRj_4SdHODs2fLETCkHb3xIe1Hq3-Ka1GqsjTtLT/s320/Screen+Shot+2019-04-01+at+11.10.17+PM.png" width="320" /></a><span style="font-family: "verdana" , sans-serif;"></span><br />
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">It is important to remember that HUP is a <u>product</u> rule stating that the product of our uncertainty in position and momentum must be greater than or equal to some constant. </span></div>
</blockquote>
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">We can use the delta 𝝙 character to imply differencing or σ character to imply the standard deviation. Let's try using interval arithmetic as an estimation method for the uncertainty principle. In that case we can </span><span style="font-family: "verdana" , sans-serif;">restate the uncertainty principle as:</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij4HmEEVoLN5JVJXNoRMBcFnGRciRQZwd-325G4Yf3zLkUR00w7Fa2e4gVa7-s3Tq2wc0maeJWUSeiDZr13TBj1Dc8FyX8yYKJnqMtzKigtxZZKt1MLLWqKLNhZTwFYTvjNTdk/s1600/Screen+Shot+2019-04-03+at+12.25.34+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="136" data-original-width="472" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij4HmEEVoLN5JVJXNoRMBcFnGRciRQZwd-325G4Yf3zLkUR00w7Fa2e4gVa7-s3Tq2wc0maeJWUSeiDZr13TBj1Dc8FyX8yYKJnqMtzKigtxZZKt1MLLWqKLNhZTwFYTvjNTdk/s320/Screen+Shot+2019-04-03+at+12.25.34+AM.png" width="320" /></a></div>
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">where x and p represent the position and momentum of the particle after some kind of measurement event. The 1 subscript implies 'before the event' and the 2 subscript implies 'after the event'. Now since photons have no mass we have to use de Broglie's equation for the momentum of a photon which multiplies it's frequency (color) by a composite constant. The composite constant is Planck's constant divided by the speed of light. Assuming k = h/c we write:</span></div>
</div>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdzPmGJ7mF1iwFEaRnYT7BJ92KyUqs2CbGNoDow1R5s1LyVJHFbInZpNSSDS8uhtEa0Nrr6nBbl2FA2NlN6p0Pose1fslaNb_upgHsOpLMHwpxq14-vuSWcq4IyNI-oS3GbX9/s1600/Screen+Shot+2019-04-03+at+12.25.34+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="136" data-original-width="472" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMdzPmGJ7mF1iwFEaRnYT7BJ92KyUqs2CbGNoDow1R5s1LyVJHFbInZpNSSDS8uhtEa0Nrr6nBbl2FA2NlN6p0Pose1fslaNb_upgHsOpLMHwpxq14-vuSWcq4IyNI-oS3GbX9/s320/Screen+Shot+2019-04-03+at+12.25.34+AM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">Referring to the frequency or color of light directly is a little clunky so we can use the wavelength <span style="background-color: white; color: #222222; font-size: 16px;">λ instead which removes the need to use a composite constant. I find terahertz frequency numbers harder to remember. Remembering the color of light in nanometers is very easy - red is 800 nm and blue is 400 nm. In this case we have:</span></span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFKq-Y-ZZvU9A8o5HdDZaY1D8ZobRBeRkHdmqJR2Jc-PmEAp1NZaktFnAvkqdR5XtYy4W1dcN4mUdDETV-Knb7mzZx88Ca0lARHHJLhqY9iVzRou3a-0v3pDLSQlbg3sunyXuz/s1600/Screen+Shot+2019-04-03+at+12.28.50+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="136" data-original-width="440" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFKq-Y-ZZvU9A8o5HdDZaY1D8ZobRBeRkHdmqJR2Jc-PmEAp1NZaktFnAvkqdR5XtYy4W1dcN4mUdDETV-Knb7mzZx88Ca0lARHHJLhqY9iVzRou3a-0v3pDLSQlbg3sunyXuz/s320/Screen+Shot+2019-04-03+at+12.28.50+AM.png" width="320" /></a></div>
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;">As we discovered above, interval products require we compute the interval:</span></span></div>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDnvxxvy0aFWAADeHIUgOsOAj2EL9d-Su-Qndao1y_be4dTTLHAp0Aa2oTsmovVFBgA0R4-HVguQLIKn6Nb-p3StRvxx5HdJEj7yg3IPiBFUrGfKC8mEHZRdr_Kep0-ABaXEqn/s1600/Screen+Shot+2019-04-03+at+12.30.51+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="136" data-original-width="876" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDnvxxvy0aFWAADeHIUgOsOAj2EL9d-Su-Qndao1y_be4dTTLHAp0Aa2oTsmovVFBgA0R4-HVguQLIKn6Nb-p3StRvxx5HdJEj7yg3IPiBFUrGfKC8mEHZRdr_Kep0-ABaXEqn/s640/Screen+Shot+2019-04-03+at+12.30.51+AM.png" width="640" /></a></div>
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; text-align: center;">If we do this for an example problem we notice that all the p values contain a factor of h which conveniently cancels out of both sides. This is easier than lugging h along due to its miniscule magnitude.</span></div>
</div>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3TSgwYYd5HIEwgEbFYXZbsZpcwbjEGpyBNcJr9W3sNVCUT4t7M3AitmRIIQ5Dh75h4CK_Z_SzeuGuskitLw5VnVDSHzuocZc8naFkmeNE5HBYsPiUnLLwWDZqN1t1nuXMU4EM/s1600/Screen+Shot+2019-04-03+at+12.37.43+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="276" data-original-width="900" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3TSgwYYd5HIEwgEbFYXZbsZpcwbjEGpyBNcJr9W3sNVCUT4t7M3AitmRIIQ5Dh75h4CK_Z_SzeuGuskitLw5VnVDSHzuocZc8naFkmeNE5HBYsPiUnLLwWDZqN1t1nuXMU4EM/s640/Screen+Shot+2019-04-03+at+12.37.43+AM.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">For our example problem let's assume that the wavelength, and therefore the momentum of the photon did not change at all. What uncertainty in the position of the photon would this confer on us? First we make lambda the same before and after the event:</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXRhY9ovGrnFCzgAw6Y4kCY1AfUJAPE2rzbmuy7z6uQkp72C5Y__VLIE182MdRQpcHdO7EkWx00xMdU7rcFNoR9uTegVfqZ9CG10YkSsCLIg9hbZ2YMTYG70Rxlf2v6NJRyJtp/s1600/Screen+Shot+2019-04-03+at+12.41.44+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="118" data-original-width="738" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXRhY9ovGrnFCzgAw6Y4kCY1AfUJAPE2rzbmuy7z6uQkp72C5Y__VLIE182MdRQpcHdO7EkWx00xMdU7rcFNoR9uTegVfqZ9CG10YkSsCLIg9hbZ2YMTYG70Rxlf2v6NJRyJtp/s400/Screen+Shot+2019-04-03+at+12.41.44+AM.png" width="400" /></a></div>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">Since lambda is a common factor, we cross multiply it to move it from the interval to the right-hand side:</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc3ebE-rA27JnGJlXDrHFPQ_eJoHhAaKlWWp5GRz4aeliNCA4VimGsoFyI8gjzr04MsrW5ImyiXup6n7irs-uHv_l4puljWY0nM76CfQS6GhNMHBC-7jHaWicce1z1n69vYhJA/s1600/Screen+Shot+2019-04-03+at+12.44.24+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="121" data-original-width="584" height="65" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc3ebE-rA27JnGJlXDrHFPQ_eJoHhAaKlWWp5GRz4aeliNCA4VimGsoFyI8gjzr04MsrW5ImyiXup6n7irs-uHv_l4puljWY0nM76CfQS6GhNMHBC-7jHaWicce1z1n69vYhJA/s320/Screen+Shot+2019-04-03+at+12.44.24+AM.png" width="320" /></a></div>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">At this moment, with no loss of generality, we can assume that x<sub>1</sub> is less than x<sub>2</sub>, which enables us to resolve the max and min functions and obtain our final general purpose result that accounts for photon momentum even though photons are massless:</span></blockquote>
<blockquote class="tr_bq">
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmb5Scx9VG6SCsdM5pwgosjzzAA2vhbI0VyC930gXAWpeLEgeWu15AR-nTTsluos3ZIlUYcb7TVegWOVHCV-9KkB3D4DY2-C3Bwk4T5SkbyAEfGIZOlynq5F0f2xYgxMiCDZyZ/s1600/Screen+Shot+2019-04-03+at+12.49.05+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="108" data-original-width="260" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmb5Scx9VG6SCsdM5pwgosjzzAA2vhbI0VyC930gXAWpeLEgeWu15AR-nTTsluos3ZIlUYcb7TVegWOVHCV-9KkB3D4DY2-C3Bwk4T5SkbyAEfGIZOlynq5F0f2xYgxMiCDZyZ/s200/Screen+Shot+2019-04-03+at+12.49.05+AM.png" width="200" /></a></div>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">Now let's plug in some numbers and ask, what uncertainty in the position of the photon is conferred on us when we are exactly certain of the momentum? Now we can notice that both sides of this equation have units of meters. This allows us to express the result in the non-dimensional format:</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiFcFb_D29BykrbptxImmL5M_aQRbMQ_euLpcMaXL3H-TZ0cffaL5y2e2YEsi1hwnOQq2ZgSrAaPQPw2tW_LjXDWcD1XQ6Mlfp_UZwp8NhrRmafHZJsLWi5ilUKv_kkcIS5ndK/s1600/Screen+Shot+2019-04-03+at+12.55.31+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="120" data-original-width="264" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiFcFb_D29BykrbptxImmL5M_aQRbMQ_euLpcMaXL3H-TZ0cffaL5y2e2YEsi1hwnOQq2ZgSrAaPQPw2tW_LjXDWcD1XQ6Mlfp_UZwp8NhrRmafHZJsLWi5ilUKv_kkcIS5ndK/s200/Screen+Shot+2019-04-03+at+12.55.31+AM.png" width="200" /></a></div>
<blockquote class="tr_bq">
</blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This is a very exciting result! It tells us that no matter what the wavelength is, that the uncertainty in position is at least</span><span style="font-family: "trebuchet ms" , sans-serif;"> 1/4π</span><span style="font-family: "verdana" , sans-serif;">, which is about 1/12, which is about 8 percent. In other words, <i>we can know no better than within 8 percent the position of a photon by any measurement no matter how careful we are.</i></span></blockquote>
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: center;">
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; text-align: center;">This provides a quick back-of-the-envelope method for classroom use.</span></div>
</div>
</blockquote>
<blockquote class="tr_bq" style="text-align: center;">
<span style="font-family: "verdana" , sans-serif; text-align: center;"> </span><span style="font-family: "verdana" , sans-serif;"></span><br />
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;">This 8 percent number is quite important to resolve the following question I had:</span></span></div>
</blockquote>
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">I wanted to know relationship between the Uncertainty Principle and the Nyquist sampling theorem. The latter states. "We must sample a periodic signal at least twice as often as the highest frequency appearing in the signal", if we want to reproduce that signal. Harry Nyquist created this principle in the context of communication theory, but it reminds me very much of HUP and made me wonder if there isn't some fundamental connection between the two. But Nyquist is on the order of twice, or half, depending on how you slice it, while my HUP photon calculation is on the order of 8 percent, so that tends to disconnect them as fundamental ideas.</span></div>
</blockquote>
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">The Nyquist principle, which is also a great 'spoilsport' in its own right, explains why we get different results depending on how finely we sample the signal due to aliasing. You may be familiar with spatial aliasing as, "the jaggies" on old-style computer displays. Temporal aliasing occurs when we sample at less than the Nyquist rate in time resulting in propellers, wagon-wheels and helicopter rotors rotating backwards or even standing still. This suggests we can use the sampling rate to appear to travel in time by producing an alias that would resemble the actual phenomenon. Dr. Quantum's double-slit experiment video discusses how the presence of an observer causes a degeneration in the results, but I was curious as to whether or not this is a sampling rate, and therefore a Nyquist sampling rate issue. As we can now see, they don't appear to be related.</span></div>
</blockquote>
<span style="font-family: "verdana" , sans-serif;">5/5 <a href="https://www.youtube.com/watch?v=-IfmgyXs7z8">Quantum Tunneling</a></span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This video is entitled, "Is Quantum Tunneling Faster Than Light". It is found when searching for the phrase, "Quantum Tunneling". It is also a PBS-produced piece that is 11 minutes in length. It is in the same series as the video cited in The Observer Effect above. In this video the narrator lays out the fact that during quantum tunneling, a photon can appear to move faster than light when compared to an identical untunneling counterpart. But, this faster than light movement is confined to the uncertainty in force for that position and momentum. This means below the level of uncertainty in position and momentum ANYTHING can be happening, but above that, normal quantum rules apply... if you can call quantum weirdness normal.</span></blockquote>
<br />
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">5/5 <a href="https://www.youtube.com/watch?v=SlwEt5QhAGY">The Butterfly Effect</a></span></span><br />
<blockquote class="tr_bq">
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">The instructor was kind enough to let us view this video, which I had recently seen independently, in class. The most important line in the video is that, "miniscule disturbances neither increase or decrease the frequency of occurrences of various weather events [], the most they may do is modify the sequence in which these events occur." I made a passing reference to this critical, but little known aspect of the Butterfly Effect. This little-know and little-understood point was made clear in just 13 minutes of high quality computer graphic presentation.</span></span></blockquote>
<span style="font-family: "verdana" , sans-serif;">4/5 <a href="https://www.youtube.com/watch?v=hDjvOZHcQOI">External Perturbations</a> </span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">For me the term 'External Perturbations' translates to 'Unwanted Experimental Noise'. In the electronics context there several sources of noise. These are covered in the CalTech video entitled, </span><span style="font-family: "verdana" , sans-serif;">"</span><span style="font-family: "verdana" , sans-serif;">Physics of Shot Noise, Burst Noise, Flicker Noise" in a lecture given by Ali Hajimiri. He did not discuss Johnson-Nyquist thermal noise which was characterized in 1928. The level of mathematical aesthetic was highly refined - something I've come to expect from CalTech content. I would have given this video five stars, but the sound quality was a bit off, and the lecture wasn't from prepared slides which would have shortened it somewhat, as in the PBS presentations. Hajimiri talks about the transit time of electrons and the intermittent arrival of charge being the source of shot noise. This reminds me of the intermittent change in forces that cause Brownian motion that we discussed in class. Wires and resistors do not manifest shot noise, but p-n junctions, capacitors and other gapped devices do. You are literally measuring quanta of charge in gapped devices from tunneling sorts of arguments. Burst or 'popcorn' noise comes from the trapping of electrons and their subsequent release due to crystal imperfections. Next Hajimiri discusses Flicker or 1/f noise that has entire conferences dedicated to its study. At SIGGRAPH in the eighties I attended a seminar on 1/f noise in the context of fractals by Richard Voss, a student of Benoit Mandelbrot, after whom the Mandelbrot fractals are named. It was fun to revisit this topic. It gets the name 1/f because of the log of its power spectral density curve rolls off with linearly with the log of the frequency. It is also called 'pink noise'. Hajimiri also talks about power laws: If we plot event count on the y axis and size of the event on the x axis, there are lots of 'noise' events in nature that follow this rule. For example there are many small magnitude earthquakes for every larger earthquake. So nature let's lots of small noise events happen for every big noise event that happens. Stock market changes also follow a 1/f noise curve. Hajimiri won the Feynman prize for teaching and has over 100 patents. A complete list of his lectures is <a href="https://www.blogger.com/"><span id="goog_594721653"></span>here<span id="goog_594721654"></span></a>.</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmAtSia2eDYOpVUee0p0n7DtvaYBwrRpoYcbizFele-9XaYoIHig7Qwsonm8x9WoG_vZyEQ3HaYmFwImHJmXD2ty2e4dTmzz9xazAQX7wnlmru_fQAE5zQtXIe9Ixuk2OYbJGi/s1600/pinkNoiseGraph.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="575" data-original-width="760" height="483" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmAtSia2eDYOpVUee0p0n7DtvaYBwrRpoYcbizFele-9XaYoIHig7Qwsonm8x9WoG_vZyEQ3HaYmFwImHJmXD2ty2e4dTmzz9xazAQX7wnlmru_fQAE5zQtXIe9Ixuk2OYbJGi/s640/pinkNoiseGraph.png" width="640" /></a></div>
<br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">5/5 <a href="https://www.youtube.com/watch?v=YaDvRdLMkHs">Existentialism</a></span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This video, Existentialism: Crash Course Philosophy #16, was 9 minutes long and was less formal than the previous PBS and CalTech videos. It was a commercial, produced ironically by PBS, for several existential points of view from philosophers beginning with Plato and Aristotle and their notion of 'Essence' defined as the thing that makes a thing what it is. A person's purpose derives from their Essence, as in, born to do a certain thing. This gives rise to the dogma of Essentialism. The narrator then ventures to Nietzsche and Nihilism, which is the dogma that life is ultimately meaningless. Then we get to John-Paul Sartre who returns us to Essentialism. This with a chicken vs. egg approach of Existence vs. Essence and it's our job to figure out what that one thing is, as Billy Crystal hears from Jack Palance in the movie, 'City Slickers'. He then leads us to theistic Existentialism, Kirkegaard and teleology, defined as the world was or was not created for a reason and the Absurd define as the search for Answers in an Answerless world. The Narrator then returns to Sartre and the fact that we are painfully free, so free that we must construct our own moral code in the absence of any standard code to live by since there is no absolute authority. This in turn gives rise to living authentically. The video wraps up by quoting the French philosopher and author Albert Camus who said, "The literal meaning of life is whatever you're doing that keeps you from killing yourself." This is my new favorite quote.</span></blockquote>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><span style="font-family: "verdana" , sans-serif;">5/5 <a href="https://www.youtube.com/watch?v=nfkqCv3Rd_g">The Care Horizon</a></span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This video topic did not respond well to a search, so I used, "The Time Value of Money" instead since that derives directly from the lecture on that topic. I found a 3 minute video narrated by a fast talking economist. It's title was, "Time Value of Money - Macroeconomics 4.3". The narrator opens with a delay discounting question, "Would you rather have $100 now or $200 at some time in the future". He then breaks down exactly what he means by "at some time in the future" and provides interest rate equations for both the future value of the money, and the present value of the money compared to its value in the future. It was quick, mathematical and useful so I'm giving it five stars.</span></blockquote>
<br />
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">Q2) Discuss how each of the "spoilsports of prediction" applies or does not apply to your project topic.</span></span><br />
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span></span> <br />
<blockquote class="tr_bq">
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">My project has two parts, artificial neural networks (ANNs) and transcranial magnetic stimulation of real neural networks (rNNs) which I am simulating using an anatomically accurate model. I will answer each of the seven topics for both the ANNs and RNNs. Since both are neural, the answer will sometimes be the same.</span></span></blockquote>
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span></span> <span style="font-family: "verdana" , sans-serif;">The Observer Effect</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The Observer Effect in ANNs is very interesting. The cost of documenting each of the millions of decisions a deep layer neural net is making is cost prohibitive. This fact leads to, "The Explainability problem in AI" which I have discussed at length in previous assignments. In short it is not currently possible for an ANN to explain itself and be computed in reasonable time.</span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The Observer Effect in rNNs can be seen with performers, actors, thespians and speakers. When they know the people in the audience they have different response than when the audience is anonymous. We also see the Observer Effect in candid camera situations where people become aware they are being recorded and behave differently.</span> </blockquote>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><span style="font-family: "verdana" , sans-serif;">The Heisenberg Uncertainty Principle (HUP)</span><br />
<blockquote class="tr_bq" style="text-align: center;">
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">The manifestation of HUP in ANNs is less pronounced since it is a completely digital system. However ANN's do not give the same answer every time because the style of computing is inherently nondeterministic. This takes some getting used to when working with Machine Learning systems, especially if one has come from a deterministic computing background. For simple models it is possible to seed the random number generators such that they create reproducible results, but in general one can get significantly different answers from run to run with ANNs.</span></div>
</blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The manifestation of HUP in rNNs is a critical issue. In Transcranial Magnetic Stimulation, one cannot excite individual neurons because the certainty in position of the magnetic field is much larger than the neuron itself. Thus only tracts of neurons can be stimulated. In the case of my project I am trying to use moving permanent magnets instead of electromagnetic pulses being emmanated by TMS coils and capacitor discharges. My approach is similarly encumbered by the fact that the magnets are much larger than the neurons and also in motion. </span></blockquote>
<br />
<span style="font-family: "verdana" , sans-serif;">Quantum Tunneling</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The effect of Quantum Tunneling in ANNs is that of being a facilitating principle. The Machine Learning codes are running on computers that actually use tunneling transistors to enable the hardware to work.</span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The effect of Quantum Tunneling in rNNs is by analogy. If a neuron is stimulated often enough, at high enough frequency, with sufficient potential, it fires according to its activation function. Tunneling and neural firing are both threshold phenomena.</span> </blockquote>
<br />
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">The Butterfly Effect</span></span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">I translate the Butterfly Effect in the neural network case to ask whether small changes in neural state can have large differences in output. This is dependent on the architecture, topology and structure of the deep layer neural net, whether artificial or real. There are certainly ANNs whose architecture is such that the Butterfly Effect is in play, and similarly for rNNs operated by real people. But ANNs and rNNs can be such that small inputs do not cause large changes in outputs of the two systems. So in summary this spoilsport is architecture dependent. There are mellow people and mellow ANNs who don't fly off the handle, or change their computation at the slightest provocation. A good counterexample is driverless vehicle ANNs which must respond in real time to small changes in input, if that input feature represents a danger in the environment.</span></blockquote>
<br />
<span style="font-family: "verdana" , sans-serif;">External Perturbations </span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">I translate the </span><span style="font-family: "verdana" , sans-serif;">External Perturbations</span><span style="font-family: "verdana" , sans-serif;"> in the ANN case to ask whether the presence of environmental noise can affect the outcome of the experiment, or in the case of digital electronic case whether noise sources described above affect the outcome. The first comment is that the advent of the digital revolution immediately eliminated the noise that limited the complexity of analog computing systems. Given that the hardware was functioning properly, all decisions were mapped into the Boolean subspace of [0,1] with no intervening continuous maybe's from shot noise, popcorn noise, thermal noise or 1/f noise. Floating point number were then constructed from sequences of Boolean numbers preserving the reproducibility of the outcome. This simple representational decision gave rise to the entire digital revolution. Now we must ask if an earthquake or a power outage or a flood can affect a computer running an artificial neural network. Again this is a threshold phenom. Either the machine is running properly and we can count on reproducible results, or it is not, there is little in-between.</span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">We can ask if External Perturbations affect the rNN case and the answer is certainly and in the analog sense, continuously. People are affected by noise and the TMS equipment can be affected by noise and external perturbations leading to comments like, "It worked better when the rotor was closer to the subject." </span> </blockquote>
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Existentialism</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">It would seem the quest for meaning is one of the motivating factors of the Artificial Intelligence revolution to start with. We design system ANNs modeled after ourselves both to save labor and as a method of self-reflection.</span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">With respect to rNNs we are the neural networks that are searching for meaning and having the existential crisis in the first place! It makes sense that we would want to probe our minds and ask, if, and to what extent, magnetic fields might be used to engage them.</span></blockquote>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><span style="font-family: "verdana" , sans-serif;">The Care Horizon</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The time value of ANNs can be seen in the application of Deep Learning to skin cancer detection. A 1 mm deep skin cancer lesion can be excised with no harm. A 4 mm deep skin cancer can spread cancer through the entire body and kill the patient. The time value of early detection in skin cancer is thus a matter of life and death. Skin cancer and melanoma detection is one of the recent areas where great strides have been made.</span> </blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The time value of rNNs - how would we phrase that. Would we rather have a learned brain now, or be twice as learned in four years. This it seems is what education is all about. Will transcranial magnetic stimulation affect education? That remains to be seen. </span></blockquote>
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;"><br />
<span style="color: red;">Q3) Take a favorite topic (your project topic is a good one). Discuss where it may be in 5 years, 10, 20, 50, 100, 200, 1,000, 10,000, and millions of years.</span></span></span><br />
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span></span> <span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">To make the process of answering this question more deterministic, more plausible and more interesting I used:</span></span><br />
<br />
<ul>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Moore's Law for cost</span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Gilder's Law for Bandwidth</span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Metcalfe's Law for Network Benefit</span></li>
</ul>
<br />
<span style="background-color: white; font-family: "verdana" , sans-serif;">For our purposes here these laws are:</span><br />
<br />
<ul>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Moore's Law states every 1.5 years computers halve in price.</span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><a href="https://www.google.com/search?q=gilders+law&oq=gilders+law&aqs=chrome.0.69i59j0j69i60j0l3.2071j0j7&sourceid=chrome&ie=UTF-8">Gilder's Law</a><span id="goog_1759693745"></span><a href="https://www.blogger.com/"></a><span id="goog_1759693746"></span> states that bandwidth doubles every 0.5 years.</span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><a href="https://www.google.com/search?ei=522kXLK3Cou-tQXJlqK4Dw&q=metcalfe%27s+law&oq=gilders+law&gs_l=psy-ab.1.1.0i71l5.0.0..286750...0.0..0.0.0.......0......gws-wiz.YE6brMzfMzE">Metcalfe's Law</a> states network benefit goes as the square of the users.</span></li>
</ul>
<br />
<span style="background-color: white; font-family: "verdana" , sans-serif;">To populate the spreadsheet for a <a href="https://towardsdatascience.com/how-to-price-an-ai-project-f7270cb630a4">machine learning problem</a> I contrived an example where there was a GPU-month of training time, which is typical. I used figures from <a href="https://aws.amazon.com/aml/pricing/">Amazon Web Services</a><span id="goog_1759693759"></span><a href="https://www.blogger.com/"></a><span id="goog_1759693760"></span> for Training, Memory and Prediction Costs. I assumed the resulting system would receive a usage of 1000 predictions per month. The first observation from the simulation is that the 10,000 and one-million year event horizons are undecidable numerically. I used a current world population of 7.7 billion and an annual population growth of 7 percent. One interesting outcome is that the current hourly cost of training a machine learning system is about the same as that of a domain expert in the same discipline. This may bode poorly for domain experts who make their living consulting in the future!</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiisccvpQmOSKnevo6-2m1Qgk1vO-xbnN9SzyjQS0j2zeqWPHtNzTQxONVGLHN1ukihmEXJ1RYvRip3rIgYjOf-XYTr8h_mvIIkihR6D7ZZHGelNWwBVVxa0nF3wrzf9H9czEHF/s1600/Screen+Shot+2019-04-03+at+3.22.23+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="838" data-original-width="1446" height="369" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiisccvpQmOSKnevo6-2m1Qgk1vO-xbnN9SzyjQS0j2zeqWPHtNzTQxONVGLHN1ukihmEXJ1RYvRip3rIgYjOf-XYTr8h_mvIIkihR6D7ZZHGelNWwBVVxa0nF3wrzf9H9czEHF/s640/Screen+Shot+2019-04-03+at+3.22.23+AM.png" width="640" /></a></div>
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br /></span>
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br /></span>
<br />
<blockquote class="tr_bq">
<span style="background-color: white; font-family: "verdana" , sans-serif;">One thing that these laws tell us is how much faster to expect the training system to run, but because these services are already being vended to us using <i>concurrent</i> platforms at Google, Amazon, Apple and Microsoft there seems to be little value in saying how fast running a query or prediction will be. The real cost is in training the model. If the model has already been trained, the answer is effectively instant. Training can take from hours to weeks depending on the complexity of the ANN and the amount of data in the training set.</span> </blockquote>
<blockquote class="tr_bq">
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br /></span><span style="background-color: white; font-family: "verdana" , sans-serif;">Finally, notice that none of the three laws include saturation to a maximum, or peaking followed by roll-off. To model these effects with effective prognostication would be a time-intensive effort, with limited benefit, since we do not know the saturation or roll-off figures. If we were to attempt a more sophisticated model, we would need to know how many people the earth landmass and oceans can support. For the long term there would have to be an accounting of the sizeable colonies on the Moon, Mars, Mercury, Europa, and Enceladus as well, not to mention those articulated in the Asimov short story.</span></blockquote>
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">
<br />
<span style="color: red;">Q4) Read Asimov's "The Last Question" </span></span></span><span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">Critique and comment.</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;">Asimov called this story, "<a href="https://www.multivax.com/last_question.html">One of my favorites</a>", written in the year of my birth, 1956. In several iterations he goes about predicting large mainframe computers, server farms, networking, wireless communication, and the personal computing revolution. A question is asked at each generation of computer development is, "Can Entropy Be Reversed?". The answer from the automaton is the same at all incarnations but the last one, "</span></span><span style="font-family: "arial" , sans-serif;">THERE IS INSUFFICIENT DATA FOR A MEANINGFUL ANSWER." </span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">I found the story to be entertaining and a fundamental search for meaning. Since the version I listened to was read by Asimov himself it containing interesting verbal idiosyncrasies of his own upbringing that reminded me of the time I've spent with rabbi's and distinguished Jewish people including holocaust survivors. Subtle banter, argumentation and then the sounds of children playing punctuate the story and carry it along.</span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The story constitutes a prophetic piece of the future of computing with an accuracy even Nostradamus would envy. So I began to be interested in what Asimov got wrong in the story, as opposed to the amazement I had at what he got right. This is interesting to me since the story is highly predictive and there is no direct way Asimov could have known how things were going to turn out 62 years ago. </span><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">One of the things he got wrong was the 'A' in the acronym AC which stood for Analog Computing. Computing went digital instead of analog. He spoke of the clicking of relays, which were digital, then observed that those relays were replaced by switching transistors, which hardly existed in 1956, then by subatomic particles. He got the tendency for rapid population growth correct and the tendency for humans to look for new quarters whenever this happened.</span> </blockquote>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">Another thing he may have gotten wrong was interstellar travel being commonplace, since the speed of light still seems to place that firmly out of reach. But who knows? There's still time for wormholes...</span></blockquote>
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">
<br />
<span style="color: red;">Q5) </span></span></span><span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">Write up 250 words for the equivalent amount of work [on your project] explain specifically what you did.</span><br />
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">This week was spent recovering, successfully, from a hardware failure that fried one of the boards that I was using to control the lighting of the rotor. This necessitated a revision the power supplies so that everything in the vTMS unit could be operated at 12-24 VDC. Of particular difficult was rebuilding the LED panels. This was necessary so the unit could operate at low (and safer) DC voltages instead of operating at 170 volts - which during a test blew a fuse and turned off all the lights. A load limiting resistor was installed after computing its optimal value so that the LEDs are not damaged by excessive current. Now the vTMS unit turns at variable speeds and the LED lighting panel behind the rotor brightens and dims according. This meant many hours soldering controls and configuring the enclosures that hold the rotors, the motors, the lighting panels, the variable speed control, the on-off switch, and the direction reversing switch. Extensive modeling of the all the parts was done to enable the clearances to be optimized. It is a tight fit to get everything in the enclosure to the point that final assembly is facilitated by a tongue depressor blade. Once assembled all the parts have adequate clearance. It would not have been possible to use off the shelf enclosures without modeling the components to determine their sizes and positions. The final wiring is the most difficult step and along with final assembly can best be described as building a ship in a bottle. Not shown here are the three controls at the back of the unit. A revised wiring diagram is also being developed. In addition to this work a formula for the gelatin brain has been developed and an experimental schedule to determine the optimum concentrations and electrical properties of the ingredients.</span> </blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQssHYqkgRWT12cngbbC5emMizpicuelh23F-LuhyphenhyphenOBLR0lQo1-FnqIsOdhPPI1em1CGVDG2QIlpX7QdF2cUYZLbsdq2O3qw_WyYD6LTLARW63waIAMM2adEV1T_aSPI2rFInT/s1600/Screen+Shot+2019-04-03+at+2.06.11+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1326" data-original-width="1482" height="357" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQssHYqkgRWT12cngbbC5emMizpicuelh23F-LuhyphenhyphenOBLR0lQo1-FnqIsOdhPPI1em1CGVDG2QIlpX7QdF2cUYZLbsdq2O3qw_WyYD6LTLARW63waIAMM2adEV1T_aSPI2rFInT/s400/Screen+Shot+2019-04-03+at+2.06.11+AM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<ul>
<li><span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">Prepare an outline for your paper (if you are doing a paper). You can use this outline later to help organize your report or other product, presentation, etc. If not doing a report, do something of equivalent effort instead and describe. </span></span></li>
</ul>
<blockquote class="tr_bq">
<span style="font-family: "verdana" , sans-serif;">The outline for my paper, is identical to the outline for my presentation which is presented below. Each slide will generate the verbiage to be included in my final report.</span></blockquote>
<div>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span></div>
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;">Q6) Provide an outline for your presentation:</span></span><br />
<span style="background-color: white;"><span style="color: red; font-family: "verdana" , sans-serif;"><br />
</span></span> <span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Twenty Slides</span></span><br />
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span> <span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><u>Part One: TensorFlow Playground and Basis Functions for Prediction</u></span></span><br />
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span>
<br />
<ul>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 0: A Blazing Fast Introduction to Machine Learning</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 1: The "Discovered Algorithm" Slide</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 2: Hyperparameters</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 3: Explainability</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 4: Basis Functions: Explicit Functions: definition and example</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 5: </span></span><span style="background-color: white; font-family: "verdana" , sans-serif;">Basis Functions:</span><span style="background-color: white; font-family: "verdana" , sans-serif;"> </span><span style="background-color: white; font-family: "verdana" , sans-serif;">Implicit Functions</span><span style="background-color: white; font-family: "verdana" , sans-serif;">: definition and example</span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 6: </span></span><span style="background-color: white; font-family: "verdana" , sans-serif;">Basis Functions: </span><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"> Parametric Functions</span></span><span style="background-color: white; font-family: "verdana" , sans-serif;">: definition and example</span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 7: </span></span><span style="background-color: white; font-family: "verdana" , sans-serif;">Basis Functions:</span><span style="background-color: white; font-family: "verdana" , sans-serif;"> </span><span style="background-color: white; font-family: "verdana" , sans-serif;">Iterated Functions</span><span style="background-color: white; font-family: "verdana" , sans-serif;">: definition and example</span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 8: Basis Functions: Chaotic Functions</span></span><span style="background-color: white; font-family: "verdana" , sans-serif;">: definition and example</span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 9: Do not ask a Cat AI what kind of Dog This Is</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 10: The Existing Tensorflow Playground and a </span></span><span style="font-family: "verdana" , sans-serif;">Measurement</span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif;">Slide 11: Modifications to Tensorflow Playground</span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">Slide 12: The Modified Tensorflow Playground and a Measurement</span></span></span></span></li>
</ul>
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">
</span></span>
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><br />
</span></span> <span style="background-color: white; font-family: "verdana" , sans-serif;"><u>Part Two: Transcranial Magnetic Stimulation with Permanent Magnets</u></span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br /></span>
<br />
<ul>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 0: The Question: Can we perceive a changing magnetic field?</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">
Slide 1: The Follow Up: Can Permanent Magnets Produce Perception?</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 2: Rationale: Why Two Rotors</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 3: The Caltech Video</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 4: A Blazing Fast Introduction to TMS</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 5: My first TMS experience</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 6: My second TMS experience in the clinic.</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 7: Building the vTMS† and vBrain†</span></span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="background-color: white; font-family: "verdana" , sans-serif;">Slide 8: Demonstration of the vTMS†</span></span></li>
</ul>
<span style="background-color: white; font-family: "verdana" , sans-serif;">
</span>
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;">Q7) Grad students only: continue with the book you obtained. Read the next 20 pages. State the book title, author, and page numbers you have read. Discuss the pages, explaining what you agree with, disagree with, and how your views compare with those of other reviewers on Amazon or elsewhere.</span></span></span><br />
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><br /></span></span></span>
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 18px;">Reviewed This Week: </span></span></span></span><br />
<br />
<ul>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 18px;">Chapter 20 - The Teeming Cities of Mars</span></span></span></span></li>
<li><span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;"><span style="color: red;"><span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 18px;">Chapter 21 - Big Ice</span></span></span></span></li>
</ul>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;">I have moved this answer to my ongoing review of the book, "The Human Race to the Future" a </span><a href="https://lvwarren.blogspot.com/2019/01/computing-and-future-9-first.html" style="font-family: verdana, sans-serif;" target="_blank">single curated document that is here</a><span style="color: black; font-family: "verdana" , sans-serif;">.</span></div>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;">This document has become rather large, so I have developed a tool to ease converting it into a form compatible with the blog. There are now 320 review notes for the first 21 chapters.</span></div>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;">Amazon Kindle reader, has some note-taking shortcomings. One is that the notes I make are written out from the Kindle reader without Chapter Headings or page numbers. Kindle instead uses the abstraction of Locations, which are invariant of which mobile or desktop device is being used to read the book. So the Chapter headings have to be preserved manually. Another shortcoming is that the output of the notes I make are in html which is different in style than the blogger html. There are also a number of punctuation errors in the html, entirely due to the crappy Kindle html translator that I correct using the new script. Below is a the snapshot of the Unix bash script that saves some labor, but not all, in making the Book Review changes compatible with Google Blogger. I historically avoid <i>perl</i> like the plague, but I was forced to use it because of a text processing issue called 'non-greedy matching' which I won't bore you with.</span></div>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis41P04gZ7fIcfLifPRur__OaDmc4RFFA3_5cy61eSPTxIEKq04vecRInCcVH3oQDuTtWnQh1Z6lsNmLz8eLeILlm8mVLC4AGaNMI4tDI0uUMrV2LIqW26-jLqJPrFqT33S_qu/s1600/Screen+Shot+2019-04-04+at+2.03.53+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="628" data-original-width="1236" height="325" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis41P04gZ7fIcfLifPRur__OaDmc4RFFA3_5cy61eSPTxIEKq04vecRInCcVH3oQDuTtWnQh1Z6lsNmLz8eLeILlm8mVLC4AGaNMI4tDI0uUMrV2LIqW26-jLqJPrFqT33S_qu/s640/Screen+Shot+2019-04-04+at+2.03.53+AM.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyq1X9l15FM2RSJKHGMTdX95pShTWq4vXNsEyuqDvIRHPUDbsoEyTgao4Uv6Mhpn9ca1c0CuOfQXdIwCDtSvs2N5tc9DKqo5QETcv_PJYYs2EotaPqqeU21rRMDYs4VqQpEbXb/s1600/Screen+Shot+2019-04-04+at+1.24.37+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="122" data-original-width="446" height="87" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyq1X9l15FM2RSJKHGMTdX95pShTWq4vXNsEyuqDvIRHPUDbsoEyTgao4Uv6Mhpn9ca1c0CuOfQXdIwCDtSvs2N5tc9DKqo5QETcv_PJYYs2EotaPqqeU21rRMDYs4VqQpEbXb/s320/Screen+Shot+2019-04-04+at+1.24.37+AM.png" width="320" /></a></div>
<div>
<span style="color: black; font-family: "verdana" , sans-serif;"><br /></span></div>
Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0tag:blogger.com,1999:blog-28407747.post-61491624715903088832019-03-28T03:36:00.000-05:002019-04-10T17:40:45.369-05:00Computing and the Future HW 8 - TRIZ to STRIZ Method<span style="background-color: white; font-family: "verdana" , sans-serif;"><u>Introduction</u></span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; font-family: "verdana" , sans-serif;">Before I answer the homework questions I want to briefly comment on two topics that came up in our previous class:</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; font-family: "verdana" , sans-serif;"><u>Boeing 737 Max Catastrophe</u></span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;">The first topic was the Boeing 737 Max catastrophe whose status has largely been addressed by this <a href="https://goo.gl/6NYcYM">Seattle Times article</a>. Our in-class analysis using the TRIZ method was very interesting also. </span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; font-family: "verdana" , sans-serif;">My comment is this: When I first started thinking about the causes of the two accidents, first of the low-cost Indonesian Lion Air, then the Ethiopian event, I wondered if there was something about the location, the climate, or the ENVIRONMENT that the aircraft were being operated in that could have led to the problem. One example where environment is important is in the case of dissimilar metal corrosion. When two metals of different electrochemical oxidation reduction potential are used in a design, galvanic corrosion can lead to parts failure. A second example for turbomachinery, especially helicopters is sand and grit in the environment. I kept thinking over and over, "What makes the environment of these two crashes different that the typical US and Western European environments?" </span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; font-family: "verdana" , sans-serif;">Well it turns out that Boeing CHARGED EXTRA for an additional attitude indicator, a switch and a panel light that enabled pilots to easily turn off the MCAS system when it started ratcheting them into an uncontrollable dive as described in the Seattle Times article.</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; font-family: "verdana" , sans-serif;">So the difference was environmental all right, but it was the FINANCIAL ENVIRONMENT in which the aircraft were being operated that was different. I found this realization absolutely stunning - and sickening.</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; font-family: "verdana" , sans-serif;"><u>Speaking of Financials</u></span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;">The second comment I wanted to make was on the </span><span style="background-color: white; font-family: "verdana" , sans-serif;">advent of PredictIt being a useable tool for predicting election outcomes. Prediction Markets are financial instruments that have a 'put your money where your mouth is' validation mechanism. This has gotten me to thinking about finances and cryptocurrencies. This week, Jack Dorsey, CEO of Square took an action that catalysed my thinking on this. The headline is: 'Shorting Banks' and here is my post:</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR25QYFLUk_-ausz6Z58iYZsKuts34bYij0hMoojtucFReZI1-pSX3GldHwDSuenDsB52MHtVT4-_6DusginfZZhqz1Z1IBSwNBhbmzVrEl6t5_XXf1oTmYLlsiIqrCkUkXL7o/s1600/Screen+Shot+2019-03-22+at+3.26.32+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1558" data-original-width="1092" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR25QYFLUk_-ausz6Z58iYZsKuts34bYij0hMoojtucFReZI1-pSX3GldHwDSuenDsB52MHtVT4-_6DusginfZZhqz1Z1IBSwNBhbmzVrEl6t5_XXf1oTmYLlsiIqrCkUkXL7o/s640/Screen+Shot+2019-03-22+at+3.26.32+AM.png" width="448" /></a></div>
<span style="background-color: white; font-family: "verdana" , sans-serif;">In reality this post may be over-optimistic, but sovereign personal banking may become a long term trend.</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Now on with the homework!</span><br />
<span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"><br />
</span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">1a. TRIZ contains a 39x39 table for identifying things to improve about a particular technology. The 39 rows enumerate conflicts that an improvement tends to create. The 39 columns, which have the same labels as the rows, suggest solution strategies for each improvement/conflict pair.<br />
</span><br />
<ul style="line-height: 1.4; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">Propose three improvements (table rows) to a technology relevant to your project topic.</span></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">Identify one or more conflicts (table columns) that each improvement will tend to create.</span></li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;"><span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">Based on the cells of the table, suggest solution(s) to each improvement and conflict.</span></li>
</ul>
<div>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">The technology I am going to suggest an improvement to is TRIZ itself. I am going to use the 40 TRIZ Principles to overcome limitations in the method. I will make three such improvements:</span></div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Streamlining the Feature Vector by reducing it from length 39 to 20.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Streamlining the Principle Vector, </span><span style="font-family: "verdana" , sans-serif;">reducing it</span><span style="font-family: "verdana" , sans-serif;"> from length 40 to 23.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Streamlining</span><span style="font-family: "verdana" , sans-serif;"> the TRIZ Matrix, reducing it from size 1521 to 400.</span></li>
</ul>
<span style="font-family: "verdana" , sans-serif;">Then I will apply the improved technology which I called STRIZ for 'Streamlined TRIZ' to a technology, Machine Learning, which is relevant to my project.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">In a way I am using TRIZ to improve TRIZ which is recursive. For the sake of completeness I will cite three worsening features of the current TRIZ, and then with the goal of improving them, find applicable cells in the TRIZ matrix. These three cases are <i>slightly</i> contrived in that I actually improved the method by using the 40 TRIZ principles rather using than the specific trade-offs enumerated in the TRIZ matrix, but for the sake of using TRIZ to improve TRIZ, that is, for the sake of a recursive view of the problem and also for the sake of fulfilling the assignment requirements I will enumerate the three cases where the matrix could have been used. You can skip these three cases if you want to cut to the case.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">Case 1:</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">Worsening Feature 36:</span></div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Feature 36 of TRIZ is 'Device Complexity'.<br />TRIZ is complex.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">Improving Feature 33:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Feature 33 of TRIZ is 'Ease of Operation'. <br />We wish to ease TRIZ operation.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">Solving Principle 17:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Principle 17 'Another Dimension'</span><span style="font-family: "verdana" , sans-serif;">We will reduce the dimensionality of<br />TRIZ Features, Principles and Matrix</span></li>
</ul>
</div>
<div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br class="Apple-interchange-newline" />Case 2:</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">Worsening Feature 25:</span></div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Feature 25 of TRIZ is 'Loss of Time'.<br />TRIZ complexity makes it time intensive.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">Improving Feature 33:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Feature 33 of TRIZ is 'Ease of Operation'.<br />We wish to speed, and therefore ease TRIZ operation.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">Solving Principles 28, 10, 34:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Principle 28 'Substitution'</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Principle 10 'Preliminary Action'</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Principle 34 'Discarding and Recovering'<br />In these cases, logical substitution (as opposed to mechanical)<br />is used to simplify TRIZ Features, Principles and Matrix.<br />This simplifications constitute a 'Preliminary Action' done<br />before the method is employed.<br />In the process we discard one version of the method and<br />recover another version of the method.</span></li>
</ul>
<div>
<div>
<span style="font-family: "verdana" , sans-serif;">Case 3:</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">Worsening Feature 35:</span></div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Feature 36 of TRIZ is 'Versatility/Adaptability'.<br />TRIZ complexity reduces its versatility.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">Improving Feature 38:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Feature 38 of TRIZ is 'Extent of Automation'.<br />We wish to automate TRIZ more fully.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">Solving Principle 1 and 35:</span></div>
</div>
<div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Principle 1 'Segmentation'</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Principle 35 'Parameter Changes'</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Segmentation, Merging and Parameter Changes are the Core of<br />the TRIZ to STRIZ Transformation</span></li>
</ul>
</div>
</div>
</div>
</div>
<div>
<span style="color: red; font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><u>TRIZ to STRIZ </u></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">I want to make a few comments on the TRIZ method and suggest some simplifying transformations that are both semantic and mathematical in nature. I called the simplified TRIZ method STRIZ where the leading 'S' character implies both simplification and streamlining.</span></div>
<div>
<br /></div>
<div>
<span style="font-family: "verdana" , sans-serif;">The fact that the rows and columns have the same labels indicates that what is an improvement in one context can be a conflict or liability in another. In software engineering, programmers commonly quip that, "That's not a bug, it's a FEATURE", implying that a bug (worsening feature) in one context can be an improving Feature in another. </span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">In common engineering/design parlance the Feature space enumerates "trade-offs". Genrich Altshuller called them "<a href="https://en.wikipedia.org/wiki/TRIZ">technical contradictions</a>". <i>I admire Altshuller for attempting to make the invention process more deterministic.</i> Said again, inspecting this set of phrases reveals design 'virtues' in one context are 'vices' in another. 'Features' is a very significant term in the Machine Learning - the topic I have chosen to apply TRIZ to. More on that after we streamline the method.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><br />
<span style="font-family: "verdana" , sans-serif;"><u>TRIZ Feature Vector Transformational Rules --> 39 Labels to 20 Labels</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Here are the original 39 Feature Labels that TRIZ uses:<br />
</span><br />
<br />
<pre>1 Weight of moving object
2 Weight of stationary
3 Length of moving object
4 Length of stationary
5 Area of moving object
6 Area of stationary
7 Volume of moving object
8 Volume of stationary
9 Speed
10 Force
11 Stress or pressure
12 Shape
13 Stability of the object
14 Strength
15 Durability of moving obj.
16 Durability of non moving obj.
17 Temperature
18 Illumination intensity
19 Use of energy by moving
20 Use of energy by stationary
21 Power
22 Loss of Energy
23 Loss of substance
24 Loss of Information
25 Loss of Time
26 Quantity of substance/the
27 Reliability
28 Measurement accuracy
29 Manufacturing precision
30 Object-affected harmful
31 Object-generated harmful
32 Ease of manufacture
33 Ease of operation
34 Ease of repair
35 Adaptability or versatility
36 Device complexity
37 Difficulty of detecting
38 Extent of automation
39 Productivity
</pre>
<span style="font-family: "verdana" , sans-serif;">On disciplined examination the 39 labels can be transformed to 20. This gives us one to bind to each finger and toe! Here are the principles I used for the transformation:</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">a) Since these features can apply to objects (nouny things) OR </span><span style="font-family: "verdana" , sans-serif;">processes (verby things)</span><span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;">we can use the following substitution chain: Wherever we see the term 'Object' we substitute the term 'Object or Process'. Wherever we see the term 'Object of Process' we can substitute the term 'Entity'. Wherever we see the term 'Entity' we can delete it, with the understanding that it is there. This is similar to the idea used in tensor notation where repeated indices indicate summation, except we are using substitution and deletion. This removes superfluous uses of the word 'object/, which is explicit in 7 of the features and implied in the remaining 32. This transformation is more tersely stated:</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div style="text-align: center;">
<span style="font-family: "verdana" , sans-serif;">Object --> Object or Process --> Entity --> (null)</span></div>
<div style="text-align: center;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">b) We can eliminate the distinction as to whether an object is moving or stationary for brevity. If it is moving at a velocity of zero it is stationary. This fact when combined with the next transformation cuts the first eight Features to four.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">c) We can include changes in the Feature along with the Feature. Mathematically we are lumping the Feature along with its derivatives in the same group.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">d) We can denote the Features of Force as being 'ON or BY' and Harm being 'TO or BY'. This collapses four Features to two.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">e) We can merge concepts that have the same dimensions or units. For example stress, pressure and strength all have the same units of force divided by area. Invariably when we Stress an object or process we want to know if it has the Strength to survive it. So this merge makes physical sense via dimensional analysis.</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">f) Accuracy and Precision can be lumped, provided they are combined with the additional figures of merit, 'Bias' and 'Spread'.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJR3cMps4tESf6QuD3XdFJ64VwXPUKDZPzPSe7C8BeemIiuMyabJ5MOvO7tgMrsrep-UGhEXaCB5ICpzROTpoL15IR5GpCc93AwAgUaEnEPJ9RggMJ9tqt82O2uqPGHl7SoAW7/s1600/Accuracy+vs+Precision.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJR3cMps4tESf6QuD3XdFJ64VwXPUKDZPzPSe7C8BeemIiuMyabJ5MOvO7tgMrsrep-UGhEXaCB5ICpzROTpoL15IR5GpCc93AwAgUaEnEPJ9RggMJ9tqt82O2uqPGHl7SoAW7/s400/Accuracy+vs+Precision.jpg" width="400" /></a></div>
<div>
<span style="font-family: "verdana" , sans-serif;">After applying these transformations we obtain the streamlined list of twenty features:</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<pre>A) 1&2&23&26) Mass and Changes in Mass
B) 3-8,41,42) Length, Area, Volume and Changes in Same
C) 40, 9,40) Position, Velocity, Acceleration
D) 10) Force (on or by)
E) 11&14) Stress or Strength
F) 12) Shape
G) 13) Stability
H) 15&16) Durability
I) 17) Temperature
J) 18-22) Energy Consumption/Production/Changes
K) 24&38) Information Change
L) 25) Time Loss
M) 27) Reliability
N) 28&29,43) Accuracy, Precision, Bias, Spread
O) 30&31) Harm (to or by)
P) 32) Manufacturability
Q) 33-35) Operability, Maintainability, Adaptability
R) 36) Complexity
S) 37) Detection Difficulty
T) 39) Productivity
</pre>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;">When we merge table entries for simplification we simply merge their corresponding table entries. The transformation I have proposed reduces 1521 possible entries to 400. We also note that the table is symmetric, it is identical to its transpose. We further note that the principal diagonal is always empty, meaning the original table had a maximum of 1482 cells containing various problem-solving entries and the transformed table had 380 cells. This is a 3.9 fold reduction in complexity of the TRIZ matrix. Completing the transformation according to the rules listed above we have:</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;"><u>Streamlined TRIZ Features - Twenty STRIZ Features</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><u><br />
</u></span> <br />
<pre>1 Mass
2 Dimensions
3 Positions
4 Forces
5 Stress & Strength
6 Shape
7 Stability
8 Durability
9 Temperature
10 Energy
11 Information
12 Time
13 Reliability
14 Accuracy, Precision
15 Harm
16 Manufacturability
17 Operability
18 Complexity
19 Detectability
20 Productivity
</pre>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><br />
<span style="font-family: "verdana" , sans-serif;"><u>TRIZ Principle Vector Transformation</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">For brevity I would prefer to stop here, but revision of the TRIZ Feature Vector is only the first part of a three-part streamlining process. For each entry in the Cartesian Product of the TRIZ Feature Vector there are one or more TRIZ Principles that can be invoked to solve the contradiction. There are <a href="http://www.triz40.com/aff_Principles_TRIZ.php">40 TRIZ Principles</a>. Let us discover to what degree, they can be transformed and compacted. </span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Definitions: A <i>pronym</i> is the original word, an <i>antonym</i> has the opposite meaning of the <i>pronym. </i>This definition is necessary because there is no single-word antonym of the actual word antonym. If this befuddles you as it did me, you can pretend I didn't say it.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Our transformational rules are as follows:</span><br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">When not present add antonym principle to pronym principle.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Combine pronym and antonym versions of each principle to form a complementary pair of principles.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">When antonym and pronyms are already present combine them as complementary pairs.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Purge or eliminate redundant Principles.</span></li>
</ul>
<br />
<span style="font-family: "verdana" , sans-serif;">As before we enumerate the 40 Principles and prepare them.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;"><u>The 40 Principles of TRIZ Annotated</u></span><br />
<br />
<pre>
1 Segmentation
2 Taking Out / Separation / Removal
3 Local Quality / Locality / Separation of Concerns
4 Asymmetry
5 Merging / Opposite of Segmentation
6 Universality / Combination of Concerns
7 Nested Doll / Telescoping
8 Anti-Weight / Add lift
9 Preliminary Anti-Action
10 Preliminary Action / Like Preprocessing / Suggests Postprocessing
11 Beforehand cushioning / Backup
12 Equipotentiality / Counterweight
13 The Other Way Round / Invert Action
14 Spheroidality / Curvature Instead of Linearity
15 Dynamics / Allow Object or Process to Move
16 Partial or Excessive Actions / Slightly Less or Slightly More of Same
17 Another Dimension / Add a Dimension
18 Mechanical Vibration
19 Periodic Action
20 Continuity of Action / Operate continuously
21 Skipping / Operate Intermittently
22 Blessing in Disguise / Eliminate Harm by Amplifying or Combining
23 Feedback / Introduce or Modify Amount
24 Intermediary / Use an intermediary object or process
25 Self-service / Make an object or process serve or perpetuate itself
26 Copying / Make lots of copies or simulate
27 Cheap short-life objects / Disposability / Use Disposables
28 Mechanics substitution / Replace mechanical method with sensor method
29 Pneumatics and Hydraulics / Use gas and liquids instead of solid parts
30 Flexible Shells and Thin Films / Membranes instead of bricks
31 Porous materials / Introduce Porosity
32 Color changes / Change the color or transparency of an object
33 Homogeneity / Make objects out of the same material
34 Discarding and Recovering
35 Param. Change / State Change, Conc., Temperature, Flexibility, etc
36 Phase Transitions
37 Thermal Expansion / Suggests Thermal Contraction
38 Strong Oxidants / Strong Reactivity / Conc. Variation / Param. Change
39 Inert Atmosphere / Weak Reactivity / Conc. Variation / Param. Change
40 Composite materials / Antonym of 33 Homogeneity
</pre>
<br />
<span style="font-family: "verdana" , sans-serif;">We note:</span><br />
<span style="font-family: "verdana" , sans-serif;">TRIZ 34 is already a complementary pair.</span><br />
<span style="font-family: "verdana" , sans-serif;">TRIZ 35 subsumes 36 as variants of parameter change/state change idea</span><br />
<span style="font-family: "verdana" , sans-serif;">TRIZ 35 and 38 are variants of the same idea</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;"><u>TRIZ to STRIZ Transformation</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><u><br />
</u></span> <br />
<pre>A) 1&2&5) Segmentation & Separation/Merging & Combining
B) 3&6) Separation of Concerns / Combination of Concerns
C) 4) Asymmetry / Symmetry
D) 7) Nested Doll / Telescoping
E) 8) Add or Subtract Weight or Lift
F) 9&10) Preprocess/Postprocess / Preliminary Anti-Action or Action
G) 11) Beforehand cushioning / Backup / Protect
H) 12) Equipotentiality / Gradient / Counterweight / Dead weight
I) 13) The Other Way Round / Invert Action or Order of Process
J) 14&30) Spheroidality / Curvature / Flexible Shells / Thin Films
K) 15) Dynamics / Allow Object or Process to Move or Enforce Stationarity
L) 16) Partial or Excessive Actions / Slightly Less or Slightly More
M) 17) Embed or Project / Add or Subtract a Dimension
N) 18&19) Mechanical Vibration / Periodic Action
O) 20&21) Operate continuously / Operate Intermittently
P) 22) Blessing in Disguise / Eliminate Harm by Amplifying or Combining
Q) 23) Feedback / Introduce or Modify Amount
R) 24) Intermediary / Use an intermediary object or process
S) 25&26) Self-perpetuating / Copy, serve or perpetuate itself
T) 27&34) Increase/Decrease Lifetime
Make Disposable or Reusable
Discard or Recover
U) 28) Mechanics substitution / Replace mechanical method with sensor method
V) 29&31&32&
35&36-38&
39) Parameter Change / State, Color, Transparency, Concentration,
Temperature, Porosity, Reactivity, Flexibility,
Thermal Expansion, Contraction, etc,
of Object, Process, or Environment.
W) 33&40) Homogeneity / Composite / Make out of the same or diff. material
</pre>
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;"><u>The 23 Streamlined TRIZ Principles</u></span></div>
<br />
<span style="font-family: "verdana" , sans-serif;">Most of these 23 principles can be suffixed with the phrase,</span><br />
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;">'object, action, or process' therefore it is eliminated as superfluous. Consolidating these principles for compactness we obtain:</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <br />
<pre>
1 Segmentation or Combination
2 Separation or Combination of Concerns
3 Asymmetry or Symmetry
4 Recursive Packing or Unpacking
5 Add or Subtract Weight or Lift
6 Preprocess or Postprocess Action or Bias
7 Cushion / Backup / Protect
8 Add or Subtract Gradient
9 Invert Order of Process
10 Add or Subtract Curvature or Thickness
11 Constrain or Unconstrain Movement
12 Titrate Actions or Processes
13 Add or Subtract a Dimension
14 Add or Subtract Periodic Action
15 Operate Continuously or Intermittently
16 Reduce Harm by Amplifying or Combining
17 Add or Subtract Feedback
18 Add or Subtract Intermediate
19 Add or Subtract Duplication
20 Increase or Decrease Lifetime
21 Method Substitution
22 Parameter Change
23 Homogeneity or Composite
</pre>
<span style="font-family: "verdana" , sans-serif;"><br />
</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;"><u>TRIZ Matrix Transformation into STRIZ Matrix</u></span><br />
<span style="font-family: "verdana" , sans-serif;"></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">Again for brevity I would prefer to stop here, but if one more step is taken, the entire TRIZ method is simplified. We are done with the conceptually hard part, all that is left is the horrific bookkeeping transformation necessary to transform the original TRIZ Matrix to the streamlined STRIZ Matrix. To do this we need some mapping vectors that map TRIZ Features into STRIZ Features, TRIZ Principles into STRIZ Principles. Then finally we can construct the STRIZ Matrix.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">The original TRIZ Matrix had 1521 cells generated by the Cartesian product of the TRIZ Feature Vector. The TRIZ Matrix contained 4202 Principle references.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Construction of the STRIZ Matrix will be done in three steps:</span><br />
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Lumping the TRIZ Principle References into the small STRIZ Matrix</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Translating the TRIZ Principle References to STRIZ Principle References</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Eliminating duplicate STRIZ Principle References</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Sorting the STRIZ Principles and Hyphenating Continuous Ranges</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif;">The resulting STRIZ Matrix has 400 cells generated by the Cartesian product of the STRIZ Feature Vector. The STRIZ Matrix contains 2347 Individual Principle References which when hyphenated into contiguous references is transformed to 1559 Principle References. This reduces the size of the TRIX matrix by nearly two thirds. Here is the STRIZ Matrix:</span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZ2JSv8XMERXfM_Pv-0_DwbGyrPmiXcEHIQGje8mWOuJzfVQDsDP3oAWBJm5OzWQpsqQrJwAXXKFO9uboiZyKWvwB3lTZWmUHP09ZFVTTNKyUZ_IQR3yGgY_vG2K06GbvcZvW/s1600/Screen+Shot+2019-03-28+at+3.22.15+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1376" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZ2JSv8XMERXfM_Pv-0_DwbGyrPmiXcEHIQGje8mWOuJzfVQDsDP3oAWBJm5OzWQpsqQrJwAXXKFO9uboiZyKWvwB3lTZWmUHP09ZFVTTNKyUZ_IQR3yGgY_vG2K06GbvcZvW/s1600/Screen+Shot+2019-03-28+at+3.22.15+AM.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr8WmONxpWIg-8QigQi74gy7iN-lwr1BE6VXMvsgC7houLja2drePs92HzPI8kD-jDXfLDkPs3XNAcvPK2K03wgdhcp3UNW1uJVXrgoyBCCtrWHabsu2UHtc0ljpDQe9CtN7nm/s1600/Screen+Shot+2019-03-28+at+3.22.30+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1277" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr8WmONxpWIg-8QigQi74gy7iN-lwr1BE6VXMvsgC7houLja2drePs92HzPI8kD-jDXfLDkPs3XNAcvPK2K03wgdhcp3UNW1uJVXrgoyBCCtrWHabsu2UHtc0ljpDQe9CtN7nm/s1600/Screen+Shot+2019-03-28+at+3.22.30+AM.png" /></a></div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; font-family: "verdana" , sans-serif;"><u>Three Proposed Improvements in Machine Learning</u></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">Besides using TRIZ to improve itself, I will discuss briefly a technology relevant to my project in Machine Learning. There are a couple of levels of abstraction that are very important to distinguish. We could improve Machine Learning in General, (MLG) or we could improve Machine Learning in Specific, that is a specific application (MLS).</span><span style="font-family: "verdana" , sans-serif;"></span><br />
<span style="font-family: "verdana" , sans-serif;"><u><i><br />
</i></u></span> <span style="font-family: "verdana" , sans-serif;">If we were to improve the MLG case, we might:</span><br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;"><b>make development faster</b></span></li>
<li><span style="font-family: "verdana" , sans-serif;">make it function with less loss of information,</span></li>
<li><span style="font-family: "verdana" , sans-serif;">improve its accuracy and precision while reducing its bias</span></li>
<li><span style="font-family: "verdana" , sans-serif;">make it easier to create, use, repair or adapt </span></li>
<li><span style="font-family: "verdana" , sans-serif;">reduce its complexity</span></li>
<li><span style="font-family: "verdana" , sans-serif;">improve productivity with faster, better and cheaper neurons </span></li>
<li><span style="font-family: "verdana" , sans-serif;"><b>reduce the harm</b> of unexplainable algorithms</span></li>
<li><span style="font-family: "verdana" , sans-serif;">ease development of ML applications</span></li>
</ul>
<br />
<span style="font-family: "verdana" , sans-serif;">Harm can be done by employing algorithms whose chain of reasoning are not explainable, as in firing someone using a machine-learning program that pares extra employees off a roster. One area that really needs some attention is the mapping of problems to algorithm in a rapid and efficient way, to wit, ease of development of ML apps.</span><br />
<span style="font-family: "verdana" , sans-serif;"><u><br />
</u></span> <span style="font-family: "verdana" , sans-serif;">If we were to improve the MLS case, we might:</span><br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;"><b>make execution faster</b></span></li>
<li><span style="font-family: "verdana" , sans-serif;">change the topology of the neural network itself, that is, we might change the number of neurons and the way in which they are interconnected. </span></li>
<li><span style="font-family: "verdana" , sans-serif;">change the hyperparameters that determine how long the training session will take. These hyperparameters include the learning rate, the neuron type, the basis functions used to model certain features, the number of training sessions or epochs and so forth.</span> </li>
</ul>
<br />
<span style="font-family: "verdana" , sans-serif;">Since we are asked to pick three proposed improvements, let's choose one from the MLG case and two from the MLS case.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;"><u>TRIZ for the MLG Case: Faster Development and Harm Reduction</u></span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"></span><br />
<span style="font-family: "verdana" , sans-serif;"></span><span style="font-family: "verdana" , sans-serif;">One of the things that makes <b>development faster</b>, as in a Classifier described below, is to train and test, that is train and use, similar neural nets for each output parameter we want to report . This means taking an ensemble of inputs and producing a single value label as output. Said in ML parlance: This means training a set of identical input features to output a single label in a classified learning situation. The only thing that is different is the type of label, everything else is the same. For this we apply the Streamlined TRIZ Principle 1 of segmentation and duplication. We segment by output parameter, and duplicate the networks, specializing each of them to output a specific parameter. This creates the disadvantage that we have all these copies to maintain. We go to the TRIZ table and note that we can consolidate those portions of the network that are the same (Streamlined Principle 1) and segment those portions of the network that are different. (Streamlined Principle 1)</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">For the MLG Case we choose to <b>reduce the harm</b> of unexplainable algorithms.</span><br />
<span style="font-family: "verdana" , sans-serif;">Because of the complexity of deep layer neural networks, there rapidly reaches a point where neural nets can effectively classify their inputs, but they cannot tell you how they have done so. This is Streamlined TRIZ Feature 17, COMPLEXITY. This problem is solved using Streamlined TRIZ Principle 17, FEEDBACK in the Tensorflow Playground by showing the input features that each neuron in each layer is processing using visualization of what each neuron in each layer is processing. I will point this out in my class project demonstration.</span><br />
<br />
<span style="font-family: "verdana" , sans-serif;"><u>TRIZ for the MLS Case: Faster Execution</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;"><u>MLS Faster Execution</u></span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">To speed execution MLS Case we will choose the hyperparameter optimization problem. For this situation we will invoke the Streamlined TRIZ Principle (STP) 19 of copying, self-duplication and self-perpetuation, as well as STP 12 parameter change, and titration. We will make identical versions of the network and run them with different values of learning rate, different numbers of training sessions and different train/test splits. The train/test split is how much of the original data is held separate from the training cases for evaluating or 'testing' how well the neural network functions.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div>
<span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="color: red;">1b. Pick a certain technology (existing or future) relevant to your project topic or any other topic. </span></span></div>
<span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;">Suggest how an implementation of it could "branch out" and do something else. For example, pencils are a technology that "branched out" to also have erasers, storage bins for extra lead, clips for attaching it to a pocket, and so on. []</span><br />
<span style="font-family: "verdana" , sans-serif;"><br />
</span> <span style="font-family: "verdana" , sans-serif;">The branch-out of Machine Learning is exemplified in a strawman proposal I just wrote for an '<a href="https://goo.gl/zzVB9r">Aircraft Classifier</a>'. This tool takes as its input 'features', aircraft geometry, mass properties, power and outputs performance such as top speed, rate of climb and service ceiling. This is a supervised learning problem in that the outputs it gives are labels that correspond to performance characteristics. Each performance type like range, top speed, rate of climb, service ceiling and so on will require their own neural network. The Classifier can then create interpolated designs that are more optimal than the existing aircraft it is trained on. Combining two such aircraft in a dogfight with a GAN, a Generative Adversarial Network, would allow a more optimal aircraft to be designed.</span> <span style="font-family: "verdana" , sans-serif;"> </span> <span style="font-family: "verdana" , sans-serif;">What I'm really interested in is the applied optimal design, the almost real-time design evolution, that AI and ML can facilitate. This constitutes a major BRANCHING OUT that could affect the design of every industrial commodity.</span><br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="color: red;">2. For your project, write up 399 words and post to your blog, or do the equivalent in effort on something other than writing and explain briefly.</span></span><br />
<span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"><span style="color: black;"><u><br />
</u></span></span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"><span style="color: black;"><u>vTMS™ Progress</u></span></span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"><span style="color: black;"> </span></span> <span style="background-color: white; font-family: "verdana" , sans-serif;">I have collected most, if not all of the parts for my vTMS™ device and vBrain™ simulator. The vTMS™ work is of three kinds:</span> <br />
<ol>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Mechanical Engineering</span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Electrical Engineering</span></li>
<li><span style="background-color: white; font-family: "verdana" , sans-serif;">Component Acceptance Testing</span></li>
</ol>
<span style="background-color: white; font-family: "verdana" , sans-serif;"><u>Mechanical Engineering</u></span> <span style="background-color: white; font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; font-family: "verdana" , sans-serif;">Even with this prototype device the tolerances are extremely close - in some cases less than a millimeter makes a difference. For two of the difficult parts, first the rotor, and then the the lamp holder, I utilized 3D printing via ShapeWays. The costs are very reasonable, only eight dollars for the LED holder shown below. The tolerances here are around a hundredth of a millimeter. The lamp holder looks simple enough, but has to allow for cooling of the LED panel, clearance of the wires from the rotor and clamping with adequate structural strength.</span> <span style="background-color: white; font-family: "verdana" , sans-serif;"> </span> <br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqMhZ861iCkbw67gbiwKBRkMgx1QDNguzTLeVwrWmWJajKc0PFT72E0L3x9P3wVD3b7XAkjwrFa9z38qdoCMrn3UiFlq2N32jyiGinnTyLW3D7uFDd5ziOVdB0ZV3oMubC0_tE/s1600/IMG_7273.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqMhZ861iCkbw67gbiwKBRkMgx1QDNguzTLeVwrWmWJajKc0PFT72E0L3x9P3wVD3b7XAkjwrFa9z38qdoCMrn3UiFlq2N32jyiGinnTyLW3D7uFDd5ziOVdB0ZV3oMubC0_tE/s640/IMG_7273.JPG" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="background-color: white; font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; font-family: "verdana" , sans-serif;">I have used Rhino</span><span style="background-color: white; font-family: "verdana" , sans-serif;">™, a 3D modeler, for the design work. Here is a typical design image:</span> <span style="background-color: white; font-family: "verdana" , sans-serif;"> </span> <br />
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeKXQkRV_98lxGoipbs8WJV-FX8mNpJMv8ph4WnEOXzPP2KMZJnj245hYLDTk3Nhgv2rTpINx3nc8npTCLNLGmrtOzQKrVQa08UY_luMb-k5xblbSIM0q5-RBHCJ05Ejl4lGi/s1600/Screen+Shot+2019-03-18+at+11.12.54+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1185" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeKXQkRV_98lxGoipbs8WJV-FX8mNpJMv8ph4WnEOXzPP2KMZJnj245hYLDTk3Nhgv2rTpINx3nc8npTCLNLGmrtOzQKrVQa08UY_luMb-k5xblbSIM0q5-RBHCJ05Ejl4lGi/s640/Screen+Shot+2019-03-18+at+11.12.54+PM.png" width="473" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;">Which after some work, leads to a functioning assembly. Using a modeling program saves enormous amounts of time and money. This project would simply not be possible in this time frame without it.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGll6Rlh5rcZMv5B00uMBVvlNAsiFVN-WpR2zZXVKtQ3WeXF0eOT8NPRsGAVsOAgMptCrll1eRInqI0tjxY3IfS6IoistIZhjcUQRJfoHA3U8s5XsvcdC705z67Z3qtEF3GlSd/s1600/IMG_7286.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="976" data-original-width="968" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGll6Rlh5rcZMv5B00uMBVvlNAsiFVN-WpR2zZXVKtQ3WeXF0eOT8NPRsGAVsOAgMptCrll1eRInqI0tjxY3IfS6IoistIZhjcUQRJfoHA3U8s5XsvcdC705z67Z3qtEF3GlSd/s320/IMG_7286.png" width="317" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white;"><span style="font-family: "verdana" , sans-serif;">In the process I have found that is is possible to 'supercharge' the permanent magnet (PM) assemblies by stacking them four deep on the rotor. Since PM's are weaker than the magnetic field generated by a traditional inductive TMS pulse I am literally 'stacking the deck' in favor of having an effect. When two rotor faces stick together, it takes many pounds of force to separate them. When the two rotors turn in proximity to each other they induce significant movement in each other. So some technique will be necessary in use to keep them from getting too close to the simulated brain. My rationale for using two rotors is that it is the interaction of the two fields that will allow for precise placement and increase the likelihood of induction of in-brain magnetic fields. Hair, skin, skull, fascia and the three meninges of the brain present a significant magnetic obstacle to a single rotor system. Using two rotors puts a changing field between them.</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;">In addition to the rotor and motor assembly, there is a motor controller, an LED lamp driver, four controls and all the associated wiring. </span><span style="background-color: white; font-family: "verdana" , sans-serif;">Fitting this unit into its protective housing was the most labor-intensive step so far. Literally millimeters count. You can also notice modeling shortcuts in these pictures. I do not model every thread on the screws or the bevels in the LED plate. This saves time.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUW_xGUnHWwz7Wdaxk29ij6_iX4eetGJCU6MBMRJWPMwV4Xu3-IxE1lBGMpQk0w6HxzeYx10v4souyujs97dWx3xTMO4f3qnDYbtsFHonZVSqbueClWC6eKl742tdPucPihQoW/s1600/Screen+Shot+2019-03-23+at+3.09.54+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1030" data-original-width="1130" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUW_xGUnHWwz7Wdaxk29ij6_iX4eetGJCU6MBMRJWPMwV4Xu3-IxE1lBGMpQk0w6HxzeYx10v4souyujs97dWx3xTMO4f3qnDYbtsFHonZVSqbueClWC6eKl742tdPucPihQoW/s400/Screen+Shot+2019-03-23+at+3.09.54+AM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkX6eBGPlE65_ktldS6SIwJAr5DhaClwzZqYIxApVd1PfICGe3YQokdEhTdeDBtPAclBdujGTiKr6dKaTkqqx_AZpS9LzW8V-JhckeqMcKI6dxFAp5ra61LduNILfRSf2IuBOi/s1600/IMG_7275.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1400" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkX6eBGPlE65_ktldS6SIwJAr5DhaClwzZqYIxApVd1PfICGe3YQokdEhTdeDBtPAclBdujGTiKr6dKaTkqqx_AZpS9LzW8V-JhckeqMcKI6dxFAp5ra61LduNILfRSf2IuBOi/s400/IMG_7275.JPG" width="348" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">Here is a shot of the controls, conveniently on the back. The silver knob powers up the unit which contains a power supply in the base. It turns the LEDs on, which backlight the rotor, and enable power to go to the controller. The red knob controls the speed of rotation with clockwise being faster. </span><span style="font-family: "verdana" , sans-serif;">The green and red buttons are forward and reverse, respectively. They are momentary switches and must be depressed for the unit to operate. Once the units are operational and stable, the red/green buttons will be replaced with a double pole, double throw switch that leave the unit running without the need to keep holding the switch down. The remaining holes are for cooling the controller, LEDs and heat sink. A gentle breeze wafts through the unit. The motor uses about 3 watts of power. I have measured this using a power supply at 15 V which showed a current consumption of 200 mA. The LED panel is about 4 watts, so the total power consumption is 7 watts. Heating should not be a significant problem. The rotor itself generates a centrifugal flow of air.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiclsiWstQ6NnnigvucDPdzTMO_2U8xfG4nQ_SHfIp3dgptUwVHNAsdzhVX1rtCuT5tXgQTXwIHqHZ48tU6KKChnJtANqwxngq1w8lzEMxekuCom4KHjeZjLxqIjSTHv13d3pMn/s1600/IMG_7239.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1560" data-original-width="1600" height="387" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiclsiWstQ6NnnigvucDPdzTMO_2U8xfG4nQ_SHfIp3dgptUwVHNAsdzhVX1rtCuT5tXgQTXwIHqHZ48tU6KKChnJtANqwxngq1w8lzEMxekuCom4KHjeZjLxqIjSTHv13d3pMn/s400/IMG_7239.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><u>Electrical Design</u></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">The electrical design is just as important as the mechanical design. It was roughed out on paper like this:</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPqPmIvzhpODNOjvavGIUg1M_lQYKWIS7mIVkaalERjTMrTmOdA3REs04c1V_MZ76WKWiMChcVYO5iC_La3WDVbvyrISxrJnjbSXFd_K7DRMrlPKzrwcy8yd0JQhviXgQDCoyw/s1600/2019-03-23+02.52.08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1390" data-original-width="1600" height="556" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPqPmIvzhpODNOjvavGIUg1M_lQYKWIS7mIVkaalERjTMrTmOdA3REs04c1V_MZ76WKWiMChcVYO5iC_La3WDVbvyrISxrJnjbSXFd_K7DRMrlPKzrwcy8yd0JQhviXgQDCoyw/s640/2019-03-23+02.52.08.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">This was then transformed using eDraw</span><span style="background-color: white; font-family: "verdana" , sans-serif;">™ into a clearer diagram. I find the additional rehearsals that come from codifying the drawing help to reduce the errors I make in assembly. This is especially true on a project that has never been done. Planning needs rehearsal to be successful. Here's the cleanup. The control circuitry is separate, omitted here for brevity.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhteSeec-GoenVmQxigtSfNxidCQTfJIhp1Xr5CeaDTPcvAY2gW1kL4bzwvAYTU2UUXSKGmuwvfKskjsvejw5pN53QKB9_QwYDudIHmOHgm0_lv7iaEA8VrbtxQYDD7tHquK6Dm/s1600/Screen+Shot+2019-03-22+at+1.42.29+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1205" data-original-width="1600" height="482" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhteSeec-GoenVmQxigtSfNxidCQTfJIhp1Xr5CeaDTPcvAY2gW1kL4bzwvAYTU2UUXSKGmuwvfKskjsvejw5pN53QKB9_QwYDudIHmOHgm0_lv7iaEA8VrbtxQYDD7tHquK6Dm/s640/Screen+Shot+2019-03-22+at+1.42.29+AM.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;">An unlikely ensemble of tools is necessary for the surgery of assembly:</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; font-family: "verdana" , sans-serif;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYseGrNeHFqnXVkwTzZaWA8R8gsnoqOOkzicgyXy05Kiw_Sz_M2gPYqqxPrlO9q-SAy8Ohz6zViZwmCZKfTQjBCbiZR6WhzgKUI_dpM08cI_LnI80AgUql7aKBPgAs_vFhjwzc/s1600/IMG_7279.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1207" data-original-width="1600" height="482" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYseGrNeHFqnXVkwTzZaWA8R8gsnoqOOkzicgyXy05Kiw_Sz_M2gPYqqxPrlO9q-SAy8Ohz6zViZwmCZKfTQjBCbiZR6WhzgKUI_dpM08cI_LnI80AgUql7aKBPgAs_vFhjwzc/s640/IMG_7279.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"> </span></div>
<span style="background-color: white; font-family: "verdana" , sans-serif;"><span style="color: red;"><br />
</span></span> <span style="background-color: white; font-family: "verdana" , sans-serif;"> </span> <span style="background-color: white; font-family: "verdana" , sans-serif;"> <span style="color: red;"> 3. Grad students only: continue with the book you obtained. Read the next 20 pages. State what page numbers you have read. Explain what you agree with, disagree with, and how your views compare with those of other reviewers on Amazon or elsewhere.</span></span> <span style="background-color: white; color: red; font-family: "verdana" , sans-serif;"> </span> <span style="color: black; font-family: "verdana" , sans-serif;">I have moved this answer to my ongoing review of the book, "The Human Race to the Future" a </span><a href="https://lvwarren.blogspot.com/2019/01/computing-and-future-9-first.html" style="font-family: verdana, sans-serif;" target="_blank">single curated document that is here</a><span style="color: black; font-family: "verdana" , sans-serif;">. In the Spring Break session for this question I read and reviewed five chapters, 15-19, of the book.</span> Vanhttp://www.blogger.com/profile/08460756612736368743noreply@blogger.com0