Informally, algorithm is just a series of steps to solve some problem. To be more formal, an algorithm transform inputs into desired output.

So what exactly are steps? They are just “some basic operations”

And to do those computations, we can use Boolean Circuits

Untitled

$\land$ and $\lor$ or $\lnot$ not

“Solve the problem” → Complete the function

“Basic Steps” → AND/OR/NOR operations

Boolean Circuits

To implement those basic operations, we could use boolean circuits

DAG

we could use DAG - Direct Acyclic Graph - to represent the circuits

A (n, m, s) boolean circuit is a DAG with n + s vertices

n: number of variables

m: number of outputs

s: size of gates

Example:

Untitled