คำถามติดแท็ก cg.comp-geom

Computational Geometry เป็นการศึกษาปัญหาเรขาคณิตจากมุมมองการคำนวณ ตัวอย่างของปัญหารวมถึง: การคำนวณวัตถุทางเรขาคณิตเช่นตัวเรือนูนการลดขนาดมิติปัญหาเส้นทางที่สั้นที่สุดในพื้นที่ตัวชี้วัดหรือการค้นหาส่วนย่อยของจุดเล็ก ๆ ที่ใกล้เคียงกับการวัดทั้งชุด (เช่นแกน)

2
ผลที่ตามมาของขอบเขตล่างสำหรับ -nets ในการประมาณ
มากมายที่นี่อาจทราบ Alon ล่าสุดของซูเปอร์เชิงเส้นขอบเขตที่ต่ำกว่าสำหรับ -nets ในการตั้งค่าเรขาคณิตธรรมชาติ[PDF] ฉันต้องการทราบว่าหากมีสิ่งใดขอบเขตที่ต่ำกว่านี้แสดงถึงความสามารถในการประมาณค่าของปัญหาชุดฝาครอบ / การกดปุ่มที่เกี่ยวข้อง ϵϵ\epsilon หากต้องการเจาะจงมากขึ้นเล็กน้อยให้พิจารณาตระกูลของช่องว่างช่วงเช่นตระกูล: XRX }{ (X, R ){(X,R)\big\{(X,\mathcal{R}) :เป็นชุดจุดภาพถ่ายแบบ จำกัด ,มีจุดตัดของมีเส้นXXXRR\mathcal{R}XXX}}\big\} ถ้าสำหรับบางฟังก์ชั่นที่เป็นแบบเชิงเส้นหรือแบบเชิงเส้นสุดยอดตระกูลจะมีช่วงของช่องว่างที่ไม่ยอมรับ -nets ขนาดสิ่งใดหากสิ่งนี้แสดงถึงการกดปุ่มน้อยที่สุด ตั้งปัญหาถูก จำกัด ไว้ที่ตระกูลของช่วงพื้นที่หรือไม่ϵ f ( 1 / ϵ )fffϵϵ\epsilonf(1/ϵ)f(1/ϵ)f(1/\epsilon)

2
ขอบเขตที่ต่ำกว่าสำหรับปัญหาความพึงพอใจเชิงเส้น
ในSODA 1995 Jeff Erickson แสดงขอบเขตที่ต่ำกว่าสำหรับความพึงพอใจเชิงเส้น (การตรวจสอบว่า -subset ของจำนวนจริงตรงกับสมการเชิงเส้นบนตัวแปร ) วิธีหลักฐานที่ใช้ infinitesimals และของ Tarski หลักการถ่ายโอนRRrnnnRRr ใครช่วยอธิบายสัญชาตญาณที่อยู่เบื้องหลังเส้นทางที่ใช้เพื่อพิสูจน์ขอบเขตนี้ อะไรคือความยากลำบากในการหาข้อพิสูจน์โดยตรงเช่นนี้: "รับต้นไม้การตัดสินใจที่ใช้จำนวนจริงนี่คือวิธีที่เราสามารถสร้างข้อมูลที่เป็นปฏิปักษ์"

3
พิสูจน์ทฤษฎีบทของโซนได้ง่ายขึ้นหรือไม่?
ทฤษฎีบทของโซนบอกว่าถ้าเราแทงการเรียงตัวของเส้น n กับอีกเส้นหนึ่งความซับซ้อนทั้งหมดของโซนของมันชุดของทั้งหมด 0-, 1- และ 2 หน้าติดกับมันคือ O (n) ค่าคงที่ที่แท้จริงคืออะไรอย่างน้อย 6n ตามที่ระบุไว้ในตำราต่าง ๆ และการพิสูจน์คือการเหนี่ยวนำด้วยเหตุผลการชาร์จที่ระมัดระวัง ฉันถูกถามคำถามนี้ในชั้นเรียนและไม่มีคำตอบ: มีข้อพิสูจน์ทางทฤษฎีของโซนที่เป็นทางเลือกและใช้งานง่ายกว่าหรือไม่? ตอนนี้ฉันรู้ว่าหลายคนพบว่าการเหนี่ยวนำค่อนข้างง่ายและจะถูกทำให้ขุ่นเคืองโดยนัยของฉันและยินดีที่จะแก้ไขข้างต้นเป็นเพียง "ทางเลือก" สำหรับพวกเขา แต่มีข้อพิสูจน์เช่นนี้หรือไม่? หรือแม้แต่หลักฐานจากหนังสือ ?

