Skip to content

Commit

Permalink
Add results of examples.
Browse files Browse the repository at this point in the history
  • Loading branch information
msk-ono committed Sep 25, 2023
1 parent ba517d9 commit b85bf97
Show file tree
Hide file tree
Showing 9 changed files with 22,238 additions and 0 deletions.
33 changes: 33 additions & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Examples

## Exact cover problem

```sh
$ cargo run --release --example exact_cover
```

![](bdd/exact_cover.svg)

## Independent set and kernel of graph.

See "The Art of Computer Programming, 7.1.4. Binary Decision Diagrams" for more information.

```sh
$ cargo run --release --example united_states
```

### Independent set

![](bdd/independent_set.svg)

### Kernel

![](bdd/kernel.svg)

## Set partition problem

```sh
$ cargo run --release --example set_partition
```

![](bdd/set_partition.svg)
274 changes: 274 additions & 0 deletions examples/bdd/exact_cover.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
digraph ExactCover {
n3583 [label="H[0][0]"];
n3583 -> n3549 [style=dotted];
n3583 -> n3582;
n3582 [label="V[0][0]"];
n3582 -> n3581 [style=dotted];
n3581 [label="H[0][1]"];
n3581 -> n3580 [style=dotted];
n3580 [label="V[0][1]"];
n3580 -> n3579 [style=dotted];
n3579 [label="H[1][0]"];
n3579 -> n3578 [style=dotted];
n3579 -> n3514;
n3514 [label="V[1][0]"];
n3514 -> n3513 [style=dotted];
n3513 [label="H[0][2]"];
n3513 -> n3492 [style=dotted];
n3513 -> n3512;
n3512 [label="V[0][2]"];
n3512 -> n3511 [style=dotted];
n3511 [label="H[1][1]"];
n3511 -> n3510 [style=dotted];
n3510 [label="V[1][1]"];
n3510 -> n3509 [style=dotted];
n3509 [label="H[2][0]"];
n3509 -> n3501 [style=dotted];
n3509 -> n3508;
n3508 [label="V[2][0]"];
n3508 -> n3507 [style=dotted];
n3507 [label="V[0][3]"];
n3507 -> n3506 [style=dotted];
n3506 [label="H[1][2]"];
n3506 -> n3505 [style=dotted];
n3506 -> n3485;
n3485 [label="V[1][2]"];
n3485 -> n3484 [style=dotted];
n3484 [label="H[2][1]"];
n3484 -> n3483 [style=dotted];
n3483 [label="V[2][1]"];
n3483 -> n3482 [style=dotted];
n3482 [label="H[3][0]"];
n3482 -> n3468;
n3468 [label="V[1][3]"];
n3468 -> n3467 [style=dotted];
n3467 [label="H[2][2]"];
n3467 -> n3463 [style=dotted];
n3467 -> n3466;
n3466 [label="V[2][2]"];
n3466 -> n3465 [style=dotted];
n3465 [label="H[3][1]"];
n3465 -> n3464 [style=dotted];
n3464 [label="V[2][3]"];
n3464 -> n25 [style=dotted];
n25 [label="H[3][2]"];
n25 -> n1;
n3463 [label="V[2][2]"];
n3463 -> n3462;
n3462 [label="H[3][1]"];
n3462 -> n3461 [style=dotted];
n3461 [label="V[2][3]"];
n3461 -> n3240;
n3240 [label="H[3][2]"];
n3240 -> n1 [style=dotted];
n3505 [label="V[1][2]"];
n3505 -> n3504;
n3504 [label="H[2][1]"];
n3504 -> n3503 [style=dotted];
n3503 [label="V[2][1]"];
n3503 -> n3502 [style=dotted];
n3502 [label="H[3][0]"];
n3502 -> n3494;
n3494 [label="V[1][3]"];
n3494 -> n3493;
n3493 [label="H[2][2]"];
n3493 -> n3466 [style=dotted];
n3501 [label="V[2][0]"];
n3501 -> n3500;
n3500 [label="V[0][3]"];
n3500 -> n3499 [style=dotted];
n3499 [label="H[1][2]"];
n3499 -> n3498 [style=dotted];
n3499 -> n3478;
n3478 [label="V[1][2]"];
n3478 -> n3477 [style=dotted];
n3477 [label="H[2][1]"];
n3477 -> n3470 [style=dotted];
n3477 -> n3476;
n3476 [label="V[2][1]"];
n3476 -> n3475 [style=dotted];
n3475 [label="H[3][0]"];
n3475 -> n3474 [style=dotted];
n3474 [label="V[1][3]"];
n3474 -> n3473 [style=dotted];
n3473 [label="H[2][2]"];
n3473 -> n3472 [style=dotted];
n3472 [label="V[2][2]"];
n3472 -> n3471 [style=dotted];
n3471 [label="H[3][1]"];
n3471 -> n3461;
n3470 [label="V[2][1]"];
n3470 -> n3469;
n3469 [label="H[3][0]"];
n3469 -> n3468 [style=dotted];
n3498 [label="V[1][2]"];
n3498 -> n3497;
n3497 [label="H[2][1]"];
n3497 -> n3496 [style=dotted];
n3496 [label="V[2][1]"];
n3496 -> n3495;
n3495 [label="H[3][0]"];
n3495 -> n3494 [style=dotted];
n3492 [label="V[0][2]"];
n3492 -> n3491;
n3491 [label="H[1][1]"];
n3491 -> n3490 [style=dotted];
n3490 [label="V[1][1]"];
n3490 -> n3489 [style=dotted];
n3489 [label="H[2][0]"];
n3489 -> n3481 [style=dotted];
n3489 -> n3488;
n3488 [label="V[2][0]"];
n3488 -> n3487 [style=dotted];
n3487 [label="V[0][3]"];
n3487 -> n3486;
n3486 [label="H[1][2]"];
n3486 -> n3485 [style=dotted];
n3481 [label="V[2][0]"];
n3481 -> n3480;
n3480 [label="V[0][3]"];
n3480 -> n3479;
n3479 [label="H[1][2]"];
n3479 -> n3478 [style=dotted];
n3578 [label="V[1][0]"];
n3578 -> n3577;
n3577 [label="H[0][2]"];
n3577 -> n3561 [style=dotted];
n3577 -> n3576;
n3576 [label="V[0][2]"];
n3576 -> n3575 [style=dotted];
n3575 [label="H[1][1]"];
n3575 -> n3563 [style=dotted];
n3575 -> n3574;
n3574 [label="V[1][1]"];
n3574 -> n3573 [style=dotted];
n3573 [label="H[2][0]"];
n3573 -> n3572 [style=dotted];
n3572 [label="V[2][0]"];
n3572 -> n3571 [style=dotted];
n3571 [label="V[0][3]"];
n3571 -> n3570 [style=dotted];
n3570 [label="H[1][2]"];
n3570 -> n3569 [style=dotted];
n3569 [label="V[1][2]"];
n3569 -> n3568 [style=dotted];
n3568 [label="H[2][1]"];
n3568 -> n3567 [style=dotted];
n3568 -> n3503;
n3567 [label="V[2][1]"];
n3567 -> n3566;
n3566 [label="H[3][0]"];
n3566 -> n3565;
n3565 [label="V[1][3]"];
n3565 -> n3564;
n3564 [label="H[2][2]"];
n3564 -> n3466;
n3563 [label="V[1][1]"];
n3563 -> n3562;
n3562 [label="H[2][0]"];
n3562 -> n3508 [style=dotted];
n3561 [label="V[0][2]"];
n3561 -> n3560;
n3560 [label="H[1][1]"];
n3560 -> n3551 [style=dotted];
n3560 -> n3559;
n3559 [label="V[1][1]"];
n3559 -> n3558 [style=dotted];
n3558 [label="H[2][0]"];
n3558 -> n3557 [style=dotted];
n3557 [label="V[2][0]"];
n3557 -> n3556 [style=dotted];
n3556 [label="V[0][3]"];
n3556 -> n3555;
n3555 [label="H[1][2]"];
n3555 -> n3554 [style=dotted];
n3554 [label="V[1][2]"];
n3554 -> n3553 [style=dotted];
n3553 [label="H[2][1]"];
n3553 -> n3552 [style=dotted];
n3553 -> n3534;
n3534 [label="V[2][1]"];
n3534 -> n3533 [style=dotted];
n3533 [label="H[3][0]"];
n3533 -> n3532;
n3532 [label="V[1][3]"];
n3532 -> n3531 [style=dotted];
n3531 [label="H[2][2]"];
n3531 -> n3530 [style=dotted];
n3530 [label="V[2][2]"];
n3530 -> n3529 [style=dotted];
n3529 [label="H[3][1]"];
n3529 -> n2861 [style=dotted];
n2861 [label="V[2][3]"];
n2861 -> n25;
n3552 [label="V[2][1]"];
n3552 -> n3482;
n3551 [label="V[1][1]"];
n3551 -> n3550;
n3550 [label="H[2][0]"];
n3550 -> n3488 [style=dotted];
n3549 [label="V[0][0]"];
n3549 -> n3548;
n3548 [label="H[0][1]"];
n3548 -> n3516 [style=dotted];
n3548 -> n3547;
n3547 [label="V[0][1]"];
n3547 -> n3546 [style=dotted];
n3546 [label="H[1][0]"];
n3546 -> n3545 [style=dotted];
n3545 [label="V[1][0]"];
n3545 -> n3544 [style=dotted];
n3544 [label="H[0][2]"];
n3544 -> n3543 [style=dotted];
n3543 [label="V[0][2]"];
n3543 -> n3542 [style=dotted];
n3542 [label="H[1][1]"];
n3542 -> n3541 [style=dotted];
n3542 -> n3490;
n3541 [label="V[1][1]"];
n3541 -> n3540;
n3540 [label="H[2][0]"];
n3540 -> n3528 [style=dotted];
n3540 -> n3539;
n3539 [label="V[2][0]"];
n3539 -> n3538 [style=dotted];
n3538 [label="V[0][3]"];
n3538 -> n3537;
n3537 [label="H[1][2]"];
n3537 -> n3536 [style=dotted];
n3537 -> n3485;
n3536 [label="V[1][2]"];
n3536 -> n3535;
n3535 [label="H[2][1]"];
n3535 -> n3534 [style=dotted];
n3528 [label="V[2][0]"];
n3528 -> n3527;
n3527 [label="V[0][3]"];
n3527 -> n3526;
n3526 [label="H[1][2]"];
n3526 -> n3518 [style=dotted];
n3526 -> n3525;
n3525 [label="V[1][2]"];
n3525 -> n3524 [style=dotted];
n3524 [label="H[2][1]"];
n3524 -> n3523 [style=dotted];
n3523 [label="V[2][1]"];
n3523 -> n3522 [style=dotted];
n3522 [label="H[3][0]"];
n3522 -> n3521 [style=dotted];
n3521 [label="V[1][3]"];
n3521 -> n3520 [style=dotted];
n3520 [label="H[2][2]"];
n3520 -> n3519 [style=dotted];
n3519 [label="V[2][2]"];
n3519 -> n3471;
n3518 [label="V[1][2]"];
n3518 -> n3517;
n3517 [label="H[2][1]"];
n3517 -> n3476 [style=dotted];
n3516 [label="V[0][1]"];
n3516 -> n3515;
n3515 [label="H[1][0]"];
n3515 -> n3514 [style=dotted];
n1 [label="", shape = box];
}
Loading

0 comments on commit b85bf97

Please sign in to comment.