เหตุใดผู้ดำเนินการดาว Kleene จึงเรียกผู้ดำเนินการ Kleene 'ปิด'?


14

ฉันพบว่าหากฉันไม่เข้าใจนิรุกติศาสตร์ที่อยู่เบื้องหลังคำศัพท์ cs / programming มันมักจะหมายความว่าฉันพลาดหรือเข้าใจผิดแนวคิดพื้นฐานที่สำคัญบางอย่าง

ฉันไม่เข้าใจว่าทำไมดาว Kleene จึงถูกเรียกว่าการปิด Kleene มันเกี่ยวข้องกับการปิดในการเขียนโปรแกรมฟังก์ชั่นที่มีตัวแปรที่ไม่ใช่ท้องถิ่นที่ถูกผูกไว้หรือไม่?

... ในการไตร่ตรองอาจเป็นเพราะมันอนุญาตให้เขียนชุดเปิดปลายในรูปแบบนิพจน์ปิด?

... ในแบบเป็ดยางอธิบายได้ดีตอนนี้ฉันเดาว่ามัน แต่ก็ยังคงยินดีต้อนรับคำตอบที่มีสิทธิ์


3
เป็นผู้ใช้ของคุณชื่อเหตุผลที่คุณต้องการแฟชั่นยางเป็ดอธิบายดีเก่า ?
Babou