1
การพิสูจน์ขอบเขตบนของผลรวมของปัญหารากสี่เหลี่ยม
ใน [1], Garey et al. ระบุสิ่งที่จะเป็นที่รู้จักกันในภายหลังว่าเป็นผลรวมของปัญหารากของรากในหลักสูตรของการแก้ปัญหาความสมบูรณ์แบบของ Euclidean TSP รับจำนวนเต็ม a1,a2,…,ana1,a2,…,ana_1, a_2, \ldots, a_n และ LLLตรวจสอบว่า a1−−√+a2−−√+⋯+an−−√&lt;La1+a2+⋯+an&lt;L\sqrt{a_1} + \sqrt{a_2} + \cdots + \sqrt{a_n} < L พวกเขาสังเกตเห็นว่ามันไม่ชัดเจนแม้แต่ว่าปัญหานี้อยู่ใน NP เพราะมันไม่ชัดเจนว่าตัวเลขความแม่นยำขั้นต่ำสุดนั้นถูกต้องในการคำนวณรากที่สองเพื่อเปรียบเทียบผลรวมกับ LLL. อย่างไรก็ตามพวกเขาอ้างขอบเขตที่รู้จักกันดีที่สุดของO(m2n)O(m2n)O(m2^n) ที่ไหน mmmคือ "จำนวนตัวเลขในนิพจน์สัญลักษณ์ต้นฉบับ" น่าเสียดายที่ขอบเขตบนนี้เกิดจากการสื่อสารส่วนบุคคลจาก AM Odlyzko เท่านั้น ใครบ้างมีการอ้างอิงที่เหมาะสมกับขอบเขตบนนี้ หรือในกรณีที่ไม่มีการอ้างอิงที่ตีพิมพ์หลักฐานหรือภาพร่างหลักฐานก็จะเป็นประโยชน์เช่นกัน หมายเหตุ: ฉันเชื่อว่าขอบเขตนี้อาจอนุมานได้ว่าเป็นผลมาจากผลลัพธ์ทั่วไปโดย Bernikel และ อัล [2] จากประมาณ 2,000 บนขอบเขตการแยกสำหรับนิพจน์ทางคณิตศาสตร์ที่มีขนาดใหญ่กว่า ฉันส่วนใหญ่สนใจในการอ้างอิงที่เกิดขึ้นพร้อมกันมากขึ้น (เช่น: สิ่งที่เป็นที่รู้จักประมาณปี …

1
มิติ VC ของเซลล์ Voronoi ใน R ^ d?
สมมติว่าฉันมีคะแนนใน d สิ่งเหล่านี้ทำให้เกิดแผนภาพ Voronoi ถ้าผมกำหนดให้แต่ละจุดป้ายเหล่านี้ก่อให้เกิดการทำงานที่ไบนารี d คำถาม: อะไรคือมิติ VC ของฟังก์ชันเลขฐานสองที่เป็นไปได้ทั้งหมดที่เกิดจากจุดและการทำเครื่องหมายของจุดเหล่านี้?kkkRdRd\mathbb{R}^dkkk±±\pmRdRd\mathbb{R}^dkkk

2
เลือกตัวเลขสองจำนวนที่รวมเป็นโดยใช้เวลาแบบสอบถามย่อยเชิงเส้น
นี่คือปัญหาเพื่อนบ้านที่ใกล้ที่สุด รับ reals (ใหญ่มากn !), รวมทั้งเป้าหมายจริงp , หาa_iและa_jซึ่ง SUM ใกล้เคียงกับpมากที่สุด เราอนุญาตการประมวลผลล่วงหน้า / การจัดทำดัชนีที่เหมาะสมของa_1, \ ldots, a_n (ไม่เกินO (n \ log n) ) แต่ในเวลาแบบสอบถาม (ที่กำหนดp ) ผลลัพธ์ควรถูกส่งคืนอย่างรวดเร็ว (เช่นO (\ log n)เวลา)a1,…,ana1,…,ana_1, \ldots, a_nnnnpppaiaia_iajaja_jpppa1,…,ana1,…,ana_1, \ldots, a_nO(nlogn)O(nlog⁡n)O(n \log n)pppO(logn)O(log⁡n)O(\log n) (ตัวอย่างง่ายกว่า: ถ้าเราต้องการเพียงa_iเดียวaiaia_iที่ใกล้เคียงกับpppมากที่สุดเราจะจัดเรียงa1,…,ana1,…,ana_1, \ldots, a_nออฟไลน์, O(nlogn)O(nlog⁡n)O(n \log n)จากนั้นทำการค้นหาแบบไบนารีที่เวลาสอบถามO(logn)O(log⁡n)O(\log n) ) โซลูชันที่ไม่ทำงาน: 1) จัดเรียงa1,…,ana1,…,ana_1, \ldots, …

