4.2: MATLAB та незалежні класи
MATLAB та незалежні класи
У одиниці на Мінтермах показано, як використовувати мінтермальні ймовірності та мінтермові вектори для обчислення ймовірностей булевих комбінацій подій. В Independence of Events ми показуємо, що в незалежному випадку ми можемо обчислити всі мінтермальні ймовірності з ймовірностей основних подій. Хоча ці розрахунки прості, вони можуть бути виснажливими і схильні до помилок. На щастя, у цьому випадку у нас є m-функція minprob, яка обчислює всі мінтермальні ймовірності з ймовірностей базових або генеруючих наборів. Ця функція використовує m-функцію mintable для налаштування шаблонів з іp 'qs для різних minterms, а потім приймає продукти, щоб отримати набір minterm ймовірностей.
Приклад4.2.1
>> pm = minprob(0.1*[4 7 6]) pm = 0.0720 0.1080 0.1680 0.2520 0.0480 0.0720 0.1120 0.1680
Можливо, бажано розташувати їх як на мінтермальній карті. Для цього ми маємо m-функцію minmap, яка змінює матрицюpm рядків наступним чином:
>> t = minmap(pm) t = 0.0720 0.1680 0.0480 0.1120 0.1080 0.2520 0.0720 0.1680
Імовірність виникнення k n незалежних подій
У прикладі 2 показано, як використовувати m-функції mintable та csort для отримання ймовірностіk виникненняn подій, коли доступні мінтермальні ймовірності. У випадку з незалежним класом, мінтермальні ймовірності легко обчислюються мінпроб, необхідно лише вказати ймовірності дляn основних подій і номериk подій. Визначається розмір класу, звідси і mintable, а мінтермальні ймовірності обчислюються minprob. У нас є дві корисні m-функції. ЯкщоP є матрицею ймовірностейn окремих подій, іk є матрицею цілих чисел менше або дорівнюєn, то
функціяy=ikn(P,k) обчислює індивідуальніk ймовірності, щоn відбуваються
функціяy=ckn(P,k) обчислює ймовірності, які виникаютьk або більше
Приклад4.2.2
>> p = 0.01*[13 37 12 56 33 71 22 43 57 31]; >> k = [2 5 7]; >> P = ikn(p,k) P = 0.1401 0.1845 0.0225 % individual probabilities >> Pc = ckn(p,k) Pc = 0.9516 0.2921 0.0266 % cumulative probabilities
Надійність систем з незалежними компонентами
Припустимо, система маєn компоненти, які виходять з ладу самостійно. EiДозволяти подією, коли компонентi th переживає зазначений період часу. ТодіRi=P(Ei) визначається як надійність цього компонента. RНадійність повної системи - це функція надійності компонентів. Існує три основні конфігурації. Загальні системи можуть бути розкладені на підсистеми цих типів. Підсистеми стають компонентами більшої конфігурації. Три основні конфігурації:
Серія. Система працює, якщо працюють всі n компонентів:R=∏ni=1Ri
Паралельний. Система працює, якщо не всі компоненти виходять з ладу:R=1−∏ni=1(1−Ri)
k п. Система працює, якщо працюєk більше компонентів. Rможна обчислити за допомогою m-функції cn. Якщо ймовірності компонента однакові, ефективніше використовувати m-функцію cbinom (див. Проби Бернуллі та біноміальний розподіл нижче).
Рішення MATLAB. Помістіть надійність компонента в матрицюRC=[R1 R2 ⋅⋅⋅ Rn]
Конфігурація серії
>> R = prod(RC) % prod is a built in MATLAB function
Паралельна конфігурація
>> R = parallel(RC) % parallel is a user defined function
k або n Конфігурація
>> R = ckn(RC,k) % ckn is a user defined function (in file ckn.m).
Приклад4.2.3
Існує вісім компонентів, пронумерованих від 1 до 8. Компонент 1 послідовно з паралельним поєднанням компонентів 2 і 3 з подальшим поєднанням 3 з 5 компонентів 4 по 8 (схематичне зображення див. Рис. Ймовірності компонентів в порядку є
0,95 0,90 0,92 0,80 0,83 0,91 0,85 0,85
Друга і третя ймовірності - для паралельної пари, а останні п'ять ймовірностей - для комбінації 3 з 5.
>> RC = 0.01*[95 90 92 80 83 91 85 85]; % Component reliabilities >> Ra = RC(1)*parallel(RC(2:3))*ckn(RC(4:8),3) % Solution Ra = 0.9172

Приклад4.2.4
>> RC = 0.01*[95 90 92 80 83 91 85 85]; % Component reliabilities 1--8 >> Rb = prod(RC(1:2))*parallel([RC(3),ckn(RC(4:8),3)]) % Solution Rb = 0.8532

Тест на незалежність
Важко подивитися на список мінтермальних ймовірностей і визначити, утворюють чи генеруючі події незалежний клас. M-функція imintest має як аргумент вектор мінтермальних ймовірностей. Він перевіряє можливий розмір, визначає кількість змінних і виконує перевірку на незалежність.
Приклад4.2.5
>> pm = 0.01*[15 5 2 18 25 5 18 12]; % An arbitrary class >> disp(imintest(pm)) The class is NOT independent Minterms for which the product rule fails 1 1 1 0 1 1 1 0
Приклад4.2.6
>> pm = [0.10 0.15 0.20 0.25 0.30]: %An improper number of probabilities >> disp(imintest(pm)) The number of minterm probabilities incorrect
Приклад4.2.7
>> pm = minprob([0.5 0.3 0.7]); >> disp(imintest(pm)) The class is independent
Імовірності булевих комбінацій
Як і в ненезалежному випадку, ми можемо використовувати мінтермальне розширення та мінтермальні ймовірності для обчислення ймовірностей булевих комбінацій подій. Однак часто ефективніше маніпулювати виразами для логічної комбінації, щоб бути неспільним об'єднанням перетинів.
Приклад4.2.8 A simple Boolean combination
Припустимо, клас {AB,,C} є незалежним, з відповідними ймовірностями 0,4, 0,6, 0,8. ВизначтеP(A∪BC). Довгострокова експансія - це
A∪BC=M(3,4,5,6,7), so that P(A∪BC)=p(3,4,5,6,7)
Неважко використовувати правило продукту та теорему заміни для обчислення необхідних мінтермальних ймовірностей. Таким чиномp(3)=P(Ac)P(B)=P(C)=0.6⋅0.6⋅0.8=0.2280. Аналогічноp(4)=0.0320p(5)=0.1280,p(6)=0.0480,,p(7)=0.1920. Бажана ймовірність - це сума цих, 0.6880.
Як альтернативний підхід пишемо
A∪BC=A⋁AcBC, щобP(A∪BC)=0.4+0.6⋅0.6⋅0.8=0.6880
Значно менше арифметичних операцій потрібно в цьому розрахунку.
У великих задачах, або в ситуаціях, коли ймовірності декількох булевих комбінацій повинні бути визначені, може бути бажано обчислити всі мінтермальні ймовірності, а потім використовувати методи мінтерм-вектора, введені раніше для обчислення ймовірностей для різних булевих комбінацій. Як більший приклад, для якого обчислювальна допомога є дуже бажаною, знову розглянемо клас та ймовірності, використані в прикладі 4.2.2, вище.
Приклад4.2.9
Розглянемо ще раз незалежний клас {E1,E2,⋅⋅⋅E10} з відповідними ймовірностями [0.13 0.37 0.12 0.56 0.33 0.71 0.22 0.43 0.57 0.31]. Бажаємо розрахуватиІснують210=1024 мінімальні ймовірності, які потрібно обчислити. Кожен вимагає множення десяти чисел. Рішення з MATLAB є простим, наступним чином:
>> P = 0.01*[13 37 12 56 33 71 22 43 57 31]; >> minvec10 Vectors are A1 thru A10 and A1c thru A10c They may be renamed, if desired. >> F = (A1|(A3&(A4|A7c)))|(A2&(A5c|(A6&A8)))|(A9&A10c); >> pm = minprob(P); >> PF = F*pm' PF = 0.6636
Виписання виразу дляF є нудним і схильним до помилок. Ми могли б спростити наступним чином:
>> A = A1|(A3&(A4|A7c)); >> B = A2&(A5c|(A6&A8)); >> C = A9&A10c; >> F = A|B|C; % This minterm vector is the same as for F above
Це розкладання проблеми вказує на те, що вона може бути вирішена як низка менших проблем. По-перше, нам потрібні деякі центральні факти про незалежність булевих комбінацій.
Незалежні логічні комбінації
Припустимо, що у нас є логічна комбінація подій у класі {Ai:1≤i≤n} та друга комбінація подій у класі {Bj:1≤j≤m}. Якщо комбінований клас {Ai,Bj:1≤i≤n,1≤j≤m} незалежний, ми очікуємо, що комбінації підкласів будуть незалежними. Важливо бачити, що це насправді є наслідком правила продукту, оскільки це ще одне свідчення того, що правило продукту охопило суть інтуїтивного поняття незалежності. У наступному обговоренні ми показуємо істотну структуру, яка забезпечує основу для наступної загальної пропозиції.
Пропозиція. Розглянемоn окремі підкласи незалежного класу подій. Якщо для кожноїi подіїAi)isaBoolean(logical)combinationofmembersofthe\(i -й підклас, то клас {\ (A_1, A_2,\ cdot\ cdot\ cdot, a_n} є незалежним класом.
Перевірка цього далекосяжного результату спирається на мінтермальне розширення і два елементарних факти про неспільних підкласах незалежного класу. Ми констатуємо ці факти і розглядаємо в кожному конкретному випадку приклад, який демонструє істотну структуру. Формулювання загального результату, в кожному конкретному випадку, просто питання ретельного використання позначень.
Клас, кожен з членів якого є мінтерміном, утвореним членами окремого підкласу незалежного класу, сам по собі є незалежним класом.
Приклад4.2.10
Розглянемо незалежний клас {A1,A2,A3,B1,B2,B3,B4}, з відповідними ймовірностями 0,4, 0,7, 0,3, 0,5, 0,8, 0,3, 0,6. РозглянемоM3, minterm три для класу {A1,A2,A3}, іN5, minterm п'ять для класу {B1,B2,B3,B4}. Тоді
P(M3)=P(Ac1A2A3)=0.6⋅0.7⋅0.3=0.126іP(N5)=P(Bc1B2Bc3B4)=0.5⋅0.8⋅0.7⋅0.6=0.168
Також
P(M3N5)=P(Ac1A2A3Bc1B2Bc3B40=0.6⋅0.7⋅0.3⋅0.5⋅0.8⋅0.7⋅0.6
=(0.6⋅0.7⋅0.3)⋅(0.5⋅0.8⋅0.7⋅0.6)=P(M3)P(N5)=0.0212
Правило продукту показує бажану незалежність.
Знову ж таки, має бути очевидним, що результат тримає будь-яку кількістьAi іBj; і його можна розширити на будь-яку кількість різних підкласів незалежного класу.
Припустимо, кожен член класу може бути виражений у вигляді нез'єднаного союзу. Якщо кожен допоміжний клас, утворений шляхом взяття по одному члену з кожного з нероз'єднаних об'єднань, є незалежним класом, то початковий клас незалежний.
Приклад4.2.11
ПрипустимоB=B1⋁B2,A=A1⋁A2⋁A3 і, з {Ai,Aj} незалежним для кожної париi,j. ПрипустимоМи хочемо показати, що пара {A,B} є незалежною; тобто правило продуктуP(AB)=P(A)P(B) тримається.
ОБЧИСЛЕННЯ
P(A)=P(A1)+P(A2)+P(A3)=0.3+0.4+0.1=0.8іP(B)=P(B1)+P(B2)=0.2+0.5=0.7
Зараз
AB=(A1⋁A2⋁A3)(B1⋁B2)=A1B1⋁A1B2⋁A2B1⋁A2B2⋁A3B1⋁A3B2
За адитивності та попарної незалежності ми маємо
P(AB)=P(A1)P(B1)+P(A1)P(B2)+P(A2)P(B1)+P(A2)P(B2)+P(A3)P(B1)+P(A3)P(B2)
=0.3⋅0.2+0.3⋅0.5+0.4⋅0.2+0.4⋅0.5+0.1⋅0.2+0.1⋅0.5=0.56=P(A)P(B)
Правило добутку також може бути встановлено алгебраїчно з виразу forP(AB), наступним чином:
P(AB)=P(A1)[P(B1)+P(B2)]+P(A2)[P(B1)+P(B2)]+P(A3)[P(B1)+P(B2)]
=[P(A1)+P(A2)+P(A3)][P(B1)+P(B2)]=P(A)P(B)
Повинно бути зрозуміло, що тільки що проілюстрований візерунок можна розширити на загальний випадок. Якщо
то пара {A,B} незалежна. Крім того, ми можемо розширити це правило до потрійного {A,B,C}
і аналогічно для будь-якого кінцевого числа таких комбінацій, так що друга пропозиція тримає.
Почніть з самостійного класуn подій. Виберітьm різні підкласи і сформуйте логічні комбінації для кожного з них. Використання мінтермального розширення для кожної з цих булевих комбінацій та двох лише проілюстрованих пропозицій показує, що клас логічних комбінацій є незалежним.
Для ілюстрації повернемося до Прикладу 4.2.9, який передбачає незалежний клас з десяти подій.
Приклад4.2.12 A hybrid approach
Розглянемо знову незалежний клас {E1,E2,⋅⋅⋅,E10} з відповідними ймовірностями {0,13 0,37 0,12 0,56 0,33 0,71 0,22 0,43 0,57 0,31}. Бажаємо розрахуватиP(F)=P(E1∪E3(E4∪Ec7)∪E2(Ec5∪E6E8)∪E9E10c)
У попередньому рішенні ми використовуємо minprob, щоб обчислити210=1024 мінтерми для всіх десятиEi і визначити мінтерм-вектор дляF. Як ми відзначаємо в почерговому розширенніF,
Ми можемо розраховувати безпосередньоP(C)=0.57⋅0.69=0.3933. ТеперA це логічна комбінація {E1,E3,E4,E7} і B є комбінацією {E2,E5,E6E8}. За результатом незалежності булевих комбінацій клас {A,B,C} є незалежним. Використовуємо m-процедури для розрахункуP(A) іP(B). Потім ми маємо справу з незалежним класом {A,B,C} для отримання ймовірностіF.
>> p = 0.01*[13 37 12 56 33 71 22 43 57 31]; >> pa = p([1 3 4 7]); % Selection of probabilities for A >> pb = p([2 5 6 8]); % Selection of probabilities for B >> pma = minprob(pa); % Minterm probabilities for calculating P(A) >> pmb = minprob(pb); % Minterm probabilities for calculating P(B) >> minvec4; >> a = A|(B&(C|Dc)); % A corresponds to E1, B to E3, C to E4, D to E7 >> PA = a*pma' PA = 0.2243 >> b = A&(Bc|(C&D)); % A corresponds to E2, B to E5, C to E6, D to E8 >> PB = b*pmb' PB = 0.2852 >> PC = p(9)*(1 - p(10)) PC = 0.3933 >> pm = minprob([PA PB PC]); >> minvec3 % The problem becomes a three variable problem >> F = A|B|C; % with {A,B,C} an independent class >> PF = F*pm' PF = 0.6636 % Agrees with the result of Example 4.2.7