
This problem is an example of constructing a circuit using the minimum number of NOR gates (devices with two inputs and one output) that will perform the logical function specified by a truth table. This problem is formulated as a binary optimization problem using the Gurobi Python API and solved with the Gurobi Optimizer.
This model is example 12 from the fifth edition of Model Building in Mathematical Programming, by H. Paul Williams on pages 266-267 and 320-321.
This example is at the intermediate level where we assume that you know Python and the Gurobi Python API and that you have some knowledge of building mathematical optimization models.
Request a Gurobi Evaluation License or Free Academic License
Modeling examples are coded using the Gurobi Python API in Jupyter Notebook. In order to use the Jupyter Notebooks, you must have a Gurobi License. If you do not have a license, you can request an Evaluation License as a Commercial User or download a free license as an Academic User.
Commercial Users: Free Evaluation Version Academic Users: Free Academic Version
Access the Jupyter Notebook Modeling Example
Click on the button below to be directed to GitHub where you can download the repository for the Logical Design Jupyter Notebook modeling example.
Logical Design