ฐานข้อมูลผลลัพธ์สำหรับรหัสตัวเลข


17

ในวรรณคดีวิธีการเชิงตัวเลขงานวิจัยจำนวนมากประกอบด้วยคำอธิบายของการเปลี่ยนแปลงอัลกอริธึมใหม่ตามด้วยปัญหาการทดสอบเล็กน้อยเปรียบเทียบวิธีการใหม่กับวิธีการหนึ่งหรือสองวิธีที่มีอยู่ ทำให้ยากต่อการพิจารณา

  • วิธีการใหม่ในการแก้ไขปัญหาอื่น ๆ ที่น่าสนใจ
  • วิธีการเปรียบเทียบวิธีการใหม่กับวิธีการอื่น ๆ ที่มีอยู่

แน่นอนว่าคำถามเหล่านี้มักจะสำคัญสำหรับผู้ที่ตัดสินใจว่าจะใช้วิธีการใหม่หรือไม่ เพื่อที่จะปรับปรุงสถานการณ์นี้ถ้าเป็นไปได้ขอให้ผู้คนใช้ชุดทดสอบขนาดใหญ่ ( ดูคำถามนี้ ) ด้วยวิธีการของพวกเขาและทำรายการผลลัพธ์ในฐานข้อมูลเพื่อเปรียบเทียบกับวิธีอื่น นักวิทยาศาสตร์หรือวิศวกรสามารถสืบค้นฐานข้อมูลซึ่งอาจบ่งบอกถึงลักษณะการแก้ปัญหา / ปัญหาที่สำคัญที่สุดสำหรับพวกเขา (ความถูกต้องประสิทธิภาพคุณสมบัติเชิงคุณภาพ ฯลฯ ) และได้รับการเปรียบเทียบเชิงปริมาณของประสิทธิภาพของวิธีการทั้งหมดในฐานข้อมูล

ฉันตระหนักว่ามีความยากลำบากหลายอย่างในการใช้ความคิดนี้ (ส่วนใหญ่คือการให้ผู้คนใช้งานปัญหาเหล่านั้นทั้งหมดและวัดค่าใช้จ่ายในการคำนวณ) แต่คำถามของฉันคือ: มีฐานข้อมูลของผลลัพธ์หรือไม่ (พูดในสาขาย่อยบางแห่ง) หรือมีวิธีการเช่นนี้ถูกนำไปใช้ที่ไหนก็ได้?

คำตอบทั้งสองที่โพสต์แล้วนั้นเกี่ยวกับฐานข้อมูลของปัญหา ฉันถามเกี่ยวกับฐานข้อมูลของผลลัพธ์

คำตอบ:


9

ในเกณฑ์ที่คุณได้ระบุไว้ผมคิดว่าโครงการที่ใกล้เคียงที่สุดที่ฉันรู้ที่จะเป็นมหาวิทยาลัยฟลอริดาเบาบางเมทริกซ์คอลเลกชัน ผู้คนใช้ชุดข้อมูลนี้เป็นประจำเพื่อเปรียบเทียบตัวแก้พีชคณิตเชิงเส้นแบบกระจัดกระจายและคุณสามารถกรองตามแอปพลิเคชันจำนวนที่ไม่ใช่ศูนย์ขนาดของเมทริกซ์และอื่น ๆ ด้วยเว็บอินเตอร์เฟสที่ดีมาก ๆ อินเตอร์เฟส MATLAB หรือ Java GUI ฉันเคยเห็นตารางของปัญหาเหล่านี้ที่ระบุไว้ในเอกสารพร้อมกับตัวแก้ไขเวลาทำงานกับตัวแก้เชิงเส้นพีชคณิตเชิงเส้น 4 ถึง 8 ตัว