@babou ใช่ แต่วันนี้ฉันล้มเหลว :(
mallardz

ข้อสังเกตของคุณว่าการปิดภายใต้การต่อข้อมูลที่กำหนดไว้ในคำตอบของฉัน (และใน @David Richerby คำตอบโดยปริยายเนื่องจากเขาไม่เคยกล่าวถึงการดำเนินการของสตริงอย่างชัดเจนยกเว้นในความคิดเห็น) จะไม่รวมคำว่างเปล่า ϵ ขอบคุณ ด้วยเหตุนี้ผู้ดำเนินการ Kleene Star จึงไม่สามารถเป็นตัวแทนการปิดกิจการภายใต้การต่อข้อมูลได้: ผู้ดำเนินการ Kleene + ทำ อย่างไรก็ตามโอเปอเรเตอร์ Kleene อาจแสดงถึงการปิดภายใต้การใช้พลังงานที่ได้จากการต่อข้อมูล ฉันเติมเต็มคำตอบของฉันเพื่อครอบคลุมด้านนี้ มันบอบบางเกินคาด
Babou

คำตอบนั้นสามารถอ่านได้เพียงพอหรือฉันควรเพิ่มส่วนที่เป็นยางนิ่มหรือไม่?
babou

คำตอบ:


16

ชุดจะปิดภายใต้ตัวดำเนินการบางอย่างถ้าผลลัพธ์ของการใช้ตัวดำเนินการกับสิ่งต่าง ๆ ในชุดนั้นจะอยู่ในชุดเสมอ ตัวอย่างเช่นตัวเลขธรรมชาติถูกปิดใต้นอกจากนี้เพราะเมื่อใดก็ตามที่และเป็นตัวเลขธรรมชาติเป็นจำนวนธรรมชาติ ในทางกลับกันธรรมชาติจะไม่ถูกปิดภายใต้การลบเนื่องจากตัวอย่างเช่นไม่ใช่จำนวนธรรมชาติm n + mnmn+m35

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

ดังนั้น "การปิด Kleene" ไม่ใช่ชื่ออื่นสำหรับ "Kleene Star" ดาว Kleene เป็นตัวดำเนินการ การปิดตัวของชุด Kleene เป็นการปิดตัวชุดภายใต้ผู้ควบคุมเครื่อง


โอเคขอบคุณคำอธิบายของคุณเกี่ยวกับการปิดชุดนั้นเข้าใจง่ายมาก แต่คุณหมายถึง Kleene star เป็นผู้ดำเนินการ (เช่น plus is operator) และการปิด Kleene เป็นการดำเนินการ (เช่นการเพิ่ม) คำตอบของ Babou ก็คือชื่อนี้มาจากความจริงที่ว่าการดำเนินการเป็นตัวแทนของการปิดชุดภายใต้การต่อข้อมูลที่สมเหตุสมผล แม้ว่าเอปไซลอนจะไม่ทำสิ่งสกปรกเล็กน้อยที่นั่นหรือ!! ...
mallardz

1
@Mallardz พูดถูกปิดเป็นชุด; การดำเนินการขึ้นรูปการปิดปกติเรียกว่า "การปิด"
David Richerby

@DavidRicherby: คุณเรียกชุดของตัวเลขธรรมชาติภายใต้การลบเป็นการปิดได้หรือไม่คุณหมายถึงว่าตั้งแต่ชุดของนิพจน์ทั่วไปที่ถูกปิดภายใต้kleene * สร้างนิพจน์ทั่วไปที่เราเรียกว่าการปิดหรือไม่
justin

@justin ตามคำนิยามการปิดชุดใด ๆ ภายใต้การดำเนินการจะต้องปิดตัวเองภายใต้การดำเนินการนั้น เนื่องจากธรรมชาติไม่ได้ถูกปิดภายใต้การลบพวกเขาจึงไม่สามารถปิดสิ่งใด ๆ ภายใต้การลบได้ ชุดของนิพจน์ทั่วไปนั้นปิดแล้วภายใต้ดาว Kleene และการปิดชุดของนิพจน์ทั่วไปภายใต้การดำเนินการบางอย่างคือโดยนิยามชุดของสิ่งต่าง ๆ ไม่ใช่นิพจน์ทั่วไปเดียว ดังนั้นฉันจึงไม่เข้าใจคำถามของคุณ
David Richerby

@ DavidRicherby: ใช่ถูกต้องโดยความผิดพลาดฉันเลือกเซตของตัวเลขธรรมชาติภายใต้การลบเป็นจำนวนธรรมชาติทั้งหมดดาวไคลีนเกี่ยวข้องกับฉากหรือออโตมาต้า จำกัด หรือทั้งสองอย่าง?
justin

7

โดยสังเขป

การปิดชื่อKleeneนั้นตั้งใจไว้อย่างชัดเจนว่าหมายถึงการปิดใน การทำงานของสายอักขระ

อย่างไรก็ตามการวิเคราะห์อย่างระมัดระวัง (ขอบคุณความคิดเห็นที่สำคัญโดย OP mallardz) แสดงให้เห็นว่าดาว Kleene ไม่สามารถปิดได้ภายใต้การต่อเรียงซึ่งค่อนข้างสอดคล้องกับตัวดำเนินการ Kleene บวก

ผู้ประกอบการดาว Kleene จริง ๆ แล้วสอดคล้องกับการปิดภายใต้การใช้พลังงานที่ได้จากการต่อข้อมูล

ดาว Kleeneชื่อนั้นมาจากการแสดงทางวากยสัมพันธ์ของดาวฤกษ์*ในขณะที่การปิดเป็นสิ่งที่มันทำ

นี่คือคำอธิบายเพิ่มเติมด้านล่าง
จำได้ว่าการปิดตัวโดยทั่วไปและโดยเฉพาะอย่างยิ่งดาว Kleene คือการดำเนินการในชุดที่นี่ในชุดของสตริงเช่นในภาษา สิ่งนี้จะถูกใช้ในคำอธิบาย

การปิดชุดย่อยภายใต้การดำเนินการที่กำหนดไว้เสมอ

ชุดปิดให้บริการในบางการดำเนินงาน -ary IFFถูกกำหนดเสมอสำหรับการใด ๆ -tuple ของการขัดแย้งในและ \}n f f n C C = { f ( c 1 , , c n ) c 1 , , c nC }CnffnCC={f(c1,,cn)c1,,cnC}