1
อัลกอริทึมสำหรับการประมาณร่างกายนูนโดยเปลือกนูนของทรงรี
ฉันทำงานในสาขาวิศวกรรมโครงสร้างและฉันต้องการค้นหาอัลกอริธึมที่มีประสิทธิภาพในการสร้างการประมาณ (ใน Hausdorff เมตริก) ของตัวนูน KKK โดยเปลือกนูนของ nnn ทรงรีสำหรับบางคงที่ nnn. ขณะนี้ฉันทำงานในมิติที่ 2 และ 3 เท่านั้น ความคิดแรกของฉันคือการทำงานในพื้นที่สองโดยใช้ฟังก์ชั่นการสนับสนุน ชั่วโมงKชั่วโมงKh_K ของ KKKซึ่งฉันสามารถคำนวณสำหรับตัวอย่างของ MMM จุดบนทรงกลมหน่วย SdSdS_dและเพื่อลดข้อผิดพลาดที่ไม่ต่อเนื่องระหว่าง ชั่วโมงKชั่วโมงKh_K และฟังก์ชั่นการสนับสนุนของชุดการประมาณใน ล.∞ล.∞l^{\infty}-norm ใครบ้างมีความคิดอื่นหรือการอ้างอิงบางอย่างให้ฉัน ฉันไม่สามารถหางานที่เกี่ยวข้องในเรื่องนี้ได้

1
มีอัลกอริทึมที่เหมาะสมในการวาดกราฟการเลือกตั้ง / การพึ่งพาแบบผสมในระบบพิกัดหรือไม่?
ฉันกำลังมองหาอัลกอริทึมในการวาดกราฟองค์ประกอบ / กราฟการพึ่งพา (สำหรับแอปพลิเคชันด้านภาษาศาสตร์) กราฟดังกล่าวจะมีจุดยอดสองประเภทที่แตกต่างกัน (โทเค็นโหนด) และขอบสองประเภทที่แตกต่างกัน (ลำดับชั้นไม่ใช่แบบลำดับชั้น) ฉันยังใหม่กับทฤษฎีกราฟและอัลกอริทึมโดยทั่วไปและฉันหวังว่าคำถามนี้จะไม่ขัดแย้งกันเช่นกับข้อกำหนดระดับการวิจัยของไซต์นี้ มันควร แต่โดยทั่วไปจะอยู่ในขอบเขตของ cstheory กราฟจะต้องวาดจากล่างขึ้นบน (ฉันคิดว่า) เนื่องจากโทเค็นทั้งหมดควรแสดงด้วยพิกัด y เดียวกันและพิกัด y ของโหนดที่จัดกลุ่มโทเค็นและ / หรือโหนดในองค์ประกอบจะต้องคำนวณแบบไดนามิก เช่นผ่านเส้นทางที่ยาวที่สุดไปยังโทเค็น ขอบลำดับชั้น (ใช้สำหรับการจัดกลุ่มโทเค็น / โหนดในองค์ประกอบ) ควรมีจำนวนจุดดัดขั้นต่ำ (ตามอุดมคติ 0) แต่ควรมีจำนวนจุดข้ามขั้นต่ำโดยเขียนทับข้อกำหนดเดิมหากจำเป็น ขอบที่ไม่เป็นลำดับชั้น (ใช้สำหรับการขึ้นต่อกัน) ควรมีจำนวนจุดข้ามขั้นต่ำและถูกวาดเป็นเส้นโค้งเบซิเยร์ สิ่งที่ดีที่สุดถัดไปที่ฉันเจอคืออัลกอริทึมที่อธิบายโดยBuchheim และคณะ ปรับปรุงอัลกอรึทึมของวอล์คเกอร์ให้ทำงานในเวลาเชิงเส้น โปรดแจ้งให้เราทราบหากมีความจำเป็นต้องปรับปรุงคำถามของฉันและขอบคุณล่วงหน้าสำหรับคำแนะนำใด ๆ แก้ไข: ตามที่ระบุไว้ในความคิดเห็นฉันควรพูดถึงว่าฉันต้องการเลย์เอาต์กราฟเริ่มต้นโดยอัลกอริทึมซึ่งฉัน - ในระยะยาว - ต้องการแก้ไขและแก้ไขภายในEclipse GEF ที่เป็นไปได้ ก่อนหน้านี้ฉันได้พิจารณาตัวเลือกต่างๆเพื่อให้ Graphviz ทำงานกับ GEF …

