คำถามติดแท็ก optimization

แท็กนี้มีไว้สำหรับคำถามเกี่ยวกับวิธีการลด (จำกัด หรือไม่ จำกัด ) การย่อขนาดหรือขยายใหญ่สุดของฟังก์ชัน

17
มีตัวแก้ปัญหาการเขียนโปรแกรมแบบไม่เชิงเส้นคุณภาพสูงสำหรับ Python หรือไม่?
ฉันมีปัญหาการเพิ่มประสิทธิภาพทั่วโลกที่ไม่ท้าทายเพื่อแก้ปัญหา ปัจจุบันผมใช้กล่องเครื่องมือเพิ่มประสิทธิภาพของ MATLAB (โดยเฉพาะfmincon()กับอัลกอริทึม = 'sqp') ซึ่งมีประสิทธิภาพมาก อย่างไรก็ตามรหัสของฉันส่วนใหญ่อยู่ใน Python และฉันก็ชอบที่จะเพิ่มประสิทธิภาพใน Python ด้วยเช่นกัน มีตัวแก้ NLP ที่มีการผูก Python ที่สามารถแข่งขันได้fmincon()หรือไม่ มันจะต้อง สามารถรับมือกับความไม่เสมอภาคและความไม่เท่าเทียมกันได้ ไม่ต้องการให้ผู้ใช้จัดหายาโคบ ไม่เป็นไรหากไม่รับประกันว่าจะมีประสิทธิภาพระดับโลก ( fmincon()ไม่) fmincon()ฉันกำลังมองหาบางสิ่งบางอย่างที่ทนทานลู่ไปยังท้องถิ่นที่เหมาะสมแม้สำหรับความท้าทายปัญหาและแม้ว่ามันจะช้ากว่าเล็กน้อย ฉันได้พยายามแก้หลายที่ให้บริการผ่าน OpenOpt และพบว่าพวกเขาจะด้อยกว่าของ fmincon/sqpMATLAB เพียงเพื่อเน้นฉันมีสูตรเวิ้งว้างและแก้ปัญหาที่ดี เป้าหมายของฉันคือการเปลี่ยนภาษาเพื่อให้เวิร์กโฟลว์มีความคล่องตัวมากขึ้น เจฟฟ์ชี้ให้เห็นว่าคุณลักษณะบางอย่างของปัญหาอาจเกี่ยวข้องกัน พวกเขาคือ: 10-400 ตัวแปรการตัดสินใจ 4-100 ข้อ จำกัด ความเท่าเทียมกันของพหุนาม (ดีกรีพหุนามมีช่วงตั้งแต่ 1 ถึงประมาณ 8) จำนวนข้อ จำกัด ของความไม่เท่าเทียมกันที่มีเหตุผลเท่ากับจำนวนตัวแปรการตัดสินใจประมาณสองเท่า ฟังก์ชั่นวัตถุประสงค์เป็นหนึ่งในตัวแปรการตัดสินใจ ชาวจาโคเบียนแห่งข้อ จำกัด ความเท่าเทียมมีความหนาแน่นสูงเช่นเดียวกับชาวจาโคเบียนแห่งข้อ จำกัด …

3
BFGS เทียบกับวิธีการไล่ระดับสีคอนจูเกต
ฉันควรพิจารณาเรื่องใดบ้างเมื่อเลือกระหว่าง BFGS และการไล่ระดับสีแบบคอนจูเกตเพื่อเพิ่มประสิทธิภาพ ฟังก์ชั่นที่ฉันพยายามปรับให้เข้ากับตัวแปรเหล่านี้คือฟังก์ชันเลขชี้กำลัง อย่างไรก็ตามฟังก์ชั่นวัตถุประสงค์ที่แท้จริงเกี่ยวข้องกับการรวมกลุ่มเหนือสิ่งอื่นใดและมีค่าใช้จ่ายสูงหากช่วยได้