โดยการขยายเป็นชุดของค่าในวิธีปกติเช่น เราสามารถเขียนเงื่อนไขเป็นชุดสมการใหม่ได้:( S 1 , ... , S n ) = { F ( s 1 , ... , s n ) | s ฉันSฉัน 1 i n } C = f ( C , , C )f

f(S1,,Sn)={f(s1,,sn)siSi.1in}


C=f(C,,C)

สำหรับโดเมน (หรือชุด)มีการดำเนินการที่กำหนดไว้เสมอบนและชุด , การปิดภายใต้เป็นชุดที่เล็กที่สุด ที่มีที่ตรงกับสมการ: \}D S D S S S S = { F ( s 1 , ... , s n ) | s 1 , ... , s nS }DfDSDSfSfSSf={f(s1,,sn)s1,,snSf}

การตั้งค่าภายใต้อาจถูกกำหนดโดย:Sf

Sf is the smallest set such that SSf and Sf=f(Sf,,Sf)

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

การขยายแนวคิด

การปิดตามที่กำหนดไว้ด้านบนมีจุดประสงค์เพื่อขยายชุดย่อย ลงในชุดที่น้อยที่สุดเพื่อให้การดำเนินการถูกกำหนดไว้เสมอS SSff

ในฐานะที่เป็นข้อสังเกตโดย mallardz OP นี้ไม่ได้เป็นคำอธิบายที่เพียงพอเพราะมันจะไม่รวมถึงคำที่ว่างเปล่าในเมื่อมันไม่ได้อยู่แล้วในSอันที่จริงการปิดนี้สอดคล้องกับความหมายของ Kleene บวกและไม่ Kleene ดาวS SϵSfS+*