1
การนับจำนวนของพื้นที่หนาที่ทับซ้อนกันเป็นสี่เหลี่ยม
ปล่อย SSSเป็นหน่วยสี่เหลี่ยมจัตุรัส เป็นหน้าที่ของββ\betaจำนวนสูงสุดคืออะไร ββ\beta- ไขมันภูมิภาคแยกออกเป็นสองส่วนที่มีเส้นผ่าศูนย์กลางอย่างน้อย 1ซึ่งสามารถตัดกันได้SSS? ด้านล่างนี้เราให้ข้อมูลเกี่ยวกับ β= 1β=1\beta=1จำนวนสูงสุดคือ 7 สิ่งที่เกี่ยวกับ β= 2 , 3 , … , nβ=2,3,…,n\beta = 2, 3, \ldots, n? เรียกคืนคำจำกัดความของไขมันสำหรับพื้นที่ในระนาบ ได้รับภูมิภาคRRRให้วงกลม ค1C1C_1 ของรัศมี r1r1r_1 เป็นวงกลมที่ใหญ่ที่สุดที่มีอยู่ใน RRRและปล่อยให้แวดวง C2C2C_2 ของรัศมี r2r2r_2 เป็นวงกลมที่เล็กที่สุดที่มี RRR. ความอุดมสมบูรณ์ของRRR ได้รับจาก r2r1r2r1\frac{r_2}{r_1}และเราพูดอย่างนั้น RRR คือ ββ\beta- ไขมันสำหรับ β=r2r1β=r2r1\beta = \frac{r_2}{r_1}. ตัวอย่างเช่นถ้า r2=r1=12r2=r1=12r_2 = r_1=\frac{1}{2}จากนั้นภูมิภาคคือวงกลมหน่วยและมี …

2
VC-dimension ของทรงกลมใน 3 มิติ
ฉันกำลังค้นหามิติ VC ของระบบชุดต่อไปนี้ จักรวาลเช่นว่า 3 ในระบบชุดแต่ละชุดสอดคล้องกับทรงกลมในดังนั้นชุดประกอบด้วยองค์ประกอบในถ้าหากทรงกลมที่สอดคล้องกันประกอบด้วย ใน 3U={p1,p2,…,pm}U={p1,p2,…,pm}U=\{p_1,p_2,\ldots,p_m\}U⊆R3U⊆R3U\subseteq \mathbb{R}^3RR\mathcal{R}S∈RS∈RS\in \mathcal{R}R3R3\mathbb{R}^3SSSUUUR3R3\mathbb{R}^3 รายละเอียดที่ฉันรู้แล้ว VC-dimension คือ atleast 4 นี่เป็นเพราะถ้าเป็น 4 มุมของจัตุรมุขมันก็จะถูกทำลายโดยp1,p2,p3,p4p1,p2,p3,p4p_1,p_2,p_3,p_4RR\mathcal{R} VC-มิติ atmost 5 นี้เป็นเพราะระบบการตั้งค่าสามารถฝังตัวอยู่ในกับทรงกลมในสอดคล้องกับ hyperplanes ใน 4 เป็นที่รู้จักกันว่า hyperplanes ในมีมิติ VC- 1R4R4\mathcal{R}^4R3R3\mathcal{R}^3R4R4\mathcal{R}^4RdRd\mathcal{R}^dd+1d+1d+1

