The Details

From Fuzzy Logic to Neutrosophic Logic

Fuzzy logic was one of the first ways to let computers reason with "maybe" instead of just "yes" or "no." Instead of saying something is 100% true or 100% false, it lets a value sit somewhere in between, like 70% true. This was useful, but it only tracks one thing: how true something is. It doesn't have a way to separately capture how uncertain we are, or how contradictory the evidence looks. Neutrosophic logic, developed by Florentin Smarandache, extends this idea by tracking three things at once: how true something is, how indeterminate it is, and how false it is. This makes it possible to represent situations that are genuinely unclear, not just partly true, but actually contradictory or unknown, in a way fuzzy logic can't.

The 2-Refined Neutrosophic Function

A standard neutrosophic function splits a value into three parts: truth, indeterminacy, and falsity. The "2-refined" version goes one step further and splits indeterminacy itself into two separate parts. This matters for a cache, because "we're not sure how useful this data is" can mean different things: it could mean the usage pattern is genuinely unpredictable, or it could mean the evidence for and against keeping it is conflicting. Splitting indeterminacy into two lets the model tell these two situations apart, instead of lumping them together.

How This Project Represents It

Each cache item is modeled as a function of time, U(t), made up of four parts:

U(t) = T(t) + I₁(t)·i₁ + I₂(t)·i₂ + F(t)

T(t) is how clearly useful the item is at time t. I₁(t) and I₂(t) are the two indeterminacy parts described above. F(t) is how clearly not useful the item is. Together, these four values give a fuller picture of an item's usefulness than a single number ever could.

The Integral, and What It Implies

A single value of U(t) only tells you how useful an item looks at one moment. To make a good decision, this project looks at how that value behaves over an unbounded stretch of time, using a calculation called an improper integral. If the result converges, meaning the total settles toward a finite value instead of growing forever, that's read as a sign the item's usefulness is fading, and it's marked for eviction. If the result diverges, that's read as a sign the item is still worth keeping.

In Code Form

It's approximated by tracking each item's T, I₁, I₂, and F values over recent requests, and accumulating them over time. That running value is then checked against a threshold to decide whether an item stays or goes.

NEXT

pointing arrow