Диссертация (1137313), страница 21
Текст из файла (страница 21)
Выбирается альтернатива, занявшая наименьшее число последних мест в предпочтениях избирателей.4. Правило Борда [60]. По данному правилу для каждой альтернативы вы-⃗ ) как сумма рангов (, ) по всем избирателямчисляется ранг Борда (, или с помощью вектора очков = ( − 1, − 2, ..., 1, 0) ∈ (⃗ ) ⇔ ∈ arg max∈(︁⟨⟩)︁⃗ , (, ) .5. Максиминная процедура (аксиоматическое описание представлено в [61]).Для каждой альтернативы вычисляется минимальное количество избирателей, которые предпочитают эту альтернативу некоторой другой, а затем выбирается альтернатива, для которой это значение максимально: ∈ (⃗ ) ⇔ ∈ arg max min | (, ; ⃗ )|.∈ ∈6.
Двухступенчатая мажоритарная система (plurality with run-off ). Выбирается альтернатива, являющаяся наилучшей больше чем для половины избирателей. Если такой альтернативы нет, то проводится второй тур голосования,150в котором участвуют две альтернативы, набравшие наибольшее количество голосов в первом туре.7. Правило Коупленда [62]. Выбирается альтернатива, для которой количество побед минус количество поражений по мажоритарному отношению наибольшее, т.е.(, ⃗ ) = |{ ∈ | }| − |{ ∈ | }|, ∈ 1 (⃗ ) ⇔ ∈ arg max (, ⃗ ).∈8. Правило Коупленда второго порядка.
Сначала применяется правило Коупленда, а затем, в случае неоднозначности выбора, выбирается альтернатива, для которой сумма очков (, ⃗ ) по всем альтернативам , которые альтернатива доминирует по мажоритарному отношению, максимальна ∈ 2 (⃗ ) ⇔ ∈ arg max (, ⃗ )& ∈ arg max∈∈∑︁(, ⃗ ).: 9. Правило передачи голосов (процедура Хара ). Выбирается альтернатива,имеющая более 50 % первых мест в предпочтениях избирателей. Если таковойнет, то из профиля исключается альтернатива, имеющая наименьшее число первых мест. Процедура повторяется до тех пор, пока не будет выбрана какая-либоальтернатива.110. Победитель Кондорсе [64] – альтернатива, недоминируемая по мажори-⃗ ) ⇔ ¬∃ ∈ , .тарному отношению, т.е.
∈ (11. Правило Доджсона [65]. Выбирается победитель Кондорсе, если он существует. Если победителя Кондорсе нет, то для каждой альтернативы проверяется, сколько раз нужно произвести замену местами двух соседних альтернатив1 Существуют и другие вариации этого правила, отличающиеся порядком передачи голосов от исключаемых альтернатив коставшимся или квотой, необходимой для перехода на следующий этап. Обзор различных вариантов правила передачи голосовпредставлен в [63].151в предпочтениях избирателей, чтобы она стала победителем Кондорсе. Послеэтого выбирается альтернатива, для которой нужно произвести минимальноеколичество таких замен.12. Правило Кемени [41]. Введем сначала функцию расстояния по Кемени()между линейными порядками 1 и 2 .
Пусть { } – матрица бинарного отно()()шения : если , то элементы этой матрицы = 1, = −1. Расстояние между двумя предпочтениями вычисляется как сумма модулей разности(1)(2)элементов матриц { } и { }(1 , 2 ) =∑︁ ∑︁(1)(2)| − | ∈ ∈Результат правила Кемени – линейный порядок, для которого сумма расстоянийдо предпочтений всех избирателей минимальна, т.е. = arg min ∈∑︁(, ).∈Победитель – кандидат, занимающий первое место в найденном упорядочении.13. Процедура Болдуина (обратная процедура Борда ) [66].
Для каждой аль-⃗ ), затем из профиля удаляетсятернативы подсчитывается ранг Борда (, альтернатива, имеющая наименьший ранг Борда. Процедура исключения альтернатив продолжается до тех пор, пока не останутся неисключаемые альтернативы, которые и являются множеством выбора в процедуре Болдуина.14. Правило Нансона [67]. Рассчитываются значения ранга Борда для каждойальтернативы, затем из профиля удаляются все альтернативы, имеющие рангБорда ниже среднего ранга,1 ∑︁¯ =(, ⃗ ). ∈152Процедура повторяется для нового профиля, и все продолжается до тех пор,пока не останутся неисключаемые альтернативы.15. Турнир с выбыванием (правило последовательных попарных сравнений ).Последовательность попарных сравнений определяется с помощью бинарногодерева и распределения кандидатов по концевым вершинам, которые задаются извне и известны избирателям как часть процедуры.
В каждой неконцевойвершине дерева ставится кандидат, ставший победителем в паре ее дочернихвершин по мажоритарному отношению.16. Правило Баклина [68]. Для каждого кандидата вычисляется наименьшее такое значение , при котором больше половины избирателей ставят кандидата среди наилучших в своих предпочтениях. Кандидат с наименьшимзначением выбирается процедурой как победитель.17. Процедура упорядоченных пар (ranked pairs ) [69].
Процедура строит коллективное упорядочение , линейный порядок. Победитель – кандидат, занявший в первое место. Для всех пар кандидатов ( , ) ∀ , ∈ , ̸= ,⃗ )|. Обозначим за множество имеющихсявычисляется значение | ( , ; пар. Следующие три шага процедуры повторяются: а) в выбирается па-⃗ )| максимально; б) для нее устанавливаетсяра, для которой значение | ( , ; коллективное предпочтение , если оно не противоречит условию транзитивности ; в) из удаляются пары ( , ) и ( , ). Таким образом, послерассмотрения всех пар устанавливается линейный порядок на множестве .18.
Процедура Блэка Выбирается победитель Кондорсе, если он существует.В противном случае выбирается победитель по правилу Борда.153Приложение BИсходные коды разработанногопрограммного комплексаB.1Вычисление индекса вероятности манипулирования: основнаяпрограмма1 n1 =3;2 n2 =15;3 nn=n1−n2 +1;4 ICNK=zeros ( 1 , nn ) ;56 for n=n1 : n27 p (: ,1) =[1 ,2 ,3];8 p (: ,2) =[1 ,3 ,2];9 p (: ,3) =[2 ,1 ,3];10 p ( : , 4 ) = [ 2 , 3 , 1 ] ;11 p ( : , 5 ) = [ 3 , 1 , 2 ] ;12 p ( : , 6 ) = [ 3 , 2 , 1 ] ;1315414 A=1:5+n ;15 C=nchoosek (A, 5 ) ;16 K=nchoosek (5+n , 5 ) ;17 AEC=zeros (K, 6 ) ;18 AEC( : , 1 )=C ( : , 1 ) − 1;19 AEC( : , 2 )=C ( : , 2 )−C ( : , 1 ) − 1;20 AEC( : , 3 )=C ( : , 3 )−C ( : , 2 ) − 1;21 AEC( : , 4 )=C ( : , 4 )−C ( : , 3 ) − 1;22 AEC( : , 5 )=C ( : , 5 )−C ( : , 4 ) − 1;23 AEC( : , 6 ) =6+n−C ( : , 5 ) − 1;2425 P=zeros ( 3 , n ,K) ;26 for i =1:K27h=1;28for j =1:6for k=1:AEC( i , j )2930P ( : , h , i )=p ( : , j ) ;31h=h+1;end ;32end ;3334 end ;3536 v=zeros ( 3 , 3 ,K) ;37 for i =1:K3839for i a =1:3for k =1:3155for l =1:n4041i f P( k , l , i )==i a42v ( i a , k , i )=v ( i a , k , i ) +1;43end ;end ;44end ;4546end ;47 end ;4849 WMG=zeros ( 3 , 3 ,K) ;50 MG=zeros ( 3 , 3 ,K) ;51 for i =1:K52[WMG( : , : , i ) ,MG( : , : , i ) ]= m a j o r i t y (P ( : , : , i ) ) ;53 end ;5455 S c o r e P l u r=zeros ( 1 , 3 ,K) ;56 RankPlur=zeros ( 1 , 3 ,K) ;57 WinnerPlur=zeros ( 1 , 3 ,K) ;5859 ScoreBorda=zeros ( 1 , 3 ,K) ;60 RankBorda=zeros ( 1 , 3 ,K) ;61 WinnerBorda=zeros ( 1 , 3 ,K) ;6263 ScoreVeto=zeros ( 1 , 3 ,K) ;64 RankVeto=zeros ( 1 , 3 ,K) ;65 WinnerVeto=zeros ( 1 , 3 ,K) ;1566667 S c o r e R u n o f f=zeros ( 2 , 3 ,K) ;68 RankRunoff=zeros ( 1 , 3 ,K) ;69 WinnerRunoff=zeros ( 1 , 3 ,K) ;7071 S c o r e S t v=zeros ( 3 , 3 ,K) ;72 RankStv=zeros ( 1 , 3 ,K) ;73 WinnerStv=zeros ( 1 , 3 ,K) ;7475 ScoreCopeland=zeros ( 1 , 3 ,K) ;76 RankCopeland=zeros ( 1 , 3 ,K) ;77 WinnerCopeland=zeros ( 1 , 3 ,K) ;7879 for i =1:K80[ WinnerPlur ( : , : , i ) , RankPlur ( : , : , i ) , S c o r e P l u r ( : , : , i ) ]=p l u r a l i t y (P ( : , : , i ) , n ) ;81[ WinnerBorda ( : , : , i ) , RankBorda ( : , : , i ) , ScoreBorda ( : , : , i ) ]=borda (P ( : , : , i ) , n ) ;82[ WinnerVeto ( : , : , i ) , RankVeto ( : , : , i ) , ScoreVeto ( : , : , i ) ]=v e t o (P ( : , : , i ) , n ) ;83[ WinnerRunoff ( : , : , i ) , RankRunoff ( : , : , i ) , S c o r e R u n o f f ( : , : , i) ]= r u n o f f (P ( : , : , i ) ) ;84[ WinnerStv ( : , : , i ) , RankStv ( : , : , i ) , S c o r e S t v ( : , : , i ) ]= s t v (P(: ,: , i )) ;85[ WinnerCopeland ( : , : , i ) , RankCopeland ( : , : , i ) , ScoreCopeland( : , : , i ) ]= c o p e l a n d (P ( : , : , i ) ) ;15786 end ;8788 MP=zeros (K, 1 ) ;89 Check=zeros (K, 1 ) ;90 CheckVoter=zeros (K, n ) ;91 Flag=zeros (K, 1 ) ;92 f =0;93 for i =1:K94i f Check ( i , 1 )==095j =0;96while MP( i , 1 )==0 && j <n97j=j +1;98i f CheckVoter ( i , j )~=199f=f +1;100pe = [ 1 , 1 , 1 , 1 , 1 , 1 ] ;101pb = [ 0 , 0 , 0 , 0 , 0 , 0 ] ;102103104for i i =1:Ki f i s e q u a l ( t i e B r e a k ( WinnerCopeland ( : , : , i ) ) ,t i e B r e a k ( WinnerCopeland ( : , : , i i ) ) )105j c =0;106CV=zeros ( 1 , n ) ;107while j c <n108158109i f P ( : , j , i )==P ( : , j c , i i )110CheckVoter ( i i , j c ) =1;111CV( 1 , j c ) =1;112j j =j c ;end ;113114end ;115c=sum (CV( 1 , : ) ) ;116i f c~=0117ManipP=P ( : , : , i i ) ;118for jm=1:6119i f pe ( 1 , jm )==1120ManipP ( : , j j )=p ( : , jm ) ;121i f l e x T i e ( c o p e l a n d ( ManipP ( : , : ) ) ,P ( : ,j , i ) )>l e x T i e ( c o p e l a n d (P ( : , : , i i ) ) ,P( : , j , i ) )122pe ( 1 , jm ) =0;123pb ( 1 , jm ) =0;124end ;125i f l e x T i e ( c o p e l a n d ( ManipP ( : , : ) ) ,P ( : ,j , i ) )<l e x T i e ( c o p e l a n d (P ( : , : , i i ) ) ,P( : , j , i ) )126pb ( 1 , jm ) =1;127end ;128end ;159129end ;130Flag ( i i , 1 )=f ;end ;131end ;132133end ;134i f sum ( pb )~=0135for i i =1:Ki f Flag ( i i , 1 )==f136137MP( i i , 1 ) =1;138Check ( i i , 1 ) =1;end ;139end ;140141end ;142i f j==n143Check ( i , 1 ) =1;144end ;145end ;146end ;147end ;148 end ;149150 ICM=zeros (K, 1 ) ;151 for i =1:K152i f MP( i , 1 )==1160153ICM( i , 1 )=f a c t o r i a l ( n ) / ( f a c t o r i a l (AEC( i , 1 ) ) * f a c t o r i a l (AEC( i , 2 ) ) * f a c t o r i a l (AEC( i , 3 ) ) * f a c t o r i a l (AEC( i , 4 ) ) *f a c t o r i a l (AEC( i , 5 ) ) * f a c t o r i a l (AEC( i , 6 ) ) ) ;end ;154155 end ;156 ICNK( n −2)=sum (ICM) / ( 6 ) ^n ;157 end ;B.2Вычисление индексов успеха манипулирования и стимула к манипулированию: основная программа1 n1 =3;2 n2 =20;3 nn=n1−n2 +1;45 ICNK=zeros ( 1 , nn ) ;6 ICS=zeros ( 1 , nn ) ;7 ICMS=zeros ( 1 , nn ) ;89 for n=n1 : n210 p ( : , 1 ) = [ 1 , 2 , 3 ] ;11 p ( : , 2 ) = [ 1 , 3 , 2 ] ;12 p ( : , 3 ) = [ 2 , 1 , 3 ] ;13 p ( : , 4 ) = [ 2 , 3 , 1 ] ;14 p ( : , 5 ) = [ 3 , 1 , 2 ] ;15 p ( : , 6 ) = [ 3 , 2 , 1 ] ;1616117 A=1:5+n ;18 C=nchoosek (A, 5 ) ;19 K=nchoosek (5+n , 5 ) ;20 AEC=zeros (K, 6 ) ;21 AEC( : , 1 )=C ( : , 1 ) − 1;22 AEC( : , 2 )=C ( : , 2 )−C ( : , 1 ) − 1;23 AEC( : , 3 )=C ( : , 3 )−C ( : , 2 ) − 1;24 AEC( : , 4 )=C ( : , 4 )−C ( : , 3 ) − 1;25 AEC( : , 5 )=C ( : , 5 )−C ( : , 4 ) − 1;26 AEC( : , 6 ) =6+n−C ( : , 5 ) − 1;2728 P=zeros ( 3 , n ,K) ;29 for i =1:K30h=1;31for j =1:6for k=1:AEC( i , j )3233P ( : , h , i )=p ( : , j ) ;34h=h+1;end ;35end ;3637 end ;3839 v=zeros ( 3 , 3 ,K) ;40 for i =1:K4142for i a =1:3for k =1:3162for l =1:n43i f P( k , l , i )==i a4445v ( i a , k , i )=v ( i a , k , i ) +1;end ;46end ;47end ;4849end ;50 end ;5152 WMG=zeros ( 3 , 3 ,K) ;53 MG=zeros ( 3 , 3 ,K) ;54 for i =1:K55[WMG( : , : , i ) ,MG( : , : , i ) ]= m a j o r i t y (P ( : , : , i ) ) ;56 end ;5758 S c o r e P l u r=zeros ( 1 , 3 ,K) ;59 RankPlur=zeros ( 1 , 3 ,K) ;60 WinnerPlur=zeros ( 1 , 3 ,K) ;6162 ScoreBorda=zeros ( 1 , 3 ,K) ;63 RankBorda=zeros ( 1 , 3 ,K) ;64 WinnerBorda=zeros ( 1 , 3 ,K) ;6566 ScoreVeto=zeros ( 1 , 3 ,K) ;67 RankVeto=zeros ( 1 , 3 ,K) ;68 WinnerVeto=zeros ( 1 , 3 ,K) ;1636970 S c o r e R u n o f f=zeros ( 2 , 3 ,K) ;71 RankRunoff=zeros ( 1 , 3 ,K) ;72 WinnerRunoff=zeros ( 1 , 3 ,K) ;7374 S c o r e S t v=zeros ( 3 , 3 ,K) ;75 RankStv=zeros ( 1 , 3 ,K) ;76 WinnerStv=zeros ( 1 , 3 ,K) ;7778 for i =1:K79[ WinnerPlur ( : , : , i ) , RankPlur ( : , : , i ) , S c o r e P l u r ( : , : , i ) ]=p l u r a l i t y (P ( : , : , i ) , n ) ;80[ WinnerBorda ( : , : , i ) , RankBorda ( : , : , i ) , ScoreBorda ( : , : , i ) ]=borda (P ( : , : , i ) , n ) ;81[ WinnerVeto ( : , : , i ) , RankVeto ( : , : , i ) , ScoreVeto ( : , : , i ) ]=v e t o (P ( : , : , i ) , n ) ;82[ WinnerRunoff ( : , : , i ) , RankRunoff ( : , : , i ) , S c o r e R u n o f f ( : , : , i) ]= r u n o f f (P ( : , : , i ) ) ;83[ WinnerStv ( : , : , i ) , RankStv ( : , : , i ) , S c o r e S t v ( : , : , i ) ]= s t v (P(: ,: , i )) ;84 end ;8586 CheckVoter=zeros (K, n ) ;87 stimulV=zeros (K, n ) ;88 s t i m u l=zeros (K, 1 ) ;89 manipSuccess=zeros (K, n ) ;16490 ManipSuccess=zeros (K, 1 ) ;91 NK=zeros (K, 1 ) ;9293 f =0;94 for i =1:K95j =0;96while j <n97j=j +1;98EqVoter=zeros (K, n ) ;99i f CheckVoter ( i , j )==0100W=0;101WS=0;102FlagW=zeros (K, 1 ) ;103Flag1=zeros (K, 1 ) ;104Flag3=zeros (K, 1 ) ;105for i i =1:K106i f i s e q u a l ( WinnerPlur ( : , : , i ) , WinnerPlur ( : , : ,ii ))107j c =0;108CV=zeros ( 1 , n ) ;109while j c <n110j c=j c +1;111i f P ( : , j , i )==P ( : , j c , i i )112CheckVoter ( i i , j c ) =1;113EqVoter ( i i , j c ) =1;114CV( 1 , j c ) =1;165115j j =j c ;end ;116117end ;118c=sum (CV( 1 , : ) ) ;119i f c~=0for l l =1:6120i f i s e q u a l (P ( : , j j , i i ) , p ( : , l l ) )121122L= l l ;end ;123124end ;125FlagW ( i i , 1 )=f a c t o r i a l ( n −1) *AEC( i i , L)/ ( f a c t o r i a l (AEC( i i , 1 ) ) * f a c t o r i a l (AEC( i i , 2 ) ) * f a c t o r i a l (AEC( i i , 3 ) ) *f a c t o r i a l (AEC( i i , 4 ) ) * f a c t o r i a l (AEC( i i , 5 ) ) * f a c t o r i a l (AEC( i i , 6 ) ) ) ;126W=W+FlagW ( i i , 1 ) ;end ;127128end ;129i f FlagW ( i i , 1 ) ~=0130ManipP=P ( : , : , i i ) ;131ManipP ( : , j j ) =[P( 2 , j j , i i ) ,P( 1 , j j , i i ) ,P( 3 ,jj , i i ) ] ;132i f l e x i m i n ( p l u r a l i t y ( ManipP ( : , : ) , n ) ,P ( : ,j , i ) )<l e x i m i n ( p l u r a l i t y (P ( : , : , i i ) , n ) ,P(: , j , i ))133Flag1 ( i i , 1 ) =1;166134manipSuccess ( i i , j j ) =1;135end ;136i f l e x i m i n ( p l u r a l i t y ( ManipP ( : , : ) , n ) ,P ( : ,j , i ) )>l e x i m i n ( p l u r a l i t y (P ( : , : , i i ) , n ) ,P(: , j , i ))137Flag3 ( i i , 1 ) =1;end ;138end ;139140end ;141i f sum ( Flag3 )==0 && sum ( Flag1 )~=0for i i =1:K142i f Flag1 ( i i , 1 )==1143144WS=WS+FlagW ( i i , 1 ) ;end ;145end ;146147end ;148i f WS~=0for i i =1:K149for j j =1:n150i f EqVoter ( i i , j j )==1151152stimulV ( i i , j j )=WS/W;end ;153end ;154end ;155end ;156157end ;167158end ;159s t i m u l ( i , 1 )=max( stimulV ( i , : ) ) ;160 end ;161162 S t i m u l=zeros (K, 1 ) ;163 for i =1:K164S t i m u l ( i , 1 )=s t i m u l ( i , 1 ) * f a c t o r i a l ( n ) / ( f a c t o r i a l (AEC( i, 1 ) ) * f a c t o r i a l (AEC( i , 2 ) ) * f a c t o r i a l (AEC( i , 3 ) ) * f a c t o r i a l(AEC( i , 4 ) ) * f a c t o r i a l (AEC( i , 5 ) ) * f a c t o r i a l (AEC( i , 6 ) ) ) ;165i f s t i m u l ( i , 1 ) ~=0166NK( i , 1 )=f a c t o r i a l ( n ) / ( f a c t o r i a l (AEC( i , 1 ) ) * f a c t o r i a l(AEC( i , 2 ) ) * f a c t o r i a l (AEC( i , 3 ) ) * f a c t o r i a l (AEC( i , 4 ) )* f a c t o r i a l (AEC( i , 5 ) ) * f a c t o r i a l (AEC( i , 6 ) ) ) ;167end ;168for j =1:ni f stimulV ( i , j )==0169170manipSuccess ( i , j ) =0;end ;171172end ;173ManipSuccess ( i , 1 )=max( manipSuccess ( i , : ) ) * f a c t o r i a l ( n ) / (f a c t o r i a l (AEC( i , 1 ) ) * f a c t o r i a l (AEC( i , 2 ) ) * f a c t o r i a l (AEC(i , 3 ) ) * f a c t o r i a l (AEC( i , 4 ) ) * f a c t o r i a l (AEC( i , 5 ) ) *f a c t o r i a l (AEC( i , 6 ) ) ) ;174 end ;175176 ICNK( n −2)=sum (NK) / ( 6 ) ^n ;168177 ICS ( n −2)=sum ( S t i m u l ) / ( 6 ) ^n ;178 ICMS( n −2)=sum ( ManipSuccess ) / ( 6 ) ^n ;179 end ;B.3B.3.1Программы для реализации методов расширения предпочтенийМетод Leximin1 function [ LeximinRank ] = l e x i m i n ( x , p )2 Lmin=zeros ( 7 , 3 ) ;3 Leximin=zeros ( 7 , 3 ) ;4 Lmin ( 1 , : ) = [ 1 , 0 , 0 ] ;5 Lmin ( 2 , : ) = [ 1 , 1 , 0 ] ;6 Lmin ( 3 , : ) = [ 0 , 1 , 0 ] ;7 Lmin ( 4 , : ) = [ 1 , 0 , 1 ] ;8 Lmin ( 5 , : ) = [ 1 , 1 , 1 ] ;9 Lmin ( 6 , : ) = [ 0 , 1 , 1 ] ;10 Lmin ( 7 , : ) = [ 0 , 0 , 1 ] ;11 Leximin ( : , p ( 1 , 1 ) )=Lmin ( : , 1 ) ;12 Leximin ( : , p ( 2 , 1 ) )=Lmin ( : , 2 ) ;13 Leximin ( : , p ( 3 , 1 ) )=Lmin ( : , 3 ) ;14 for i =1:7i f i s e q u a l ( x , Leximin ( i , : ) )==11516LeximinRank=i ;end ;1718 end ;B.3.2Метод Leximax1691 function [ LeximaxRank ] = l e x i m a x ( x , p )2 Lmax=zeros ( 7 , 3 ) ;3 Leximax=zeros ( 7 , 3 ) ;4 Lmax ( 1 , : ) = [ 1 , 0 , 0 ] ;5 Lmax ( 2 , : ) = [ 1 , 1 , 0 ] ;6 Lmax ( 3 , : ) = [ 1 , 1 , 1 ] ;7 Lmax ( 4 , : ) = [ 1 , 0 , 1 ] ;8 Lmax ( 5 , : ) = [ 0 , 1 , 0 ] ;9 Lmax ( 6 , : ) = [ 0 , 1 , 1 ] ;10 Lmax ( 7 , : ) = [ 0 , 0 , 1 ] ;11 Leximax ( : , p ( 1 , 1 ) )=Lmax ( : , 1 ) ;12 Leximax ( : , p ( 2 , 1 ) )=Lmax ( : , 2 ) ;13 Leximax ( : , p ( 3 , 1 ) )=Lmax ( : , 3 ) ;14 for i =1:7i f i s e q u a l ( x , Leximax ( i , : ) )==11516LeximaxRank=i ;end ;1718 end ;B.3.3Алфавитное правило устранения множественности выбора1 function [ LexTieRank ] = l e x T i e ( x , p )2 xTB=zeros ( 1 , 3 ) ;3 k=0;4 for i =1:356i f k==0 && x ( 1 , i )==1xTB( 1 , i ) =1;1707k=k+1;end ;89 end ;10 L=zeros ( 3 , 3 ) ;11 L ( 1 , : ) = [ 1 , 0 , 0 ] ;12 L ( 2 , : ) = [ 0 , 1 , 0 ] ;13 L ( 3 , : ) = [ 0 , 0 , 1 ] ;14 LT ( : , p ( 1 , 1 ) )=L ( : , 1 ) ;15 LT ( : , p ( 2 , 1 ) )=L ( : , 2 ) ;16 LT ( : , p ( 3 , 1 ) )=L ( : , 3 ) ;17 for i =1:3i f i s e q u a l (xTB, LT( i , : ) )==11819LexTieRank=i ;end ;2021 end ;B.4B.4.1Программы расчета правил коллективного выбораПравило относительного большинства1 function [ winners , rank , S ] = p l u r a l i t y ( x , n )2 w i n n e r s=zeros ( 1 , 3 ) ;3 v=zeros ( 3 , 3 ) ;4 for i a =1:356for k =1:3for l =1:n7i f x ( k , l )==i a8v ( i a , k )=v ( i a , k ) +1;171end ;9end ;10end ;1112 end ;Для правила Борда вектор [1,0,0] заменить на [2,1,0], для правила вето – на[1,1,0].1 S=zeros ( 1 , 3 ) ;2 S ( 1 )=v ( 1 , : ) * [ 1 , 0 , 0 ] ’ ;3 S ( 2 )=v ( 2 , : ) * [ 1 , 0 , 0 ] ’ ;4 S ( 3 )=v ( 3 , : ) * [ 1 , 0 , 0 ] ’ ;56 Smax=max( S ) ;7 for i =1:38i f S ( i )==Smax9w i n n e r s ( i ) =1;10end ;11 end ;12 SS=sort ( S , ’ de s c e n d ’ ) ;13 i f SS ( 1 )==SS ( 2 ) && SS ( 2 )==SS ( 3 )14Su=SS ( 1 ) ;15 end ;16 i f SS ( 1 )==SS ( 2 ) && SS ( 2 )~=SS ( 3 )17Su=zeros ( 1 , 2 ) ;18Su ( 1 )=SS ( 1 ) ;19Su ( 2 )=SS ( 3 ) ;20 end ;17221 i f SS ( 1 )~=SS ( 2 ) && SS ( 2 )==SS ( 3 )22Su=zeros ( 1 , 2 ) ;23Su ( 1 )=SS ( 1 ) ;24Su ( 2 )=SS ( 3 ) ;25 end ;26 i f SS ( 1 )~=SS ( 2 ) && SS ( 2 )~=SS ( 3 )27Su=SS ;28 end ;2930 rank=zeros ( 1 , 3 ) ;31 [ k , l ]= s i z e ( Su ) ;32 for i =1: l33for j =1:334i f S ( j )==Su ( i )35rank ( j )=i ;end ;3637end ;38 end ;B.4.2Двухступенчатая мажоритарная система1 function [ winners , rank , S ] = r u n o f f ( p )2 w i n n e r s=zeros ( 1 , 3 ) ;3 win=zeros ( 1 , 3 ) ;4 [m, n]= s i z e ( p ) ;56 S=zeros ( 2 , 3 ) ;1737 Sc=zeros ( 1 , 3 ) ;8 for i =1:nfor j =1:39i f p ( 1 , i )==j1011Sc ( j )=Sc ( j ) +1;end ;12end ;1314 end ;15 S ( 1 , : )=Sc ;1617 h=0;18 for i =1:319i f Sc ( i )>n/220win ( i ) =1;21h=h+1;22end ;23 end ;2425 i f h==126w i n n e r s=win ;27rank =[2 ,2 ,2] − w i n n e r s ;28 else29f i n=zeros ( 1 , 3 ) ;30f i n a l i s t s =zeros ( 1 , 3 ) ;31k=0;32Smax=max( Sc ) ;1743334while k<2for i =1:3i f Sc ( i )==Smax3536f i n ( i ) =1;37k=k+1;38Sc ( i ) =0;39i f k==240f i n a l i s t s =f i n ;end41end ;4243end ;44Smax=max( Sc ) ;45end ;4647P=r e d u c t i o n ( p , f i n a l i s t s ) ;48S c o r e 1 =0;49for i =1:ni f P( 1 , i )==P( 1 , 1 ) ;5051S c o r e 1=S c o r e 1 +1;end ;5253end ;54S c o r e 2=n−S c o r e 1 ;5556i f Score1 >S c o r e 257w i n n e r s (P( 1 , 1 ) ) =1;58f i n a l i s t s (P( 1 , 1 ) )= f i n a l i s t s (P( 1 , 1 ) ) +1;175rank =[3 ,3 ,3] − f i n a l i s t s ;5960end ;61i f Score1 <S c o r e 262w i n n e r s (P( 2 , 1 ) ) =1;63f i n a l i s t s (P( 2 , 1 ) )= f i n a l i s t s (P( 2 , 1 ) ) +1;64rank =[3 ,3 ,3] − f i n a l i s t s ;65end ;66i f S c o r e 1==S c o r e 267w i n n e r s= f i n a l i s t s ;68rank =[2 ,2 ,2] − f i n a l i s t s ;69end ;70S ( 2 ,P( 1 , 1 ) )=S c o r e 1 ;71S ( 2 ,P( 2 , 1 ) )=S c o r e 2 ;72 end ;B.4.3Правило передачи голосов1 function [ winners , rank , S ] = s t v ( p )2 w i n n e r s=zeros ( 1 , 3 ) ;3 S=zeros ( 3 , 3 ) ;4 rank=zeros ( 1 , 3 ) ;5 [m, n]= s i z e ( p ) ;6 f i n a l i s t s =[1 ,1 ,1];7 sumf=sum ( f i n a l i s t s ) ;8 k=0;9 q=zeros ( 1 , 3 ) ;1017611 while sumf>012k=k+1;13p r e f i n a l i s t s= f i n a l i s t s ;14Sc=zeros ( 1 , 3 ) ;15for i =1:nfor j =1:316i f p ( 1 , i )==j1718Sc ( j )=Sc ( j ) +1;end ;19end ;2021end ;2223S ( k , : ) =Sc ;24for j =1:325i f f i n a l i s t s ( j )==026Sc ( j ) =100;end2728end ;29for j =1:3i f Sc ( j )==min ( Sc )3031f i n a l i s t s ( j ) =0;32q ( 1 , j )=k ;end ;3334end ;35sumf=sum ( f i n a l i s t s ) ;36i f sumf==017737w i n n e r s=p r e f i n a l i s t s ;else3839p=r e d u c t i o n ( p , f i n a l i s t s ) ;end ;4041 end ;4243 for j =1:3rank ( 1 , j )=max( q )+1−q ( 1 , j ) ;4445 end ;B.4.4Правило Коупленда1 function [ winners , rank , S ] = c o p e l a n d ( x )2 w i n n e r s=zeros ( 1 , 3 ) ;3 [ ~ ,MG]= m a j o r i t y ( x ) ;45 S=zeros ( 1 , 3 ) ;6 S ( 1 )=sum (MG( : , 1 ) ) ;7 S ( 2 )=sum (MG( : , 2 ) ) ;8 S ( 3 )=sum (MG( : , 3 ) ) ;9 Smax=max( S ) ;10 for i =1:311i f S ( i )==Smax12w i n n e r s ( i ) =1;13end ;14 end ;15 SS=sort ( S , ’ de s c e n d ’ ) ;17816 i f SS ( 1 )==SS ( 2 ) && SS ( 2 )==SS ( 3 )17Su=SS ( 1 ) ;18 end ;19 i f SS ( 1 )==SS ( 2 ) && SS ( 2 )~=SS ( 3 )20Su=zeros ( 1 , 2 ) ;21Su ( 1 )=SS ( 1 ) ;22Su ( 2 )=SS ( 3 ) ;23 end ;24 i f SS ( 1 )~=SS ( 2 ) && SS ( 2 )==SS ( 3 )25Su=zeros ( 1 , 2 ) ;26Su ( 1 )=SS ( 1 ) ;27Su ( 2 )=SS ( 3 ) ;28 end ;29 i f SS ( 1 )~=SS ( 2 ) && SS ( 2 )~=SS ( 3 )30Su=SS ;31 end ;32 rank=zeros ( 1 , 3 ) ;33 [ ~ , l ]= s i z e ( Su ) ;34 for i =1: l35for j =1:336i f S ( j )==Su ( i )37rank ( j )=i ;end ;3839end ;40 end ;179B.5B.5.1Вспомогательные программыПрограмма построения сужения профиля по множеству1 function [ r e d u c e d ] = r e d u c t i o n ( p r o f i l e , f i n a l i s t s )2 [m, n]= s i z e ( p r o f i l e ) ;3 mr=sum ( f i n a l i s t s ) ;4 r e d u c e d=zeros (mr , n ) ;5 for j =1:n6k=1;7for i =1:mi f f i n a l i s t s ( p r o f i l e ( i , j ) )==189r e d u c e d ( k , j )=p r o f i l e ( i , j ) ;10k=k+1;end ;11end ;1213 end ;B.5.2Программа построения простого и взвешенного графа мажоритарного отношения1 function [WMG,MG] = m a j o r i t y (P)2 [m, n]= s i z e (P) ;3 WMG=zeros ( 3 , 3 ) ;4 MG=zeros ( 3 , 3 ) ;56 for j =1:n78for l =1:3i f P( l , j )==11809r 1=l ;10end ;11i f P( l , j )==212r 2=l ;13end ;14i f P( l , j )==315r 3=l ;end ;1617end ;18i f r1>r 219WMG( 1 , 2 )=WMG( 1 , 2 ) +1;20end ;21i f r1<r 222WMG( 2 , 1 )=WMG( 2 , 1 ) +1;23end ;24i f r1>r 325WMG( 1 , 3 )=WMG( 1 , 3 ) +1;26end ;27i f r1<r 328WMG( 3 , 1 )=WMG( 3 , 1 ) +1;29end ;30i f r2>r 331WMG( 2 , 3 )=WMG( 2 , 3 ) +1;32end ;33i f r2<r 334WMG( 3 , 2 )=WMG( 3 , 2 ) +1;181end ;3536end ;3738for i =1:3for j =1:339i f WMG( i , j )>WMG( j , i )4041MG( i , j ) =1;42end ;43i f WMG( i , j )<WMG( j , i )44MG( i , j ) =−1;end ;45end ;4647end ;B.5.3Программа устранения множественности выбора по алфавитному правилу1 function [ r e s o l u t e ] = t i e B r e a k ( x )2 r e s o l u t e=zeros ( 1 , 3 ) ;3 k=0;4 for i =1:35i f k==0 && x ( 1 , i )==16r e s o l u t e ( 1 , i ) =1;7k=k+1;8end ;9 end ;182.