สร้างเมทริกซ์แน่นอนบวกที่เป็นสมมาตรพร้อมรูปแบบการระบุช่องว่างที่กำหนดไว้ล่วงหน้า


9

ฉันกำลังพยายามสร้างเมทริกซ์สหสัมพันธ์ (symmetric psd) ด้วยโครงสร้าง sparsity ที่ระบุไว้ล่วงหน้า (ระบุโดยกราฟบนโหนด ) โหนดที่เชื่อมต่อในกราฟมีความสัมพันธ์ส่วนที่เหลือทั้งหมดคือ 0 และเส้นทแยงมุมคือ 1 ทั้งหมดp×ppρU(0,1)

ฉันพยายามสร้างเมทริกซ์นี้หลายครั้ง แต่ไม่ค่อยได้เมทริกซ์สหสัมพันธ์ที่ถูกต้อง

มีวิธีที่ฉันสามารถรับประกันเมทริกซ์สหสัมพันธ์หรือไม่? โปรดทราบว่าฉันสามารถมีความสัมพันธ์เชิงบวกเท่านั้นดังนั้นเป็นต้นไม่ใช่ตัวเลือกρU(1,1)

ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก!


บางทีฟังก์ชั่น nearPD ของแพ็คเกจ Matrix ใน R สามารถช่วยได้
niandra82

อะไรคือขอบเขตความกระจ่างที่คุณกำหนดไว้สำหรับคุณ? ข้อมูลของคุณควรเป็นแบบไบนารีหรือไม่ต่อเนื่อง
ttnphns

@ niandra82: nearPD ไม่ดีเท่าที่มันจะทำลายขอบเขตของเมทริกซ์
Blade Runner

1
โดยทั่วไปไม่มีการแจกแจงเมทริกซ์ดังที่อธิบายไว้ในคำถามนี้ พิจารณาเช่นกรณีที่มีสามสัมประสิทธิ์\ถ้าและแล้วถ้าหากว่าเมทริกซ์นั้นเป็นบวกแน่นอน แต่แล้วคุณไม่สามารถมีทั้งและ(0,1) 3×3ρ,σ,ττ=0ρ>0,σ>0ρ2+σ2<1ρU(0,1)σU(0,1)
whuber

3
แล้วทำไมไม่สร้างเมทริกซ์สหสัมพันธ์ก่อน จากนั้นสร้างดัชนี symetric สำหรับเมทริกซ์นั้นโดยที่คุณบังคับให้องค์ประกอบที่จัดทำดัชนีเป็น 0 Sparcity จะถูกระบุด้วยขนาดของดัชนีและคุณสามารถรวม randommess ผ่านฟังก์ชันเช่นตัวอย่างใน r ไม่ว่าคุณจะบังคับให้มีองค์ประกอบแนวทแยงเป็นจำนวนเท่าใดก็ตาม matix จะยังคงเป็น pd อยู่ดี
Zachary Blumenfeld

คำตอบ:


2

ปิด แต่ไม่มีซิการ์สำหรับ @Rodrigo de Azevedo

วิธีแก้ปัญหาคือการใช้การเขียนโปรแกรม semidefinite เพื่อหาค่าสูงสุดและค่าต่ำสุด (ขึ้นอยู่กับการไม่เป็นค่าลบ),ของเช่นเมทริกซ์สหสัมพันธ์ที่มีรูปแบบการกำหนดเป็นบวก semidefinite (psd) ค่าทั้งหมดของเช่นจะสร้างเมทริกซ์ psd (แบบฝึกหัดสำหรับผู้อ่าน) ρmaxρminρρρmaxρρmax

ดังนั้นคุณต้องเลือกการกระจายของซึ่งสามารถรับค่าในหรือคุณต้องใช้การยอมรับ / ปฏิเสธและปฏิเสธค่าที่สร้างขึ้นของที่ไม่ได้สร้างขึ้น เมทริกซ์ psdρ[ρmax,ρmax]ρ

ตัวอย่างสำหรับเมทริกซ์ขนาด 4 คูณ 4 โดยใช้ YALMIP ภายใต้ MATLAB

sdpvar rho % declare rho to be a scalar variable
% find maximum value of rho (by minimizing -rho) subject to prescribed matrix being psd.
optimize([1 0 rho 0;0 1 rho 0;rho rho 1 rho;0 0 rho 1] >= 0,-rho) 
% find minimum value of rho subject to prescribed matrix being psd and rho being >= 0.
optimize([[1 0 rho 0;0 1 rho 0;rho rho 1 rho;0 0 rho 1] >= 0,rho >= 0],rho) 

