deep-foundation / deep-foundation/articles

Representation of links in different ways from 0 bit per link and beyond

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
documentation
Dominant language
No language data
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

This article will explore the trade-offs and efficiency concerning different data structures used for representing associations. The focus will be on how matrices and trees can be employed to store associations, and how their efficiency can fluctuate based on the density of the associations present.

Firstly, we explore how associations can consume varying amounts of storage, from 0 to 2 bits, with different characteristics and limitations based on their structure.

In low association density scenarios, traditional matrices representing associations take up a significant amount of storage, with a majority of stored entries being frivolous zeros. In contrast, tree structures are highlighted for their ability to create associations in any part of a comparable matrix, allowing for storage efficiency in scenarios where fewer associations exist.

This introduces an interesting dilemma where the best structure will vary based on the specific scenario. As such, the article will propose a need for a potential dynamic selection of the most efficient data structure based on the number of associations at play. This could lead to significant improvements in computational efficiency in data storage structures.

Possible data structure arrangements:
* Zero-Bit Associations: In certain contexts, associations can be formed without taking up any additional storage space. A classic example of this is when the associations are computationally deterministic, for example generation based on a natural sequence of numbers, like this: (1: 1 1), (2: 2 2), (3: 3 3), etc. This is an example of lazy execution or calculation on demand.
* One-Bit Associations: Single matrix that will connect virtual associations between themselves. For example, rows of the matrix are sources of the link, and columns of the matrix are targets of the link. If there is `true` value in the cell that is placed at the intersection of its source and target, then the link (source target) exists, otherwise the link does not exist. In this case, each link can take up at minimum 1 bit.
* Two-Bit Associations: A two matrix structure, including address-to-source and address-to-target, uses two bits for each association. In this arrangement, associations can refer to each other recursively, as each association is fully defined by the two matrices. This arrangement is valuable in scenarios where associations between associations are needed. In this case, each link can take up at minimum 2 bits.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.