ฉันยอมรับว่ามันจะมีประโยชน์ในการรวบรวมฐานข้อมูลดังกล่าวและยิ่งกว่านั้นฉันคิดว่าวิธีการรวบรวมเมทริกซ์กระจัดกระจาย UF สำหรับการรวบรวมข้อมูลนั้นเป็นวิธีที่ยอดเยี่ยมและจะเป็นการเริ่มต้นที่ดีสำหรับทุกคนที่คิดเกี่ยวกับการรับรู้ความคิดนี้ การใช้ปัญหาทั้งหมดในทางปฏิบัติดูเหมือนจะไม่เป็นปัญหาใหญ่ตราบใดที่คุณสามารถเข้าถึงนักแก้ปัญหาทั้งหมดได้ หากคุณมีสิทธิ์เข้าถึงตัวแก้ปัญหาและเครื่องอ้างอิงมาตรฐานที่เชื่อถือได้พร้อมกับซอฟต์แวร์ที่จำเป็นทั้งหมดที่ติดตั้งไว้คุณควรเรียกใช้สคริปต์และรวบรวมข้อมูล ในความคิดของฉันความยากลำบากคือการให้ผู้คนมอบซอฟต์แวร์ให้กับพวกเขาหากไม่ใช่โอเพ่นซอร์ส ถ้าเป็นการโฆษณาคุณสามารถซื้อมันหรืออาจทำให้คนอื่นบริจาคซอฟต์แวร์โครงการCOIN-OR แต่ถ้าเป็นซอฟต์แวร์การวิจัยที่ไม่ใช่เชิงพาณิชย์หรือโอเพนซอร์สคุณต้องโน้มน้าวให้ผู้คนซื้อความพยายามและพวกเขาอาจไม่เชื่อใจบุคคลที่สามในการประเมินซอฟต์แวร์ของพวกเขาอย่างเป็นธรรม

ฉันยังรู้ว่าในการเพิ่มประสิทธิภาพมีฐานข้อมูลที่สามารถดาวน์โหลดปัญหา ( CUTEr อยู่ในใจ) และหนังสือปัญหาการทดสอบเพื่อเพิ่มประสิทธิภาพ ฉันเคยเห็นผู้คน (ตัวอย่างเช่นฉันกำลังคิดถึงการพูดคุยของ Ruth Misener เป็นพิเศษที่ AIChE 2011) เปรียบเทียบการเพิ่มประสิทธิภาพของพวกเขากับนักแก้ปัญหาคนอื่น ๆ ในฐานข้อมูลของปัญหาในการนำเสนอ; ฉันไม่แน่ใจว่าสิ่งที่ได้รับการเผยแพร่สู่สาธารณะ ฉันรู้ว่ามีประเพณีในการเพิ่มประสิทธิภาพสำหรับการเปรียบเทียบในขนาดใหญ่ (นักแก้ปัญหาจำนวนมากปัญหามาก); ฉันไม่คิดว่าจะมีฐานข้อมูลออนไลน์