ผลลัพธ์: สูงสุด rho = 0.57735, rho ต่ำสุด = 0 มันชัดเจนว่าศูนย์จะเป็นค่าต่ำสุดของ rho ภายใต้ rho ที่ไม่ได้รับการถ่ายทอดและเมทริกซ์ที่กำหนดเป็น psd โดยไม่คำนึงถึงมิติหรือรูปแบบการกระจาย ดังนั้นจึงเป็นสิ่งที่ไม่จำเป็นที่จะเรียกใช้การเพิ่มประสิทธิภาพ semidefinite เพื่อหาค่าไม่ติดลบต่ำสุดของ\ρ


4
นี่เป็นการตีความที่น่าสนใจของคำถาม: สมมติว่าสัมประสิทธิ์นอกแนวทแยงที่ไม่ใช่ศูนย์ทั้งหมดมีค่าเท่ากัน (ดังนั้นจึงทำให้ปัญหาง่ายขึ้นอย่างมาก) ยังไม่ชัดเจนว่าเป็นการตีความที่ตั้งใจหรือว่าสัมประสิทธิ์ที่ไม่เป็นศูนย์ในแนวทแยงมุมทั้งหมดควรจะเป็นความจริงที่เป็นอิสระจากการแจกแจงทั่วไป
whuber

นั่นคือการตีความที่ฉันทำ ตอนนี้ที่คุณพูดถึงมันฉันสามารถเห็นการตีความที่เป็นไปได้ที่แตกต่างกัน อย่างน้อยการตีความของฉันมีเหตุมีผลทำให้เกิดปัญหาที่ค่อนข้างชัดเจน ฉันคิดว่าปัญหาสามารถกำหนดขึ้นมาได้ซึ่งโซลูชันของฉันยังไม่ได้วิจัยเพื่อหาค่าสูงสุดของρเช่นนั้นองค์ประกอบทั้งหมดที่ไม่เป็นศูนย์นอกแนวทแยงมุมของหนึ่งสามเหลี่ยมของเมทริกซ์สหสัมพันธ์สามารถเติมได้โดยไม่จำเป็นต้องเท่ากับค่าลบที่ไม่จำเป็น ค่านั้นและจำเป็นต้องทำให้เมทริกซ์ที่มีประชากรเต็มเป็น psd
Mark L. Stone

0

เมทริกซ์สหสัมพันธ์คือสมมาตร, semidefinite บวกและมี 1อยู่ในแนวทแยงมุมหลัก หนึ่งสามารถหาn×nเมทริกซ์เชิงความสัมพันธ์โดยการแก้โปรแกรม semidefinite (SDP) ต่อไปนี้โดยที่ฟังก์ชันวัตถุประสงค์นั้นเป็นอิสระตามอำเภอใจกล่าวคือฟังก์ชันศูนย์

minimizeOn,Xsubject tox11=x22==xnn=1XOn

หากมีข้อ จำกัด เพิ่มเติมเช่นข้อ จำกัด sparsity

xij=0 for all (i,j)Z[n]×[n]

ข้อ จำกัด และไม่ใช่การปฏิเสธ XOnจากนั้นหนึ่งอันจะแก้ไข SDP ต่อไปนี้

minimizeOn,Xsubject tox11=x22==xnn=1xij=0 for all (i,j)Z[n]×[n]XOnXOn

3×3 ตัวอย่าง

สมมติว่าเราต้องการมี x13=0 และ x12,x230. นี่คือสคริปต์MATLAB + CVX

cvx_begin sdp

    variable X(3,3) symmetric

    minimize( trace(zeros(3,3)*X) )
    subject to

        % put ones on the main diagonal
        X(1,1)==1
        X(2,2)==1
        X(3,3)==1

        % put a zero in the northeast and southwest corners
        X(1,3)==0

        % impose nonnegativity
        X(1,2)>=0
        X(2,3)>=0

        % impose positive semidefiniteness
        X >= 0

cvx_end

เรียกใช้สคริปต์

