Loading...
A Karnaugh map arranges truth-table rows so neighbouring cells differ in one input. Grouping adjacent ones reveals which variables can disappear from a Boolean expression.
What you'll be able to do
For three variables, use rows A=0,1 and columns BC=00,01,11,10. This Gray-code order ensures neighbouring columns differ in one bit. Ordinary binary order 00,01,10,11 would break that property between 01 and 10. Populate each cell from the corresponding truth-table input combination.
Left and right edges are adjacent, as are top and bottom edges where applicable. A group must be a rectangle containing a power-of-two number of one cells: 1,2,4,8 and so on. Diagonal corners touching visually do not make a valid two-cell group. Work from the actual input labels rather than the cell’s printed position alone.
In the three-variable map below, each row has ones in columns 00 and 10. The edge columns are adjacent, so group all four ones across both rows and the wraparound boundary. A changes between rows and B changes between the chosen columns. C remains zero, giving the simplified expression NOT C.
A variable fixed at one appears unnegated in the group term; a variable fixed at zero appears negated. OR the terms from groups that collectively cover every required one. Groups may overlap and a one may be used more than once. Prefer larger useful groups and avoid unnecessary terms, but never include a zero merely to make a larger rectangle.
A four-variable map can use Gray-coded AB rows and CD columns. If the four ones occupy rows 01,11 and columns 01,11, B and D remain one while A and C vary. The group term is B AND D. Naming all four changing coordinates before simplifying makes the result checkable.
Use a complete truth table to verify that the simplified expression matches the original function on every permitted input. Boolean laws such as distribution and De Morgan’s laws provide another route to the same function; minimisation is not just a drawing exercise. If a task introduces don’t-care conditions, follow those stated freedoms. The examples here have fully specified outputs and assume none.
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 1 | 0 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 0 | 0 | 0 | 0 |
| 01 | 0 | 1 | 1 | 0 |
| 11 | 0 | 1 | 1 | 0 |
| 10 | 0 | 0 | 0 | 0 |
Attempt the task before opening its worked response. Record each change of state, explain the rule used, and check the result against the original requirements. Code examples labelled Python 3 use that language’s conventions; pseudocode states its own assumptions.
Common mistakes to avoid
Key takeaways
Test yourself
Answer a few questions, then review anything you missed.
Start with the quiz above to check the key ideas. You can also choose another topic from the practice library.