Algorithms: Difference between revisions

From Helpful
Jump to navigation Jump to search
(Created page with "<!-- ===What does algorithm mean?=== A way of calculating. A way of getting a particular thing done. Typically, practical answers to 'how does it X?' It refers to only the method, not the data you feed into it, nor the hardware it runs on. Programmers will often prefer to call things algorithm only when they are either specific theory (e.g. a specific way of sorting), OR concrete enough to just run And usually for simple, well-defined, questions, such as "ho...")
 
mNo edit summary
 
Line 2: Line 2:
===What does algorithm mean?===
===What does algorithm mean?===


A way of calculating.
A mechanically description of getting a particular thing done.  


A way of getting a particular thing done.


Typically, practical answers to 'how does it X?'
This isn't ''exclusive'' to math or computation, but they are the ones that use the term most.


Note it refers to the method only -- excluding details like the data you feed into it, or the hardware it runs on.


It refers to only the method, not the data you feed into it, nor the hardware it runs on.
Any technically satisfying answer to 'how does it X?' could be considered an algorithm in a pinch.




Programmers will often prefer to call things algorithm only when  
That said, programmers will often prefer to call things algorithm only when  
they are either specific theory (e.g. a specific way of sorting), OR  
* it is fairly worked out specific theory (e.g. a specific way of sorting), OR  
concrete enough to just run  
* it is already concrete enough to just run.


And usually for simple, well-defined, questions,  
...and prefer simple, well-defined, questions, for single tasks, such as "how similar are these two words?"
such as "how similar are these two words?" or "how do we sort a list?" or ""
or "how do we sort a list?",


...to the more complex such as "how do we evaluate a weather forecast for the next day?" or "how do we distribute processing power between running programs".


Thy don't have to be completely implemented and ready to run,
but there is no further heavy thinking to be done, just implementing it:
writing it out, ''maybe'' figuring out practicalities to supporting systems.


Thy don't ''have'' to be completely implemented and ready to run,
but most of the work left is implementing what is already described writing it out, ''maybe'' figuring out practicalities to supporting systems - but no further architecting of how to move towards getting a result.






In general, it means anything, from "How similar are these two words?" to "how do we sort a list?" to "how do we distribute processing power between running programs" to "how do we do a weather forecast?"




===What do they look like?===


Depends, mainly on the complexity, and on what it does.




===="The algorithm"====
There are a lot of things you can describe fully with words, and a little math.
 
 
There are some things that build on much larger building blocks,


"The algorithm", to most, ranges from ''extremely specific'':
: the way that the video site figures which video you might want to see next,
: the way that social sites recommend content to you that is not from your immediate circles,


and that usually comes up when we believe that there is an agenda,
like the sense that "what you might want to see next" may be more focused on "what you are least likely to click away from" at the cost of literally anything else.


particularly one we might not agree with,
Say, bubble sort is an algorithm that, in english, goes something like
"step though a list one at a time. At each position, look at the pair. If the are not in the right order, swap them. Repeat going through the list until you didn't need to swap anything". (which you might note is a dumber variant of how you might sort playing cards in your hand)


You might also imagine that writing this down in [[pseudocode]] is a short and pretty complete description of everything it does,
even if you would need to write it in ''actual'' code before it actually would run.


Helped by the fact that companies do not tend to disclose how.






Particularly if they are not aiming for things we want to see, but actually the things we would ''least'' want to see.
Note that neural nets aren't algorithms in this sense,
Because anger is powerful [https://en.wikipedia.org/wiki/Engagement_marketing engagement], and engagement means more ad clicks so more money for the platform.
because while we know how they function,
they entangle everything they do in one fuzzy mess.
In particular, they entangle ''what'' runs into ''how'' it is evaluted.  
The software becomes part of the hardware in a way,
which is something programmers typically kept separated.


That said, we currently emulate that hardware, so eh.






===="The algorithm"====


===What do they look like?===
"The algorithm", to most, ranges from ''extremely specific'':
: the way that the video site figures which video you might want to see next,
: the way that social sites recommend content to you that is not from your immediate circles,


Depends, mainly on the complexity, and on what it does.
and that usually comes up when we believe that there is an agenda,  
like the sense that "what you might want to see next" may be more focused on "what you are least likely to click away from" at the cost of literally anything else.


particularly one we might not agree with,


There are a lot of things you can describe fully with words, and a little math.


Helped by the fact that companies do not tend to disclose how.


There are some things that build on much larger building blocks,




Particularly if they are not aiming for things we want to see, but actually the things we would ''least'' want to see.
Because anger is powerful [https://en.wikipedia.org/wiki/Engagement_marketing engagement], and engagement means more ad clicks so more money for the platform.


Neural nets aren't algorithms in this sense,
because while we know how they function,
they entangle everything they do in one fuzzy mess.




-->
-->

Latest revision as of 18:23, 26 February 2024