8
แพคเกจซอฟต์แวร์สำหรับการเพิ่มประสิทธิภาพที่ จำกัด ?
ฉันกำลังมองหาที่จะแก้ปัญหาการเพิ่มประสิทธิภาพข้อ จำกัด ที่ฉันรู้ขอบเขตของตัวแปรบางตัว (โดยเฉพาะข้อ จำกัด แบบกล่อง) argminuf(u,x)arg⁡minuf(u,x) \arg \min_u f(u,x) ภายใต้ a ≤ d ( u , x ) ≤ bc(u,x)=0c(u,x)=0 c(u,x) = 0 a≤d(u,x)≤ba≤d(u,x)≤b a \le d(u,x) \le b โดยที่ยูuuคือเวกเตอร์ของตัวแปรการออกแบบxxxเป็นเวกเตอร์ของตัวแปรสถานะและc ( u , x )c(u,x)c(u,x)เป็นข้อ จำกัด ด้านความเท่าเทียมกัน (โดยทั่วไปคือ PDE) ข้อ จำกัด ด้านล่างและด้านบนaaaและขbbอาจเป็นตัวแปรเชิงพื้นที่ แพคเกจใดสามารถจัดการระบบของฟอร์มนี้

3
ทำไมการไม่นูนจึงควรมีปัญหาในการปรับให้เหมาะสม
ฉันประหลาดใจมากเมื่อฉันเริ่มอ่านบางอย่างเกี่ยวกับการปรับให้เหมาะสมแบบไม่ต้องนูนและฉันเห็นข้อความเช่นนี้: ปัญหาในทางปฏิบัติที่มีความสำคัญหลายอย่างนั้นไม่ใช่แบบนูนและปัญหาที่ไม่ใช่แบบนูนส่วนใหญ่นั้นยากที่จะแก้ไขได้ในเวลาที่เหมาะสม (ที่มา ) หรือ โดยทั่วไปแล้วมันยากที่จะหา NP ในท้องถิ่นและอัลกอริธึมหลายอย่างอาจติดอยู่ที่จุดอาน (ที่มา ) ฉันกำลังทำการเพิ่มประสิทธิภาพแบบไม่นูนทุกวัน - คือการผ่อนคลายของเรขาคณิตโมเลกุล ฉันไม่เคยคิดว่ามันเป็นสิ่งที่ยุ่งยากช้าและมีแนวโน้มที่จะติดอยู่ ในบริบทนี้เรามีพื้นผิวไม่นูนหลายมิติอย่างชัดเจน (> 1,000 องศาอิสระ) เราใช้เทคนิคการเรียงลำดับครั้งแรกส่วนใหญ่ที่ได้มาจากการสืบเชื้อสายที่สูงชันและการดับอย่างแรงเช่นไฟซึ่งรวมกันในไม่กี่ร้อยขั้นตอนถึงขั้นต่ำในท้องถิ่น (น้อยกว่าจำนวน DOFs) ฉันคาดว่าด้วยการเพิ่มเสียงสุ่มมันต้องแข็งแกร่งเหมือนนรก (การเพิ่มประสิทธิภาพทั่วโลกเป็นเรื่องที่แตกต่าง) ฉันไม่สามารถจินตนาการได้ว่าพื้นผิวพลังงานที่มีศักยภาพควรมีลักษณะอย่างไรเพื่อทำให้วิธีการปรับให้เหมาะสมเหล่านี้ติดอยู่หรือค่อยๆบรรจบกัน เช่น PES ทางพยาธิวิทยาที่มาก (แต่ไม่ได้เกิดจากการไม่นูน) เป็นเกลียวนี้แต่มันก็ไม่ได้เป็นปัญหาใหญ่ คุณสามารถยกตัวอย่างที่เป็นตัวอย่างของ PES ที่ไม่ใช่ทางพยาธิวิทยาได้หรือไม่? ดังนั้นฉันไม่ต้องการโต้แย้งกับคำพูดข้างต้น ค่อนข้างฉันรู้สึกว่าฉันขาดอะไรบางอย่างที่นี่ บางทีบริบท

