Algorithm

Just as you optimize your daily activities all the time, without even realizing it (see the entry optimize), you are also gifted of algorithms that, even unconsciously, it develops and uses to carry out its tasks.

We're talking about logic and also about the recipe you use for the most trivial things, like taking a shower or fixing something broken. But since we are talking about a recipe, let's think about a cake. To begin with, you have a series of instructions, which begin by listing all the ingredients. Then there are definitions of other steps, which include mixtures in certain quantities, objectives (dissolving flour pellets, reaching the right point of “snow” for the egg whites, etc.), times, cleaning of the dirt made. And the end.

Logic has to do with reasoning, with the coherent way of conducting thought to perform actions. The recipe is the expression of this reasoning in step-by-step form. It is the set of instructions that lead to a solution. The algorithm is the recipe.

The algorithm is not concerned with "what to do", but with the next step of "how to do it".

A definition? OK. By extension it would be, according to the Caldas Aulete dictionary, a "fixed series of tasks, actions, reasoning, etc. which, carried out step by step, lead to a certain intended result". In a more technical definition, applied to the field of informatics, also from the same dictionary, it is the "finite and unambiguous sequence of computable instructions that, applied to a set of data, lead to the solution of a problem or allow to carry out a certain task".< /p>

If we were to print the instructions contained in Corte Certo, say, in Arial size 12, we would undoubtedly need a few hundred thousand sheets of A4 bond. It turns out that, for a software, the steps of each task must be very detailed.

In our cake recipe, one of the items could be: “Beat the egg whites until they become stiff”. Already in the step-by-step, our intuitive algorithm, would include:

  • Go to the fridge
  • Open the door
  • Locate the row of eggs on the inside of the door
  • Take your right hand to the last egg in line
  • Remove the first egg
  • Pass it to the left hand
  • Locate the row of eggs on the inside of the door
  • Take your right hand to the last egg in line
  • Remove the second egg
  • Pass it to the left hand
  • Locate the row of eggs on the inside of the door
  • Take your right hand to the last egg in line
  • Remove the third egg
  • Close the door with the hand that contains the last egg
  • Take the eggs to the central island
  • Place them on your worktop
  •  Go to the crockery cupboard
  • Find a bowl

Not to mention the definition of what would be a point of snow.

This is a narrative description, rarely used in computer programming because it can give rise to ambiguity, a term that differentiates the more informal definition of the more technical algorithm. “Snow” is already a double meaning term and as imprecise as leaving the cake in the oven for “approximately” that many minutes.

To minimize this imprecision, several other more specific forms of algorithm representation were developed, such as the Flowchart and the Pseudocode</em > (also called Portugol or even structured Portuguese, structured language or pseudo language).

Another of the characteristics that define the algorithm is its finitude. It means that the number of steps must be finite. An algorithm always terminates.

So what about the idea that software with the characteristics of Corte Certo is never ready, that it is in constant evolution?

The truth is that the combinatorial optimization problem, the central concern of the Corte Certo developers, has a finite domain, but it is such an astronomical domain that only with the recent advances in technology, including the huge increase in computer memory capacity, many of the algorithms already envisioned are being implemented.

In these cases of gigantism of the problem associated with high complexity, subalgorithms with variable limits are used and that can be called by the main algorithm, when necessary. And then finitude is reached for each of the scopes, separately, while the main algorithm remains open to receiving solutions for new scopes.

Also note that there is also a wide variety of algorithms, including exact, heuristic and approximation methods.

No Corte Certo

The basic algorithms presented in the scientific literature* do not always take into account important aspects for practical use in industry. Especially because several of these prerequisites are still being discovered in the day-to-day production of each industry. Some of them arise linked to reasons of manufacturing processes, that is, new ideas that demand new functionalities or adjustments in Corte Certo; or for reasons of innovations in the machinery – cutting machines with differentiated characteristics in relation to their competitors.

Because of this, Corte Certo uses a hybrid heuristic algorithm developed by the company itself, which not only positions parts on a plate, but also performs the task respecting the prerequisites raised directly on the market in a gigantic list. Some of these prerequisites are more than predictable, others, not so much, as you can see in this list below:

  • Compensates for the saw width used in the cut.
  • Rotate the pieces or not (for better use of the area) according to the texture of the material used.
  • Limits the minimum size of scraps, depending on the material used (Depending on the material and cutting method, it may not be possible in practice to cut very small scraps).
  • Limits the number of "phases" of the cutting plane generated, respecting machine limits used in cutting.
  • Generates "extra cuts" at the end of each strip to be cut, if configured (required for some types of automated cutting machines ).
  • Use plates of different sizes (in the same project) if necessary.
  • Uses stored scraps if necessary (generated from old cuts).
  • Allows the use of additional parts to automatically improve the cutting performance.
  • Allows you to automatically distribute the cutting phases between more than one automated cutting machine, thus enabling a better workflow (useful for large companies)
  • In addition to optimize the area used, it also minimizes the amount of generated different cutting planes, to optimize the cutting time)< /li>
  • First cut direction (vertical, horizontal or free) adjustable (important for some types of cutting machines and/or materials)
Precisa de ajuda?