อีกสิ่งที่ฉันคิดว่าสำคัญคือเราแยกความแตกต่างระหว่างวิธีและการใช้งานซอฟต์แวร์. ในการคำนวณทางวิทยาศาสตร์เราทุกคนพูดถึงวิธีการใดที่เร็วกว่าหรือช้ากว่าโดยอิงจากสิ่งต่าง ๆ เช่นการวัดความซับซ้อนของการคำนวณหรือประสบการณ์ของเราที่มีปัญหาต่าง ๆ เมื่อพูดถึงการวัดเวลาในการคำนวณเชิงปริมาณอย่างไรก็ตามถ้าใครนับจำนวน FLOPs ในอัลกอริทึมเฉพาะเราจะต้องใช้อัลกอริทึมในซอฟต์แวร์และจากนั้นวัดประสิทธิภาพในบางวิธี (การใช้หน่วยความจำ .) มันสมเหตุสมผลที่จะประเมินประสิทธิภาพของวิธีการเมื่อดูที่ความซับซ้อนในการคำนวณหรือการนับ FLOP เพราะเราไม่จำเป็นต้องมีการนำไปใช้เพื่อวัดสิ่งต่าง ๆ แต่ช่วงเวลาที่เราสนใจเวลาของนาฬิกาแขวนผนังจริง ๆ มีประโยชน์ในฐานะอุปกรณ์ที่เป็นนามธรรมและเป็นภาษาพูดเท่านั้น (ตัวอย่างเช่น

ฉันนำความแตกต่างระหว่างวิธีการและซอฟต์แวร์มาใช้เพราะในฐานข้อมูลดังกล่าวฉันยังสามารถเห็นความเป็นไปได้ในการติดตามการปรับปรุงซอฟต์แวร์ตลอดเวลา ยกตัวอย่างเช่นมีอะไรบางอย่างเช่นพูด PETSc หรือ PyCLAW หรือซอฟต์แวร์ใด ๆ ที่กำลังถูกทดสอบมันน่าสนใจที่จะเห็นว่าปัญหาใดบ้างที่ส่งผลกระทบในเชิงบวก (หรือลบ!) โดยการอัพเกรดซอฟต์แวร์ สิ่งนี้อาจเป็นประโยชน์สำหรับนักวิจัยที่พยายามตัดสินใจว่ามันคุ้มค่าที่อาจเกิดขึ้นกับเงินและกำลังคนในการอัพเกรดรหัสของพวกเขาหรือไม่ อีกเหตุผลหนึ่งที่ทำให้ความแตกต่างสำคัญคือเพราะวิธีการที่ดีสามารถนำไปปฏิบัติได้ไม่ดี ฉันคิดว่าความเป็นไปได้นี้มีส่วนช่วยให้คนที่เงียบสงบบางครั้งมีการแบ่งปันรหัสการวิจัยของพวกเขา

ฉันคิดว่าสิ่งใดก็ตามที่เกิดขึ้นจากความคิดนี้ (และฉันหวังว่าจะมีบางอย่างเกิดขึ้นและยินดีที่จะให้ความช่วยเหลือหลังจากปริญญาเอกของฉัน) สิ่งสำคัญคือการเน้นความแตกต่างระหว่างซอฟต์แวร์และวิธีการต่างๆ กำลังจะโพสต์ผลลัพธ์สำหรับซอฟต์แวร์


2
ฉันชอบความคิดเห็นของคุณมากและคุณยกประเด็นสำคัญ ในขณะที่ฉันแน่ใจว่าคุณทราบลิงก์ที่คุณให้นั้นเป็นฐานข้อมูลของปัญหาไม่ใช่ผลลัพธ์
David Ketcheson

นั่นคือสิ่งที่ฉันสามารถหาได้ใกล้เคียงที่สุด ฉันพยายามค้นหาฐานข้อมูลผลลัพธ์เพราะฉันคิดว่าคุณทำให้เกิดความคิดที่สำคัญจริงๆ แต่ฉันไม่สามารถหาได้ บางทีนี่อาจเป็นโครงการใหม่ที่สำคัญ?
Geoff Oxberry

ขอบคุณ; ฉันเห็นด้วยและสิ่งเหล่านี้มีประโยชน์ในฐานะ "การประมาณที่ใกล้เคียงที่สุด" ตามที่คุณพูด ฉันกำลังพิจารณาเรื่องนี้อยู่ (กับคนอื่นที่จะให้ความน่าเชื่อถือมากกว่า) เป็นโครงการใหม่ ฉันดีใจมากที่คุณสนใจ! เราสามารถพูดคุยกันได้ที่อื่นเนื่องจาก SE ไม่ชอบการสนทนา
David Ketcheson

4

มีความพยายามที่จะสร้างรายการของอินทิกรัล "ยาก" เพื่อคำนวณตัวเลข (ดูเอกสารโดย Walter Gautschi, Robert Piessens และอื่น ๆ ) แต่ไม่มีฐานข้อมูลที่เป็นทางการ

ในฟิลด์ของ ODEs จะมีชุดการทดสอบ IVPซึ่งเป็นชุดการทดสอบสำหรับปัญหาค่าเริ่มต้น


ที่จริงฉันถามเกี่ยวกับฐานข้อมูลของผลลัพธ์ที่คำนวณไม่ใช่ฐานข้อมูลของปัญหา
David Ketcheson

1
@DavidKetcheson มันมีรหัสไดรเวอร์เพื่อคำนวณผลลัพธ์ด้วยตัวคุณเองโดยอัตโนมัติ
Jed Brown

ที่ดี! แม้ว่าฉันจะชอบดูฐานข้อมูลจริงที่มีการจัดเก็บผลลัพธ์ (นอกจากนี้แน่นอนสำหรับความสามารถในการคำนวณใหม่) นี่เป็นสิ่งที่ใกล้เคียงที่สุดที่ฉันเคยเห็นกับสิ่งที่ฉันคิด
David Ketcheson

3

ฉันไม่คุ้นเคยกับฐานข้อมูลดังกล่าว แต่ฉันคิดว่ามันยากมากที่จะนิยามด้วยวิธีที่มีประโยชน์ ในความคิดของฉันระบบที่ดีกว่าคือการปล่อยโค้ดในรูปแบบที่รันได้เพื่อให้ผู้ใช้สามารถขยายการทดสอบได้อย่างครอบคลุมตามที่พวกเขาต้องการ ในแง่ของที่เก็บข้อมูลชุมชนชุดทดสอบ IVPที่ GertVdE กล่าวถึงยังมีรหัสไดรเวอร์เพื่อเรียกใช้ตัวแก้ ODE / DAE ที่เผยแพร่หลายรายการเกี่ยวกับปัญหาการทดสอบ ในสิ่งพิมพ์ของฉันฉันพยายามปล่อยรหัสและสคริปต์ทั้งหมดที่ใช้ในการสร้างวิเคราะห์ข้อมูลผลลัพธ์และสร้างแปลงและตารางที่ปรากฏในกระดาษ


1
Small quibble: นี่เป็นความคิดเห็นมากกว่าคำตอบ ฉันขอขอบคุณที่คิดอย่างมีวิจารณญาณ ฉันต้องการเห็นคนทำทั้งสองอย่าง ทำไมทำให้ฉันติดตั้งและเรียกใช้รหัสของคุณเพียงเพื่อให้ฉันสามารถพล็อตผลลัพธ์ของคุณกับฉัน และจากนั้นคุณสามารถอ้างว่าฉันไม่ได้ตั้งค่าตัวเลือกที่เหมาะสม? อย่างไรก็ตามฉัน (หมายถึงนักวิจัยทั่วไป) เพียง แต่จะไม่ทำเพราะมันทำงานได้มากเกินไป แต่ถ้าสิ่งที่ฉันต้องทำคืออ่านในไฟล์ข้อมูลฉันอาจจะเต็มใจ
David Ketcheson

1

Aeroacoustics การประชุมเชิงปฏิบัติการเกี่ยวกับปัญหา Benchmark มีเป้าหมายที่คล้ายกันในใจสำหรับปัญหาเกี่ยวกับอากาศ พวกเขานำเสนอชุดของปัญหามาตรฐานก่อนเวลาและให้คนแก้ปัญหาโดยใช้วิธีการของตนเองและเปรียบเทียบผลลัพธ์ ตัวอย่างเช่นนี่คือการประชุมครั้งที่สี่: http://www.archive.org/details/nasa_techdoc_20040182258

แม้ว่าจากสิ่งที่ฉันสามารถบอกได้ว่าพวกเขาไม่ได้เปรียบเทียบประสิทธิภาพของรหัสที่มีต่อกันพวกเขาส่วนใหญ่ดูความแม่นยำ


! ที่น่าสนใจ มีฐานข้อมูลการแก้ปัญหาหรือไม่? หรือว่าพวกเขาเปรียบเทียบผลลัพธ์อย่างไร
David Ketcheson

"ฐานข้อมูล" อยู่ในรายงานที่ฉันโพสต์ ในตอนท้ายของบทความมีหัวข้อ "การเปรียบเทียบโซลูชัน" มีเพียงการประชุมสี่ครั้งสำหรับเรื่องนี้และการประชุมครั้งสุดท้ายคือในปี 2004 ฉันหวังว่าจะมีอีกมากที่จะได้รับสิ่งเหล่านี้ทางออนไลน์แบบที่คุณเสนอ
James Custer

1

ในการสร้างแบบจำลองแผ่นดินไหวมีความพยายามหลายประเภทเหล่านี้ สิ่งที่อยู่ในใจคือโครงการจำลองการแตกแบบไดนามิกและโครงการผกผันของแหล่งที่มา (http://eqsource.webfactional.com/wiki/) ทั้งสองสิ่งนี้มีปัญหาทางร่างกายเพื่อแก้ไขและไม่เชื่อเรื่องพระเจ้า (ในระดับหนึ่ง) เกี่ยวกับวิธีการที่ใช้ โครงการเหล่านี้จริง ๆ แล้วเกี่ยวกับการให้ผู้สร้างแบบจำลองเฉพาะโดเมนเปรียบเทียบกับอีกคนหนึ่งไม่ใช่ปัญหาการทดสอบทั่วไปสำหรับวิธีการคำนวณตัวเลขทุกชุด แต่คุณสามารถเปรียบเทียบกับผลลัพธ์อื่น ๆ และสิ่งนี้ได้เปิดเผยปัญหามากมายกับรหัสจำนวนมาก

ความเป็นไปได้ทางหนึ่งที่จะพิจารณาคือโครงการมาดากัสการ์ซึ่งพัฒนาขึ้นในโลกการถ่ายภาพคลื่นไหวสะเทือน แต่อ้างว่าเป็นจุดประสงค์ทั่วไป


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