3
เป็นที่ทราบกันดีหรือไม่ว่าปัญหาการเพิ่มประสิทธิภาพบางอย่างเทียบเท่ากับการเลื่อนเวลา?
ที่กำหนดให้รัฐที่ต้องการและพารามิเตอร์กูพิจารณาปัญหาในการหารัฐและควบคุมเพื่อลดการทำงาน ภายใต้ข้อ จำกัด \ start {equation} Ay = u \ end {} สมการ ที่เรียบง่ายสำหรับเราสามารถคิดของY, y_0 มึง \ in \ mathbb R ^ nและA \ ใน \ mathbb R ^ {n \ times n}Y0y0y_0β∈ Rβ∈R\beta \in \mathbb RYyyยูuuY=U y,y0,คุณ∈RnA∈Rn×n12∥ y- y0∥2+ β2∥ u ∥212‖y−y0‖2+β2‖u‖2\begin{equation} \frac{1}{2} \| y - y_0 \|^2 + …

3
การแก้ปัญหาการเพิ่มประสิทธิภาพที่ไม่เชิงเส้นแบบไม่มีข้อ จำกัด บน GPU
ฉันกำลังพยายามแก้ปัญหาการเพิ่มประสิทธิภาพแบบไม่เชิงเส้นที่ไม่มีข้อ จำกัด บน GPU (CUDA) ฟังก์ชันวัตถุประสงค์เป็นฟังก์ชันที่ไม่เชิงเส้นอย่างราบรื่นและการไล่ระดับสีนั้นค่อนข้างถูกในการคำนวณเชิงวิเคราะห์ดังนั้นฉันไม่จำเป็นต้องกังวลกับการประมาณเชิงตัวเลข ฉันต้องการที่จะแก้ปัญหานี้โดยส่วนใหญ่ fp32 maths ops (ด้วยเหตุผลต่าง ๆ ) ดังนั้นวิธีการเพิ่มประสิทธิภาพแบบไม่เชิงเส้นที่มีประสิทธิภาพมากขึ้นเมื่อเทียบกับข้อผิดพลาดในการปัดเศษขึ้นในขณะที่มีประสิทธิภาพที่ดี? (เช่นคอนจูเกตการไล่ระดับสี / เสมือนนิวตัน / ภูมิภาคที่เชื่อถือได้) มีใครเคยลองใช้ BFGS บน GPU ด้วยผลลัพธ์ที่ดีหรือไม่? BTW, Hessian ถ้าจำเป็นมีขนาดค่อนข้างเล็กในกรณีของฉัน (โดยทั่วไป <64x64) แต่ฉันต้องแก้ปัญหาการเพิ่มประสิทธิภาพขนาดเล็กหลายพันรายการพร้อมกันนี้

3
ระยะทางแบบยุคลิดใน Octave
ฉันอยากรู้ว่ามีวิธีที่รวดเร็วในการคำนวณระยะทางแบบยุคลิดของเวกเตอร์สองตัวใน Octave หรือไม่ ดูเหมือนว่าไม่มีฟังก์ชั่นพิเศษสำหรับสิ่งนั้นดังนั้นฉันควรใช้สูตรด้วยsqrtหรือไม่

5
การค้นหาขั้นต่ำทั่วโลกของฟังก์ชั่น 2D ที่ราบรื่นไม่มีขอบเขตและไม่มีค่าใช้จ่ายในการประเมิน
ฉันมีฟังก์ชั่น non-convex 2-D แบบ จำกัด ซึ่งฉันต้องการค้นหาขั้นต่ำ ฟังก์ชั่นค่อนข้างเรียบ การประเมินค่าใช้จ่ายสูง ข้อผิดพลาดที่ยอมรับได้คือประมาณ 3% ของโดเมนของฟังก์ชันในแต่ละแกน ฉันพยายามเรียกใช้การใช้อัลกอริธึม DIRECT ในไลบรารี NLOPT แต่มันก็ไม่ได้ให้การปรับปรุงที่ดีกว่าการค้นหาแรงเดรัจฉานในแง่ของจำนวนการประเมินฟังก์ชันที่จำเป็นสำหรับความแม่นยำที่ต้องการและมีค่าผิดปกติบางอย่าง ฉันควรพิจารณาตัวแก้ไขการเพิ่มประสิทธิภาพระดับโลกอื่น ๆ แบบใด

