computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
, a Self-organising heuristic is an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
that modifies a
data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the rel ...
such as a
linked list
In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes whi ...
in response to use of the data structure.
Examples might be:
* Move-to-front (or 'Move to top')
* Self-learning Frequency list (or 'Order by access frequency')
* Re-insert at random position
* Move to back
Example Applications
''Move to front'', or ''Order by access frequency'', might be used to organize a cache of
information
Information is an abstract concept that refers to that which has the power to inform. At the most fundamental level information pertains to the interpretation of that which may be sensed. Any natural process that is not completely random, ...
, so that frequently used, or recently used information is at the top (and so can be found quickly, without having to traverse the whole list).
''Order by frequency'' might be used to re-arrange a list of options in a GUI menu, so that the top ones are the ones most commonly selected by the user.
''Re-insert at random'' or ''Move to back'' might be used to organise a list of mirror servers, so that once a server has been used for downloading, it goes to the back of the queue, to discourage the user from selecting it again.
Heuristics