How to solve these boolean equations?

Discussion in 'Homework Help' started by Josh Samman, Mar 29, 2013.

  1. Josh Samman

    Thread Starter New Member

    Mar 29, 2013
    11
    0
    Hello,

    I'm having some difficulty with boolean algebra and i have no one to help me :(. There are 3 exercises in the link bellow i couldn't solve. I spent some time trying unsuccessfully. Please if someone solve these 3 for me i will get'em as an example to make others which i'm having the same problems. There's no need of explanation, the resolution step-by-step alone is enough.

    http://img801.imageshack.us/img801/650/boolean.png

    Thank you!
     
  2. tshuck

    Well-Known Member

    Oct 18, 2012
    3,531
    675
    Sorry Josh, that isn't going to happen. You need to do something before we will attempt your homework. This isn't a place where you can drop off your homework and come back a couple hours later with the solution, ready to be turned in. If all you want are examples, go look in the book, there are plenty there. We will help point you in the right direction for actual learning as opposed to a rote or copied answer.


    What do you know about DeMorgan's theorem? Can you apply it? If not, start here, then see if you can split up your expressions to be groups of ANDed terms that are ORed together....

    For the last one, perhaps using the distributive property might help....

    For your reading pleasure, the properties of Boolean algebra...
     
    DerStrom8 likes this.
  3. Josh Samman

    Thread Starter New Member

    Mar 29, 2013
    11
    0
    Alright sir, then i'll evolve the problem as far as i can so you can help me. i have the basics, my problems are the precedences, cases of NOT's over NOT's (where each not cover different ranges of the equation in different layers, like the second exercise) and some cases of distributive property.

    1 -

    F = abc(NOT(bc + ab))
    = abc(NOT(bc) * NOT(ab))
    = abc(b'+c' * a' + b')
    = abb'c + abcc' * aa'bc + abb'c
    = [ac*0 + ab*0] * [bc*0 + ac*0]
    = 0 + 0 * 0 + 0
    = 0
    -- I don't know if that's right (i never know!)--

    2 -

    F = NOT(ab + NOT(ac + bc))
    F = NOT(ab + [NOT(ac) * NOT(bc)])
    F = NOT(ab + [a' + c' * b' + c'])
    F = a' + b' * ac + bc
    --- I don't know what to do from here --
    Probably there's some distributive i can't see...

    3 -

    F = (ab + c)*(a' + ac)
    = aa'b + aabc * a'c + acc (Distributive, like you recommended)
    = 0 + abc * a'c + ac
    = abc * c(a + a')
    = abc * [c*1]
    = abc * c
    -- Question now --
    Is "= abcc = abc" right? Or it is " = c(ab + 1) = c" ?

    -- End --

    Thank you tshuck for helping me out, i'm new here, never meant to get easy "ready answers".
     
  4. DerStrom8

    Well-Known Member

    Feb 20, 2011
    2,428
    1,328
    Your technique is close to correct, but take a closer look at the bold section above. When you split up the bar over (bc), you MUST keep the parentheses. If you don't, you will come out with the wrong answer.

    This in mind, try doing that part over and see what you get.

    Matt
     
  5. WBahn

    Moderator

    Mar 31, 2012
    17,726
    4,788
    Ah, but with boolean algebra you can always know! Just make a truth table. With only three variables, the truth table only has eight lines.

    a b c abc bc ab (bc+ab) (bc+ab)' F
    0 0 0 0 0 0 0 1 0
    0 0 1 0 0 0 0 1 0
    0 1 0 0 0 0 0 1 0
    0 1 1 0 1 0 1 0 0
    1 0 0 0 0 0 0 1 0
    1 0 1 0 0 0 0 1 0
    1 1 0 0 0 1 1 0 0
    1 1 1 0 1 1 1 0 0


    So it appears you got the correct answer, so now the question is whether this is by coincidence or not.

    Part of your problem is that you are using different notations for the same thing within your work, specifically, you are using both NOT and the apostrophe for logical inversion. Pick one or the other.

    Next, be liberal in your use of parentheses to keep things grouped together. For instance:

    F = abc(NOT(bc + ab))
    = abc(NOT(bc) * NOT(ab))
    = abc([NOT(bc)] * [NOT(ab)])
    Notice the additional brackets around the terms about to be expanded.
    = abc([b'+c'] * [a' + b'])
    Now it's obvious that you can't just distribute abc term across so cavalierly.

    Yes, abcc = abc because xx = x (draw the truth table). Also, think of any simple analogy -- You can have dessert if (you finish your vegetables) AND (you finish your vegetables). Clearly these are redundant conditions and one can be eliminated. Similarly, you can have dessert if (you finish your vegetables) OR (you finish your vegetables). Again, clearly redundant.

    I don't follow the reasoning for the second version. You have

    abc*c

    How are you getting

    c(ab+1) out of this?

    The best you could do would be

    c(ab*1)

    This is the same as when you factor things out n normal algebra.
     
  6. Josh Samman

    Thread Starter New Member

    Mar 29, 2013
    11
    0
    Ok so i'll make negation only with apostrophes:

    F = abc(bc + ab)'
    = abc((bc)' * (ab)')
    = abc([(bc)'] * [(ab)'])
    = abc([(b'+c')] * [(a' + b')])

    So, if i can't just distribute the full abc term, i guess i have to make it one-by-one, going like this:

    [​IMG]

    F = [(ab' + ac') * (aa' + ab')] * [(bb' + bc')*(a'b + bb')] * [(b'c + cc')*(a'c + b'c)]
    = [ab' + (ac' * aa')] * [bb' + (bc' * a'b)] * [b'c+(cc' * a'c)]
    = ab' * (bc' * a'b) * b'c
    = aa'bb'cc' (Eliminating parentheses)
    = 0

    Is that right, now or it's just another coincidence?

    Yeah i understand now :D thank you.

    Yeah, i think i got it now. Thank you too DerStrom8.

    ----------------------------------------------------

    What about the second one? Any clues?

    Thank you all for the help. I appreciate it.
     
    • 001.png
      001.png
      File size:
      6.3 KB
      Views:
      84
  7. DerStrom8

    Well-Known Member

    Feb 20, 2011
    2,428
    1,328
    I'm not sure what you just did is correct. You need to distribute what's inside the parentheses first ((b'+c')*(a'+c')). Once you've distributed that, THEN you distribute the abc and see if you get the same answer.

    Hope this helps :)

    Matt
     
    Josh Samman likes this.
  8. Josh Samman

    Thread Starter New Member

    Mar 29, 2013
    11
    0
    Here i go again then :) :

    F = abc(bc + ab)'
    = abc((bc)' * (ab)')
    = abc([(bc)'] * [(ab)'])
    = abc([(b'+c')] * [(a' + b')])
    = abc([a'(b' + c')] + [b'(b' + c')])
    = abc([a'b' + a'c'] + [b' + b'c'])
    = aa'bb'c + aa'bcc' + abb'c + abb'cc'
    = 0

    How about now?

    I hope it's right.
     
  9. WBahn

    Moderator

    Mar 31, 2012
    17,726
    4,788
    Yes, that is valid. You can do it a bit shorter as follows:

    F = abc(bc + ab)'
    = abc((bc)' * (ab)')
    = a * [(bc) * (bc)'] * (ab)' // Just writing as four factors ANDed together
    = a * 0 * (ab)'
    = 0
     
    Josh Samman likes this.
  10. Josh Samman

    Thread Starter New Member

    Mar 29, 2013
    11
    0
    I guess i figured the last one (2nd exercise) :D :

    F = (ab + (ac + bc)')'
    = (ab + ([(ac)' * (bc)']))'
    = (ab)' * ((ac) + (bc))
    = [(a' + b')] * ((ac) + (bc))
    = [(ac)(a' + b')] + [(bc)(a' + b')]
    = [aa'c + ab'c] + [a'bc + bb'c]
    = ab'c + a'bc
    = c(ab' + a'b)
     
Loading...