Calling sedumi: 8 variables, 6 equality constraints
------------------------------------------------------------
SeDuMi 1.21 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 6, order n = 6, dim = 12, blocks = 2
nnz(A) = 8 + 0, nnz(ADA) = 36, nnz(L) = 21
 it :     b*y       gap    delta  rate   t/tP*  t/tD*   feas cg cg  prec
  0 :            3.00E+000 0.000
  1 : -1.18E-001 6.45E-001 0.000 0.2150 0.9000 0.9000   1.86  1  1  1.2E+000
  2 : -6.89E-004 2.25E-002 0.000 0.0349 0.9900 0.9900   1.52  1  1  3.5E-001
  3 : -6.48E-009 9.72E-007 0.097 0.0000 1.0000 1.0000   1.01  1  1  3.8E-006
  4 : -3.05E-010 2.15E-009 0.000 0.0022 0.9990 0.9990   1.00  1  1  1.5E-007
  5 : -2.93E-016 5.06E-015 0.000 0.0000 1.0000 1.0000   1.00  1  1  3.2E-013

iter seconds digits       c*x               b*y
  5      0.3   5.8  0.0000000000e+000 -2.9302886987e-016
|Ax-b| =  1.7e-015, [Ay-c]_+ =  6.1E-016, |x|= 2.0e+000, |y|= 1.5e-015

Detailed timing (sec)
   Pre          IPM          Post
1.563E-001    2.500E-001    1.094E-001    
Max-norms: ||b||=1, ||c|| = 0,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.
------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +0

มาดูกันว่า CVX โซลูชันใดที่พบ

>> X

X =

    1.0000    0.4143         0
    0.4143    1.0000    0.4143
         0    0.4143    1.0000

เมทริกซ์นี้เป็นค่าบวกเชิงบวกหรือไม่? แน่นอนบวก?

>> rank(X)

ans =

     3

>> eigs(X)

ans =

    1.5860
    1.0000
    0.4140

เป็นบวกแน่นอนตามที่คาดไว้ เราสามารถหาเมทริกซ์สหสัมพันธ์เชิงบวกแบบกึ่งไม่มีที่สิ้นสุดได้โดยเลือกฟังก์ชันวัตถุประสงค์แบบไม่เป็นศูนย์


เพราะในเว็บไซต์นี้ "สร้าง" จะเข้าใจได้ว่าหมายถึง "การดึงจากการแจกแจงแบบสุ่ม" คุณช่วยอธิบายว่าโค้ดของคุณสร้างเมทริกซ์สหสัมพันธ์แบบสุ่มได้อย่างไรและระบุการกระจายที่พวกเขาทำตามได้อย่างไร
whuber

@whuber OP ขอให้เป็นไปไม่ได้ คุณให้ความเห็นว่าในวันที่ 1 มกราคม 2015 หากคุณต้องการสร้างเมทริกซ์สหสัมพันธ์แบบสุ่มให้สร้างเมทริกซ์สแควร์แบบสุ่มและใช้ในฟังก์ชันวัตถุประสงค์ในโปรแกรม semidefinite ด้านบน หรือสร้างการรับรู้ของตัวแปรสุ่มที่เหมือนกันทั่วคิวบ์
[1,1](n2)
ใส่ไว้ในรายการนอกแนวทแยงของเมทริกซ์ (ความสัมพันธ์) ด้วย 1อยู่ในแนวทแยงมุมหลักและละทิ้งสิ่งที่ไม่ใช่ semidefinite ที่เป็นบวก หากมีข้อ จำกัด ที่ไม่เป็นค่าลบให้สุ่มตัวอย่างลูกบาศก์อย่างสม่ำเสมอ
[0,1](n2)
Rodrigo de Azevedo

3
@whuber นี่คือ3D elliptope [png] ซึ่งจับคู่กับชุดของ3×3เมทริกซ์สหสัมพันธ์ สิ่งที่ OP ต้องการคือการตัดจุดไข่ปลาด้วย octant เชิงลบแล้วตัดมันด้วยระนาบของแบบฟอร์มxij=0. ถ้าเป็นเมทริกซ์0แล้วมันจะต้องอยู่ในการตกแต่งภายในของ elliptope การใช้ SDP กับฟังก์ชั่นวัตถุประสงค์ที่ไม่ใช่ศูนย์หนึ่งสามารถสุ่มตัวอย่างพื้นผิวของ elliptope เมื่อ elliptope นูนออกมาการรวมกันของจุดผิวจะทำแผนที่กับเมทริกซ์สหสัมพันธ์
Rodrigo de Azevedo

1
นั่นเป็นวิธีที่ยอดเยี่ยมในการอธิบายสถานการณ์
whuber

3
คุณถูกต้องเกี่ยวกับปริมาณที่สัมพันธ์กัน นั่นคือสาเหตุที่ปัญหานี้เป็นเรื่องยาก
whuber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.