Feedback
We will be happy to answer your questions Call us or
Articles
20 Questions on Generating an Algorithm
20 Questions on Generating an Algorithm

How does one create an algorithm for solving a complex problem? Many believe that it takes enlightenment, a revelation from above, because the process is not rational in its basis and depends purely on creative powers or talents.

Finding a solution to any problem is, in practice, reduced to the task of collecting information about the object in question. This principle is applicable to the resolution of both complex research tasks and smaller tasks intended for practical applications. The task of an inventor is akin not to the manipulations of a magician, but instead to the journey of a pioneer to unexplored lands. The key asset of every successful inventor is the ability to collect information.

If the problem you intend to solve is a complex one, collect information within a wide scope of areas. Answering the following 20 questions will help make it much easier to draw up a plan of operations for problem resolution.

Question 1. Who?
When proceeding to solving a certain problem, draw up a comprehensive list of people who have some direct relation to finding a solution for it. After this, determine the following:

  • who is primarily interested in finding a solution?
  • who has, at any earlier point in time, worked on solving this or a related problem?
  • who is to determine whether the problem has been resolved successfully or unsatisfactorily?
  • who can be consulted in the course of problem resolution?
  • who can control this judgement?
  • which authors have written the most reputable articles dedicated to this issue?

Question 2. What for?
Ask yourself several times: “Why do I want to solve this task? What will it give me?” Frequently, solving problem A is required for the purposes of solving problem B, yet in reality there are alternative ways of solving Problem B. In this case, we will only waste time by looking into the initial Problem A.

Question 3. How?
What will be my methods for resolving this problem? How will the process of finding a solution be structured? Do any ready-to-use methods or systems of methods that could be used here exist in general?

Question 4. What?
What objects are involved in or envisaged by the problem in question? Draw a diagram on paper, marking with arrows all possible relations between objects pertaining to this problem. Are there any overlooked or superfluous objects?
Every object on the diagram should have approximately the same number of “outgoing” and “incoming” arrows. An otherwise situation means that we have, in all probability, overlooked certain important relations between the objects or, on the contrary, overestimated the importance of some relations.

Question 5. When?
Examine the task that you’re faced with from the time angle. Determine:

  • the speed at which separate blocks of your algorithm should operate?
  • which external factors related to time may affect such operations?
  • how much time do you use to create, program and test the resulting algorithm?

Question 6. Where?
Examine the problem from the geography angle. Answer these questions for yourself:

  • where, in which countries, cities, regions, will your solution find a practical application?
  • which computer platforms will its application require?
  • what other issues related to geographic location may be pertinent to this problem?

Question 7. What about past experience?
What solutions to this problem have existed before? One, two, ten or a hundred years earlier? No problem ever arises out of nothing, and chances are that someone has already come up with ways to tackle it in the past. It will be most beneficial, as well as simply informative, to find out how exactly this happened.

Question 8. What do we have today?
What solutions to this problem exist or are employed today? Find out and try to achieve a clear understanding of the alternative solutions already available.

Question 9. How will this be in the future?
How will this problem be solved in three, five, ten or a hundred years from now? Spend some time trying to visualize the trend and its possible development.
The optimal scenario will make your resulting algorithm part of a long-term trend and will prevent it from becoming outdated in a year after its first implementation.

Question 10. What can it be a part of?
Can this problem be part of a larger problem (or system)? Is that larger problem in turn part of something else?

Question 11. What does it consist of?
What smaller sub-problems make up the initial problem? Into what smaller segments can this problem be divided? And can the sub-problems in turn be divided into segments?

Question 12. What does this possibly resemble?
What associations or analogies does this problem bring up? The good thing is that there is no limit on their length or the extent of their metaphoricity. Finding a similar phenomenon in a different field of human activity will be a big step forward.
This is a jolly powerful question. Precisely, associations, connotations and analogies with the most unusual, unexpected fields of knowledge lie at the basis of most convenient and suitable solutions.

Question 13. What do I see?
Visualize the problem, its solution and all of the components of such. Draw them out. Put yourself in the place of a kid (or a designer) and look for the most appropriate colors for them (even for virtual abstract objects). Feel the visual harmony of this problem or identify problematic, “unharmonious” spots, if they exist.

Question 14. What do I hear?
This is a complex and yet most helpful question, as the powerful section of your brain that is responsible for processing sound information is fairly underdeveloped in this day and age. And yet, I personally know a number of genius researchers and engineers who precisely “hear” solutions to problems they have to solve.
Therefore, try to “hear” the interaction of all of the component elements of this problem (shutting your eyes may facilitate the process) and hear characteristic sounds of its elements. Hear conversations between people who will apply the solution that you generate for practical purposes.

Question 15. What do I feel?
This question may appear somewhat unusual, even if not as unusual as the previous one. Try to perceive tactile, temperature, flavor and respiratory connotations that this problem brings out. Some solutions may seem “tough” while others will be perceived as “cold” or even “bitter”.
Involve the part of your brain responsible for the senses in the task of problem resolution. This is most certainly a non-standard method of analyzing research data, but it may also prove helpful.

Question 16. What would an ideal solution look like?
Spend some time envisioning how this problem can be tackled ideally, think of something absolutely incredible – the more fantastic your resulting scenario, the better. This very principle lies at the basis of the brainstorming method when the most incredible, daring solutions are suggested.
Imagine yourself not restrained by any boundaries and being granted most favorable work conditions. What could you achieve provided that you had all that?
Could there be a perfect solution to this task and, if so, how can it be achieved?

Question 17. Why is all of this doomed to fail?
Spend some time being an “old grumbler” and a pessimistic criticaster. Identify all of the reasons why you may be unable to resolve this problem, as well as all of the organizational aspects and obstacles that could result in your failure. Write them all down, and the more you find, the better. When you emerge from your role of a critic, the information that you have written down will become invaluable in terms of making you aware of all of the perils and traps that may be waiting for you on your path, and that are better avoided.

Question 18. How do I personally benefit from the solution?
What vantages will the resolution of this problem bring to you personally? What will you learn? How much will you earn? What important contacts and relationships will you forge? In what way will this improve your reputation?

Question 19. How does this solution benefit others?
How exactly will the solution to this problem benefit the customer, the client, the person who is expected to avail of the results of your work? What significance does the solution found by you have for him?

Question 20. How does this solution benefit society?
How will the entire community benefit from the solution that you will come up with? Will it be of any public importance? Will it benefit the population on a global level and, if so, how so?

I am certain that once you have answered these questions for yourself, you will know far more about the problem you face. And, I bet that you will see a variety of most unexpected facets of the problem, and your imagination will serve you well by offering you solutions that will be unconventional, reliable and yet attractive and harmonious.

Admittedly, these answers will not always put you straight on the threshold of a ready, definitive solution. There is a multitude of other methods, ways and techniques that are all helpful for generating an elegant solution to the problem.

Nevertheless, I believe that you will experience how the speed and quality of the process of algorithmic problem resolution increase significantly if you opt in favor of using these 20 reference questions in your scientific or engineering research.