ที่จริงแล้วความคิดของการปิดสามารถขยายหรือพิจารณาในรูปแบบที่แตกต่างกัน

  1. ส่วนขยายไปยังคุณสมบัติเชิงพีชคณิตอื่น ๆ

    เกี่ยวกับวิธีการที่จะขยายมัน (แม้ว่ามันจะไม่ได้เรียกว่าปิด ) พิจารณามากขึ้นโดยทั่วไปส่วนขยายไปยังชุดมีคุณสมบัติเกี่ยวกับพีชคณิตเฉพาะที่เกี่ยวกับการดำเนินงานของฉSff

    SfSfϵ

  2. ส่วนขยายผ่านการดำเนินการที่ได้รับ

    SDD

    fDSf,1S

    Sf,1={f(s1,s2)s1Sf,1s2D}

    หรือด้วยสมการที่กำหนด:

    Sf,1 is the smallest set such that SSf,1 and Sf,1=f(Sf,1,D)

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

    (M,f,ϵ) fMϵuM

    uM.u0=ϵ and nNun=f(u,un1)

    unMN0

    MnUn={unuU}unf

    {U0={u0uU}={ϵ}nN,Un=f(U,Un1)
    fM

    ตอนนี้เราสามารถกำหนดการปิดของสำหรับอาร์กิวเมนต์แรกของการดำเนินการด้านพลังงานตามที่ระบุไว้ข้างต้นด้วยการตั้งค่าสัญลักษณ์เป็น: U M U , 1  เป็นเซตที่เล็กที่สุดที่  U U , 1  และ  U , 1 = f ( U , 1 , N 0 )U,1UM

    U,1 is the smallest set suchthat UU,1 and U,1=f(U,1,N0)

    และนี่จะให้การดำเนินงานของ Kleene Star แก่เราเมื่อการก่อสร้างถูกนำไปใช้กับการดำเนินการเรียงต่อกันของ Monoid อิสระของสตริง

    พูดตามตรงฉันไม่แน่ใจว่าฉันไม่ได้โกง แต่คำจำกัดความเป็นสิ่งที่คุณทำเท่านั้นและนั่นเป็นวิธีเดียวที่ฉันพบว่าทำให้ดาว Kleene กลายเป็นดาวปิด ฉันอาจจะพยายามหนักเกินไป
    ความคิดเห็นยินดีต้อนรับ

การปิดชุดภายใต้การดำเนินการที่ไม่ได้กำหนดไว้เสมอ

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

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

  • เริ่มต้นด้วยชุดที่ไม่ได้กำหนดเสมอ;Df

  • สร้างอีกชุดสร้างจากองค์ประกอบของด้วยการดำเนินการที่กำหนดไว้เสมอเช่นที่คุณสามารถ ... D f DDf

  • แสดงให้เห็นว่ามีมอร์ฟิซึ่มระหว่างและเซตย่อยของ ที่เป็นเช่นนั้นคือภาพของถูก จำกัด ให้เซตย่อยนั้นD f f DDff

DfDf

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

นี่ก็เป็นวิธีที่สามารถสร้างปันส่วนจากจำนวนเต็ม

และนี่คือวิธีการสร้าง reals แบบคลาสสิกจาก rationals แม้ว่าการก่อสร้างจะซับซ้อนกว่า


เฮ้ขอบคุณการปิดการอธิบายภายใต้การต่อข้อมูลนั้นมีเหตุผลหลายอย่าง แต่เอปไซลอนมีอยู่ในการปิดภายใต้การต่อข้อมูลหรือไม่
mallardz

ϵ

@DavidRicherby จริงๆแล้วสิ่งที่ฉันหมายถึงคือถ้าคุณมีชุด S = {m} แล้วการปิดภายใต้การต่อกันของ S มี epsilon หรือไม่ เพราะ m * ไม่ถูกต้อง? ถ้าไม่เช่นนั้นฉันเดาว่าการปิด Kleene นั้นไม่เทียบเท่ากับการปิดภายใต้การต่อเรียงแม้ว่าฉันจะยังคงเห็นว่าเป็นที่มาของชื่ออย่างไร นอกจากนี้ฉันดูเหมือนจะจำการอ่านที่ไหนสักแห่งว่า Kleene Star เริ่มต้นเป็นผู้ประกอบการแบบไบนารีและหลีกเลี่ยงการผลิต epsilon ได้อย่างไร
mallardz

@DavidRicherby ฉันตอบคำถามเสร็จแล้วในความพยายามที่จะพบกับคำคัดค้าน @ mallardz
Babou

6

:XXX

  1. xx
  2. xyxy
  3. (x)=x

=(xy)=xy

X=2Σx,yΣxyxy

  1. LL
  2. L1L2L1L2
  3. (L)=L

ตัวดำเนินการ Kleene บวกยังตอบสนองความจริงเหล่านี้ดังนั้นจึงเป็นตัวดำเนินการปิดภายใต้คำจำกัดความนี้


นี่ไม่ใช่การลบข้อกำหนดขั้นต่ำสุดใช่ไหม ฉันหมายความว่าถ้าคุณลบข้อกำหนดนี้ทั้งคำตอบของ David Richerby และคำตอบเริ่มต้นของฉันก็ใช้ได้สำหรับดาว Kleene
Babou

ตอบความคิดเห็นของฉันเอง Minimality ถูกเก็บไว้ แต่ถูกกำหนดด้วยความเคารพในชุดของชุดปิด ไม่มีความสัมพันธ์โดยตรงกับการดำเนินการกับสตริงเช่นการต่อข้อมูล จากนั้นดาวฤกษ์ของ Kleene และบวกจะมีการปิดทั้งสองแบบ แต่จะใช้การย่อเล็กสุดเทียบกับเซตที่ปิดต่างกัน นี่เป็นมุมมองที่เป็นนามธรรมมากขึ้น (อย่างน้อยฉันก็มีความพึงพอใจที่เห็นเหตุผลในระดับที่กำหนดในที่สุดฉันก็เป็นวิธีที่ถูกต้องที่จะไป :) น่าสนใจ ขอบคุณ
Babou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.