2
รูปหลายเหลี่ยมที่อยู่ภายในปัญหาการวางนัยทั่วไปของรูปหลายเหลี่ยม
ฉันต้องการขออภัยในการโพสต์ทั้งหมดด้านล่าง เลือกฟอรัมที่ไม่ถูกต้องเพื่อโพสต์สิ่งนี้ใน แต่เดิม อย่างไรก็ตามแทนที่จะทำให้สิ่งนี้เป็นของเสียที่สมบูรณ์ฉันได้ทำคำถามใหม่เพื่อเป็นปัญหา "ทฤษฎีคอมพิวเตอร์ศาสตร์" ที่แท้จริง ปัญหา: สร้างอัลกอริธึมที่ใช้ชุดของจุดสั่ง n ในระนาบ 2D ที่สร้างรูปร่างของรูปหลายเหลี่ยม A ที่อาจเป็นหรือไม่เป็นเว้าและอาจสร้างรูปหลายเหลี่ยม B ใหม่ด้วยจุด m ดังนี้: คะแนนทั้งหมดใน A อยู่ใน B 3 &lt;= m &lt;n B คือรูปหลายเหลี่ยมในชุดของ Bs ทั้งหมดที่มีพื้นที่เล็กที่สุด B ต้องเป็นรูปหลายเหลี่ยมแบบง่าย (เช่นไม่มีการตัดกันด้วยตนเอง) อินพุตไปยังอัลกอริทึมคือรูปหลายเหลี่ยม A และ "m" อนุญาตให้มีการแบ่งส่วนใน B โดยบังเอิญในกลุ่ม A ตัวอย่างอินพุตและเอาต์พุตที่คาดหวัง: ถ้า A คือสี่เหลี่ยมจัตุรัสและ m คือ 3 ดังนั้น B …

1
การคำนวณปริมาตรของโพลีเฮดราแบบมิติสูง
ฉันกำลังมองหาซอฟต์แวร์สำหรับการคำนวณ / การประมาณปริมาณของโพลีไฮดรานูนแบบมิติสูง โดยเฉพาะอย่างยิ่งฉันสนใจโปรแกรมที่สามารถจัดการกับวัตถุnnnจุดในมิติพื้นที่ที่มีพารามิเตอร์เลา ๆ ดังต่อไปนี้: และ1000 โปรดทราบว่าไม่มีการรับประกันจำนวนใบหน้าdddd≤ 50d≤50d \le 50n ≤ 1,000n≤1000n \le 1000 หน้า Jeff Ericksonมีลิงก์ไปยังโปรแกรมVinci-1.0.5ซึ่งมีขีด จำกัด ที่ยากถึง 255 ใบหน้า นี่เป็นข้อ จำกัด ของการใช้งานอัลกอริทึมของตัวเองสามารถจัดการกับใบหน้าได้มากขึ้นในเวลาที่เหมาะสม ฉันไม่พบการใช้งานของวิธีการที่ใช้โซ่มาร์คอฟสำหรับการประเมินถึงแม้ว่าฉันคิดว่าพวกเขาจะมีประสิทธิภาพน้อยลง มีซอฟต์แวร์ใดบ้างที่สามารถจัดการกับช่วงของพารามิเตอร์ที่อธิบายข้างต้นหรือมีการผ่อนคลายในระดับปานกลางได้บ้าง ฉันจะขอบคุณมากสำหรับการอ้างอิงอื่น ๆ เช่นกัน

1
Delaunay triangulations บนทรงกลมเพิ่มมุมต่ำสุดหรือไม่?
Delaunay triangulations ในเครื่องบินเพิ่มมุมต่ำสุดในสามเหลี่ยม การถือแบบเดียวกันนี้เป็นจริงสำหรับการหาจุดสามเหลี่ยม Delaunay บนทรงกลมหรือไม่? (ที่นี่ "มุม" เป็นมุมท้องถิ่นในละแวกใกล้เคียงจุดสุดยอดที่ปลาย) แรงบันดาลใจจาก แต่ไม่เกี่ยวข้องกับคำถามนี้ใน Math.SE

