Adakah penyederhanaan ekspresi boolean yang bagus di luar sana? [Tutup]


110

Saya refactoring kode lama dan menemukan beberapa kondisi IF yang terlalu rumit dan panjang dan saya yakin bisa disederhanakan. Dugaan saya adalah bahwa kondisi tersebut berkembang pesat karena modifikasi selanjutnya.

Bagaimanapun, saya ingin tahu apakah ada di antara Anda yang mengetahui penyederhanaan online yang bagus yang dapat saya gunakan. Saya tidak tertarik pada bahasa tertentu, hanya penyederhanaan yang akan mengambil contoh:

((A OR B) AND (! B AND C) OR C)

Dan beri saya versi ekspresi yang disederhanakan, jika ada.

Saya telah melihat pertanyaan serupa lainnya tetapi tidak ada yang mengarahkan saya ke penyederhanaan yang baik.

Terima kasih.


1
WolframAlpha juga tiba di C . Tidak ada gerbang tambahan ...
Axel Kemper

1
Ada alat online yang bagus - tma.main.jp/logic/index_en.html
Roman Hocke

Alat lain adalah boolean-algebra.com yang akan menunjukkan langkah-langkah untuk menyelesaikannya. Misalnya, milik Anda dapat diselesaikan hanya dengan hukum absorpsi A + AB = A. Ini tidak terlalu maju jadi jika Anda membutuhkan sesuatu selain bentuk minimal maka Anda lebih baik menggunakan situs lain.
John Smith

Jawaban:


93

Anda dapat mencoba Wolfram Alpha seperti pada contoh ini berdasarkan masukan Anda:

http://www.wolframalpha.com/input/?i=((A%20OR%20B)%20AND%20(NOT%20B%20AND%20C)%20OR%20C)&t=crmtb01&f=rc


3
Situs web tampaknya tidak terlalu bagus untuk menyederhanakan rumus boolean ketika rumus tersebut menjadi sedikit lebih kompleks. Coba yang ini: (((NOT C) AND (NOT A)) OR ((NOT B) AND (NOT C) AND (NOT D) AND (NOT A)) OR ((NOT B) AND (NOT C) AND D DAN A) ATAU (B DAN C AND (BUKAN D) DAN (BUKAN A)) ATAU (B DAN C DAN D DAN A))
Albert Hendriks

1
Memang. Aneh. Ia bahkan muntah pada versi yang disederhanakan NOT C AND NOT A OR NOT B AND NOT C AND NOT D AND NOT A OR NOT B AND NOT C AND D AND A OR B AND C AND NOT D AND NOT A OR B AND C AND D AND A.
500 - Kesalahan Server Internal

2
Perhatikan bahwa jika Anda menginginkan tabel kebenaran, yang tidak selalu ditampilkan untuk beberapa ekspresi, mulailah kueri dengan kata-kata "tabel kebenaran" diikuti dengan ekspresi
Belgi

16

Try Logic Friday 1It mencakup alat dari Universitas California (Espresso dan misII) dan membuatnya dapat digunakan dengan GUI. Anda dapat memasukkan persamaan boolean dan tabel kebenaran sesuai keinginan. Ia juga dilengkapi dengan input dan output diagram gerbang grafis.

Minimisasi dapat dilakukan dua level atau multi level. Bentuk dua tingkat menghasilkan jumlah produk yang diminimalkan. Bentuk multi-level menciptakan sirkuit yang terdiri dari gerbang logis. Jenis gerbang dapat dibatasi oleh pengguna.

Ekspresi Anda disederhanakan menjadi C.


2
Untuk alat online cepat, ini sangat membantu: tma.main.jp/logic/index_en.html
Lenar Hoyt

6

Saya menemukan bahwa The Boolean Expression Reducer jauh lebih mudah digunakan daripada Logic Friday. Ditambah tidak memerlukan instalasi dan multi-platform (Java).

Juga di Logic Friday ekspresi A | Bhanya mengembalikan 3 entri dalam tabel kebenaran; Saya mengharapkan 4.


3
Aktifkan opsi "Truthtable / Show all Rows" di Logic Friday 1. Jika tidak, Anda hanya mendapatkan semua baris dengan nilai output 1.
Axel Kemper

1
Secara internal, bexpred menggunakan algoritma sederhana untuk menggabungkan minterms. Ini mungkin membantu untuk ekspresi kecil tetapi jelas bukan seni yang canggih.
Axel Kemper

2
Untuk "A * B * (! A * B +! A *! B)" masukan jar ini mengembalikan SOP False tetapi POS True. Bukan skrip yang benar-benar dapat diandalkan ...
Evil

tautan rusak, siapa yang memiliki tautan yang berfungsi?
HJLebbink
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.