Download as odt, pdf, or txt
Download as odt, pdf, or txt
You are on page 1of 2

1. What is an algorithm ?

- the definition is typically dependent on a machine


- an algorithm is something computable by a machine, or “computable in general”; but, there
is no “in general” without constructing at least a machine in the “universe” (*)

2. Consider the aspects of “algorithm design” and “algorithm analysis”; what are they ?
- the analysis of an algorithm seems to be the computation of all its possible paths of
execution (enumeration), and then computing arbitrary properties over the enumeration
- the algorithm design is ??
- consider that algorithm design can be likened to an inverse function, where one starts from
desired algorithmic properties (such as time scaling, memory scaling, parallelism, lock-free or not,
necessary basis operations, some complexity/cost-fitness metric, etc.)
-

3. Every algorithm might have alternatives. Can you define a space which differentiates them, and
also represents a projection for algorithms in regards to interesting algorithm properties ?
- consider time complexity, space complexity
- consider how many concurrent threads can cooperate
- how centralized or decentralized is the algorithm ?
- there can be constraints such as not using specific instructions or operations (!)
- again, constraints can be quite varied, which makes defining an n-dim space hard (or a
“dimensionality-based space” in general); why ? because every new idea will cause a change in
dimensionality, and algorithms over spaces with varying dimensionality are not common to me;
still, one could use “n-angles” as metrics, and those ought to be preserved even under adding new
dimensionalities (*?)

4. What is an algorithm design technique ?


- it might have to do with some property of a problem’s complexity space; basically, whether
it’s “greedy”, “dynamic” (re-using the same problem with different arguments => for a particular
argument, a problem needs to evaluate itself for some other arguments, thus there is some caching
involved), “divide and conquer” (hierarchical sub-problems => this somewhat differs from “re-
argumenting” problems in that the input is “smaller” in some sense)
-.

5. What are loop invariants ?


-.

6. What does it mean to prove an algorithm’s correctness ?


- first, what constitutes the algorithm’s specification ?
-.

7. From probabilistic analysis, what is a dependent variable and how does it compare to an
independent variable ?
- also, what is a random variable ?
-

8. When in the business of algorithm design, where do you search / how do you find the “new
algorithmic results” and “what’s the latest on any problems’ algorithms” ?
- for example, for the problem of sorting data using comparators, what are some important
results ? for example, a lower boundary for asymptotic time complexity, or degree of
parallelization, or maybe new “algorithm properties” to consider (!)
9. What does it mean to “solve a recurrence” ?
- what is the “iteration method” for solving a recurrence ?
- what are “recursion trees” ?
- what does it mean to “verify a guess using the substitution method” ?

10.

You might also like