2
คำนวณระยะทางไปยังเพื่อนบ้านที่ใกล้ที่สุด kth สำหรับทุกจุดในชุด
สำหรับแอปพลิเคชันการเรียนรู้ของเครื่องกลุ่มของฉันจำเป็นต้องคำนวณระยะทางแบบยุคลิดเพื่อ kkkเพื่อนบ้านที่ใกล้ที่สุดในชุด XXX แต่ละ x∈(X∪Y)⊂Rdx∈(X∪Y)⊂Rdx \in (X \cup Y) \subset \mathbb R^d (สำหรับ ddd ระหว่าง 5 ถึงประมาณ 100 และ |X|≈|Y||X|≈|Y||X| \approx |Y|ไม่กี่ร้อยถึงไม่กี่ล้าน) ขณะนี้เรากำลังใช้กำลังดุร้ายO(d|X||X∪Y|)O(d|X||X∪Y|)O(d \lvert X \rvert \lvert X \cup Y \rvert) เข้าใกล้หรือสิ่งที่ชัดเจนด้วยการเปิด kd-tree XXXซึ่งเมื่อใด ddd สูงและ |X||X||X|ค่อนข้างต่ำไม่เคยชนะ (ทุกอย่างอยู่ในหน่วยความจำ) ดูเหมือนว่าจะต้องมีวิธีที่ดีกว่ากำลังดุร้าย - อย่างน้อยหนึ่งที่ใช้ประโยชน์จากความไม่เท่าเทียมกันของสามเหลี่ยมหรืออาจมีแฮชที่มีความอ่อนไหว การประมาณที่สมเหตุสมผลพอสมควรก็อาจเป็นไปได้เช่นกัน การวิจัยที่ฉันสามารถค้นพบได้ดูเหมือนว่าจะมุ่งเน้นไปที่ปัญหาของการหาเพื่อนบ้านที่ใกล้ที่สุดคนเดียว (หรือที่ใกล้เคียงที่สุด) ปัญหาที่ฉันกำลังมองหาโดยใช้ชื่ออื่นหรือมีการเชื่อมต่อกับปัญหาที่เกี่ยวข้องที่ฉันไม่ได้คิด

1
ปัญหาที่ตั้งสถานที่เก็บประจุยูคลิด
ในปัญหาสถานที่เก็บประจุ (CFLP)เราได้รับชุดของลูกค้าคCC และสิ่งอำนวยความสะดวกที่มีศักยภาพ FFF. ลูกค้าแต่ละรายj∈Cj∈Cj \in C มีความต้องการ djdjd_jที่ต้องให้บริการโดยสิ่งอำนวยความสะดวกแบบเปิดหนึ่งแห่งขึ้นไป แต่ละสถานที่i∈Fi∈Fi \in F มีค่าใช้จ่ายในการเปิด fifif_i และมีความจุ uiuiu_iซึ่งเป็นความต้องการสูงสุดของสถานที่นั้น iiiสามารถให้บริการ ต้นทุนการให้บริการความต้องการของลูกค้าหนึ่งหน่วยjjj ในสถานที่ iii คือ cijcijc_{ij}. เราต้องการเปิดส่วนย่อยของสิ่งอำนวยความสะดวกและกำหนดความต้องการของลูกค้าเพื่อเปิดสิ่งอำนวยความสะดวกเช่นความต้องการของลูกค้าทั้งหมดจะได้พบกับไม่มีข้อ จำกัด กำลังการผลิตและลดต้นทุนรวมของสิ่งอำนวยความสะดวกเปิดและลูกค้าบริการลดลง ต้นทุนการบริการนั้นเป็นค่าลบไม่สมมาตรและสนองความไม่เท่าเทียมของสามเหลี่ยม Arora ใน [ 1 , หน้า 21] ระบุว่า "Arora, Raghavan และ Rao [ 2 ] ให้ PTAS สำหรับกรณีเรขาคณิตพวกเขาขยายอัลกอริทึมไปยังกรณีที่เก็บประจุ แต่ทางออกสุดท้ายอาจละเมิดข้อ จำกัด ของความจุเล็กน้อย เขามีความหมายว่าอะไร "จำนวนเล็กน้อย"? ฉันเดาว่าหมายความว่าพวกเขาให้ …

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