6
ข้อ จำกัด ที่เกี่ยวข้องกับ
สมมติ นาทีv e c (คุณ)ขึ้นอยู่กับ Uฉัน, J≤ สูงสุด{ Uฉัน, k, Uk , j} ,i , j , k = 1 , … , nminAvec(U)subject to Ui,j≤max{Ui,k,Uk,j},i,j,k=1,…,n\begin{align*} \min A &\mathrm{vec}(U) \\ &\text{subject to } U_{i,j} \leq \max\{U_{i,k}, U_{k,j}\}, \quad i,j,k = 1, \ldots, n \end{align*} โดยที่เป็นเมทริกซ์n × nแบบสมมาตรและv e c ( …

3
การแข่งขันการเขียนโปรแกรมทางวิทยาศาสตร์
ฉันมักจะแข่งขันกันอย่างต่อเนื่องในชื่อ "การแข่งขันการเขียนโปรแกรม" ซึ่งคุณแก้ปัญหาอัลกอริทึมที่ยากกับรหัสของคุณเองและทักษะการแก้ปัญหาในช่วงเวลา จำกัด สำหรับตัวอย่างอ้างอิงของสิ่งที่อาจมีหน้าตาให้ค้นหาการแข่งขันเช่น Google Code Jam หรือ ACM-ICPC (ถ้าคุณรู้ว่าการแข่งขันการเขียนโปรแกรมคืออะไรคุณสามารถข้ามย่อหน้าต่อไปนี้) ในการแข่งขันเหล่านี้คุณสามารถแข่งขันเป็นรายบุคคลหรือเป็นทีมได้ที่ไซต์จริงหรือออนไลน์และเป้าหมายคือการแก้ปัญหาให้ได้มากที่สุดก่อนการแข่งขันจะสิ้นสุดลง ปัญหาแต่ละข้อเกี่ยวข้องกับข้อ จำกัด บางอย่างที่โซลูชันของคุณต้องปฏิบัติตามเช่นเวลาใช้งานหน่วยความจำที่ใช้ ฯลฯ ปัญหานั้นอาจมีตั้งแต่ "วิธีแก้ปัญหาที่ชัดเจน" ถึง "ต้องการความรู้ที่ดี เป้าหมายหลักคือความสนุก แต่บางครั้งความสำเร็จอาจนำไปสู่รางวัลเงินสดเกียรติยศและบางทีแม้กระทั่งการสัมภาษณ์กับนายหน้าของ บริษัท ชั้นนำอย่าง Google (ถ้าคุณข้ามย่อหน้าข้างต้นหยุดข้ามเพราะคำถามของฉันมาที่นี่) ผ่านการแข่งขันการเขียนโปรแกรมฉันสามารถพัฒนาความสนใจของแท้สำหรับอัลกอริทึมวิทยาการคอมพิวเตอร์โดยทั่วไปและความหมายโดยรวมของความหมายเมื่อมันมาถึงการเขียนโปรแกรมและพัฒนาทักษะการแก้ปัญหาของฉัน ฉันต้องการทำเช่นนั้นในการคำนวณทางวิทยาศาสตร์เช่นกัน คำถาม: มีการแข่งขันใด ๆ ในหลอดเลือดดำเดียวกันกับชนิดอัลกอริธึมล้วนๆหรือไม่ แต่เน้นที่การวิเคราะห์เชิงตัวเลขการปรับให้เหมาะสมและอื่น ๆ หรือไม่? ฉันลองใช้ Google แล้ว แต่หาไม่เจอในแวบแรก ... ภาคผนวก:ฉันได้รับคำแนะนำให้ตรวจสอบ Project Euler แต่นั่นไม่ใช่สิ่งที่ฉันกำลังมองหา สิ่งที่ฉันต้องการคือเวทีที่จะฝึกการใช้ตัวเลขที่ "สกปรก" มากกว่าเช่นการสร้างสรรค์ด้วยวิธีการแก้ปัญหาของ pde การแก้ปัญหาการหาค่าเหมาะที่สุดและอื่น ๆ …

5
อัลกอริธึมการปรับให้เหมาะสมแบบขนานสำหรับปัญหากับฟังก์ชันวัตถุประสงค์ราคาแพงมาก
ฉันเพิ่มประสิทธิภาพการทำงานของตัวแปร 10-20 ข่าวดีก็คือการประเมินแต่ละฟังก์ชั่นมีราคาแพงประมาณ 30 นาทีของการคำนวณแบบอนุกรม ข่าวดีก็คือฉันมีกลุ่มที่มีโหนดการคำนวณไม่กี่โหลในการกำจัดของฉัน ดังนั้นคำถาม: มีอัลกอริธึมการปรับให้เหมาะสมที่จะให้ฉันใช้พลังงานการคำนวณทั้งหมดได้อย่างมีประสิทธิภาพหรือไม่? อีกด้านหนึ่งของสเปกตรัมจะเป็นการค้นหาที่ละเอียดถี่ถ้วน: แบ่งพื้นที่การค้นหาทั้งหมดออกเป็นกริดที่ละเอียดและคำนวณฟังก์ชันที่จุดกริดแต่ละจุดอย่างอิสระ นี่เป็นการคำนวณคู่ขนานอย่างแน่นอน แต่อัลกอริทึมนั้นไม่มีประสิทธิภาพอย่างน่ากลัว อีกด้านหนึ่งของสเปกตรัมจะเป็นอัลกอริธึมกึ่งนิวตัน: ปรับปรุงการประมาณค่าพารามิเตอร์ถัดไปอย่างชาญฉลาดโดยอิงตามประวัติก่อนหน้านี้ นี่เป็นอัลกอริทึมที่มีประสิทธิภาพ แต่ฉันไม่ทราบวิธีที่จะทำให้มันขนานกัน: แนวคิดของ "การประมาณค่าพารามิเตอร์ตามประวัติก่อนหน้า" ฟังดูเหมือนการคำนวณแบบอนุกรม อัลกอริธึมกำลังสองดูเหมือนจะอยู่ตรงกลาง: เราสามารถสร้าง "ตัวแทนจำลอง" เริ่มต้นด้วยการคำนวณค่าจำนวนมากในแบบคู่ขนาน แต่ฉันไม่รู้ว่าการวนซ้ำที่เหลืออยู่นั้นสามารถขนานกันได้หรือไม่ คำแนะนำใด ๆ เกี่ยวกับวิธีเพิ่มประสิทธิภาพการไล่ระดับสีแบบใดที่ทำงานได้ดีในคลัสเตอร์ นอกจากนี้ยังมีการใช้อัลกอริธึมการปรับให้เหมาะสมแบบขนานในปัจจุบันหรือไม่

4
การเลือกจุดที่กระจัดกระจายส่วนใหญ่จากชุดของคะแนน
มีอัลกอริทึมใด ๆ (ที่มีประสิทธิภาพ) ในการเลือกเซตย่อยของ points จากชุดของ points ( ) ที่พวกเขา "ครอบคลุม" พื้นที่ส่วนใหญ่ (เหนือทุกเซตย่อยของขนาด ) หรือไม่?MMMNNNM&lt;NM&lt;NM < NMMM ฉันถือว่าคะแนนอยู่ในระนาบ 2D อัลกอริธึมไร้เดียงสานั้นง่าย แต่มีข้อห้ามในแง่ของความซับซ้อนของเวลา: for each subset of N points sum distance between each pair of points in the subset remember subset with the maximum sum ฉันกำลังมองหาวิธีที่มีประสิทธิภาพมากขึ้นหรือแม้แต่ประมาณ ตัวอย่างนี่คือเครื่องบินที่มีจุดสุ่มอยู่ในนั้น: สำหรับฉันคาดหวังว่าจะได้รับคะแนนจากการเลือกดังนี้:M=5M=5M=5 หมายเหตุจุดที่เลือก (สีแดง) จะกระจายอยู่ทั่วระนาบ ฉันพบบทความ …

1
แรงจูงใจที่ใช้งานง่ายสำหรับการอัพเดต BFGS
ฉันกำลังสอนชั้นสำรวจการวิเคราะห์เชิงตัวเลขและกำลังมองหาแรงจูงใจสำหรับวิธีการ BFGS สำหรับนักเรียนที่มีพื้นฐาน / สัญชาตญาณ จำกัด ในการเพิ่มประสิทธิภาพ! ในขณะที่ฉันไม่มีเวลาพิสูจน์อย่างจริงจังว่าทุกอย่างมาบรรจบกันฉันกำลังมองหาแรงจูงใจที่สมเหตุสมผลว่าทำไมการอัปเดตของ BFGS Hessian จึงอาจปรากฏขึ้น วิธีการค้นพบของ Broyden (การเขียนของฉันอยู่ที่นี่ ) สามารถกระตุ้นได้โดยขอให้การประมาณของคุณในปัจจุบันของ Jacobian ลดความแตกต่างกับ Jacobian เก่าภายใต้ข้อ จำกัด ที่คำนึงถึงเซคแคนต์ล่าสุด: J_k (\ vec x_k- \ vec x_ {k-1}) = f (\ vec x_k) -f (\ vec x_ {k-1 }) J k ( → x k - → x …

4
การทดสอบวิธีการเพิ่มประสิทธิภาพเชิงตัวเลข: Rosenbrock กับฟังก์ชั่นการทดสอบจริง
ดูเหมือนว่าจะมีฟังก์ชั่นทดสอบหลักสองประเภทสำหรับเครื่องมือเพิ่มประสิทธิภาพที่ไม่มีอนุพันธ์: เรือเดินสมุทรหนึ่งเส้นเหมือน ฟังก์ชัน Rosenbrock ff. พร้อมจุดเริ่มต้น ชุดของจุดข้อมูลจริงด้วยตัวแทรก เป็นไปได้ไหมที่จะเปรียบเทียบว่า 10d Rosenbrock กับปัญหา 10d จริง ๆ สามารถเปรียบเทียบได้หลายวิธี: อธิบายโครงสร้างของ minima ท้องถิ่น หรือเรียกใช้ตัวเพิ่มประสิทธิภาพ ABC ใน Rosenbrock และปัญหาจริงบางอย่าง แต่ทั้งคู่ดูยาก (บางทีนักทฤษฎีและนักทดลองเป็นเพียงสองวัฒนธรรมที่แตกต่างกันมากดังนั้นฉันจะขอความฝัน?) ดูสิ่งนี้ด้วย: คำถาม scicomp.SE: ใครจะได้รับชุดข้อมูล / ปัญหาการทดสอบที่ดีสำหรับการทดสอบอัลกอริทึม / กิจวัตร? เชื่องช้า "การทดสอบการวิเคราะห์: เรามีทุกอย่างผิด"เป็นการดูหมิ่น: "การเน้นไปที่การแข่งขัน ... บอกเราว่าอัลกอริธึมดีกว่า แต่ไม่ใช่ทำไม" (เพิ่มในเดือนกันยายน 2014): พล็อตด้านล่างเปรียบเทียบอัลกอริทึม DFO 3 รายการในฟังก์ชันทดสอบ 14 รายการใน 8d จาก …

4
ปัญหาความเป็นไปได้ในการโปรแกรมเชิงเส้นพร้อมข้อ จำกัด ด้านบวกอย่างเข้มงวด
มีระบบการทำงานของข้อ จำกัด เชิงเส้นเป็นx ≤ข ฉันต้องการหาเวกเตอร์ที่เป็นค่าบวกอย่างเข้มงวดx &gt; 0ที่ตรงตามข้อ จำกัด เหล่านี้ ซึ่งหมายความว่าx ฉัน &gt; 0เป็นสิ่งจำเป็นสำหรับทุกองค์ประกอบx ฉันของx ฉันจะใช้ตัวแก้ปัญหา LP เพื่อค้นหาเวกเตอร์ที่เป็นบวกอย่างเคร่งครัด (หรือยืนยันว่าไม่มี อยู่) ฉันไม่สามารถแนะนำระบบอื่นที่มีข้อ จำกัดAx≤bAx≤b{\bf Ax} \leq {\bf b}x&gt;0x&gt;0{\bf x} > 0xi&gt;0xi&gt;0x_i > 0xixix_ixx{\bf x}xx{\bf x}xx{\bf x}xi&gt;0xi&gt;0x_i > 0เพราะความเท่าเทียมต้องได้รับอนุญาตใน LP เสมอ - แต่ฉันสามารถใช้ตัวแก้ LP ได้หลายครั้งด้วยการเปลี่ยนฟังก์ชันวัตถุประสงค์ ฉันคิดว่าฉันควรใช้วิธีแปรผันหย่อน แต่ฉันไม่รู้วิธี

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