Đại diện chính thức của một hệ thống phân cấp trừu tượng


9

Giới thiệu

Tôi đang viết luận án tiến sĩ về Mô hình trừu tượng Delta (ADM), một mô tả đại số trừu tượng về sửa đổi (được gọi là deltas ) có thể hoạt động trên các sản phẩm (như trong 'sản phẩm phần mềm'). Điều này có thể được sử dụng để tổ chức một bộ các sản phẩm liên quan (một 'dòng sản phẩm') như một sản phẩm cốt lõi đơn giản và một bộ các đồng bằng được áp dụng có điều kiện, và do đó cho phép tái sử dụng nhiều hơn các vật phẩm cơ bản.

Các chi tiết về mô hình delta không thực sự quan trọng đối với câu hỏi của tôi, nhưng ADM đóng vai trò là một ví dụ tốt để giải thích vấn đề, vì vậy tôi sẽ giới thiệu các khái niệm quan trọng nhất.

Lý lịch

Cấu trúc chính của lãi suất là cơ delta . Sản phẩm đến từ một tập phổ P . Đồng bằng châu thổ đến từ một monoid ( D , , ε ) với nhà điều hành thành phần: D × DD và yếu tố trung lập ε D . Toán tử đánh giá ngữ nghĩa [(P,D,,ϵ,[[]])P(D,,ϵ):D×DDϵD biến đổi một 'cú pháp' delta d D thành một mối quan hệ [[[]]:D2P×PdD mà quyết định như thế nào d có thể sửa đổi một sản phẩm.[[d]]P×Pd

Câu hỏi

Vì ADM là một đại số trừu tượng, hầu hết các công việc của tôi tóm tắt từ bản chất cụ thể của các sản phẩm và đồng bằng, và một số kết quả được chứng minh mà không giảm xuống mức cụ thể hơn. Những kết quả đó dự kiến ​​sẽ được chuyển sang một miền cụ thể hơn, nhưng tôi chưa chính thức hóa điều này.

Có các ví dụ và nghiên cứu trường hợp hoạt động trong một miền cụ thể: mã nguồn hướng đối tượng, X , số tự nhiên, hồ sơ điện thoại di động, v.v ... Ngoài ra còn có một số giai đoạn trừu tượng trung gian như các cặp khóa-giá trị lồng nhau. Đối với mỗi tôi Định nghĩa lại (hoặc 'tinh chỉnh')( P , D ,,ε, [LATEX .(P,D,,ϵ,[[]])

Tôi muốn làm cho hệ thống phân cấp này rõ ràng: (1) để cung cấp sự rõ ràng hơn cho người đọc và (2) để chính thức biện minh bằng cách sử dụng kết quả từ các mức trừu tượng hơn.

Câu hỏi của tôi: Làm thế nào tôi nên chính thức tổ chức các mức độ trừu tượng này?

Tôi hy vọng có thể suy luận với một mối quan hệ sàng lọc đơn giản trên các deltoids. Và tôi cảm thấy như nó có thể được định nghĩa đơn giản bằng cách kêu gọi các mối quan hệ tập hợp con trên PD . Nhưng tôi chưa chắc chắn. Có cách tiếp cận hiện tại cho loại vấn đề tôi đang mô tả không? Ấn phẩm tôi nên đọc?PD

Hệ thống phân cấp Deltoid

Để cho bạn biết rõ hơn về ý tôi, đây là hệ thống phân cấp trừu tượng mà tôi có trong đầu:

  • Tóm tắt Deltoid : Đây là deltoid cơ bản trong đó các sản phẩm và deltas vẫn có thể là bất cứ thứ gì. Hầu hết các lý thuyết dựa trên điều này và hầu hết các kết quả được chứng minh ở cấp độ này.
    • Quan hệ Deltoid : Ở đây, deltas là quan hệ trên [P là chức năng nhận dạng. [[]]
      • Chức năng Deltoid : Ở đây, deltas là chức năng (hoặc 'xác định').
    • Số tự nhiên Deltoid : Đây là deltoid bê tông đơn giản nhất, được tạo ra chỉ để minh họa cho sàng lọc deltoid. Ở đây, các sản phẩm là số tự nhiên và deltas D = N + là các dãy số đơn giản đại diện cho các phép toán đa thức.P=ND=N+
    • Nested Key-Value Pair Deltoid : Một mức độ trừu tượng trung gian cho bất kỳ hệ thống phân cấp nào trong đó các khóa được ánh xạ tới các giá trị hoặc phân cấp phụ. Deltas có thể thực hiện sửa đổi trong 'cây' này ở bất kỳ độ sâu nào.
      • OOP Deltoid : Dành cho các biểu diễn trừu tượng của các chương trình hướng đối tượng. Về cơ bản, chúng là các cặp khóa-giá trị lồng nhau, bởi vì các chương trình ánh xạ tên mô-đun thành tập hợp các lớp, ánh xạ tên lớp thành tập hợp phương thức, ánh xạ tên phương thức thành triển khai phương thức.
        • ABS Deltoid : ABS là ngôn ngữ lập trình hướng đối tượng thực sự.
      • Cấu hình điện thoại Deltoid : Ở đây, một sản phẩm là ánh xạ phẳng của các cài đặt (như âm lượng, độ sáng màn hình, v.v.) đến các giá trị từ một miền tương ứng.
    • DeltoidLATEX: Sản phẩm làTài liệu X và deltas sửa đổi chúng bằng cách xác định lại các macro.LATEX

Chà, điều đó sẽ cho bạn một ý tưởng công bằng về những gì tôi có trong đầu. Lưu ý, nhân tiện, đối với bất kỳ vùng đồng bằng nào, Là một đồng cấu monoid từ D đến D ' thuộc cơ delta quan hệ tương ứng.[[]]DD

Hệ thống phân cấp thực tế có thể lớn hơn. Nó cũng có thể được tổ chức khác nhau, dựa trên loại lý thuyết sàng lọc nào tôi sẽ sử dụng. Ví dụ: nếu tôi sử dụng mối quan hệ tập hợp con đơn giản trên D , Deltoid ABS sẽ không phù hợp với Deltoid Cặp giá trị khóa lồng nhau, vì các sản phẩm và deltas thực sự là văn bản thuần túy (mã nguồn). Nhưng hệ thống phân cấp như được đưa ra vẫn có thể hoạt động nếu tôi sử dụng đồng cấu.PD


3
Bạn có thể làm cho nó rõ ràng hơn về thứ bậc trừu tượng là gì? Những thứ trừu tượng của những thứ khác là gì?
Dave Clarke

Chào Dave! Tôi cập nhật câu hỏi của tôi. Tôi hy vọng điều này làm rõ mọi thứ một chút.
mrcvens

4
Làm thế nào về việc xây dựng các danh mục cho từng loại deltoid, và sau đó nghiên cứu các chức năng điều chỉnh bên trái và bên phải (nếu có) giữa chúng?
Martin Berger

Tôi sợ rằng tôi không rành về lý thuyết thể loại. :-(
mrcvens

Câu trả lời:


8

Tôi tin rằng sẽ có ích cho bạn khi tìm kiếm lý thuyết về giải thích trừu tượng, cung cấp câu trả lời rất kỹ lưỡng cho các câu hỏi tương tự trong lĩnh vực phân tích chương trình dựa trên mạng hơi khác nhau.

Tôi nhận thấy rằng bạn đang sử dụng một khung dựa trên đại số. Tôi đang sử dụng từ đại số ở đây theo nghĩa đại số phổ quát, ở đó tôi cho rằng các ràng buộc về cấu trúc của đại số được đưa ra bởi sự bằng nhau giữa các thuật ngữ. Có hai giác quan khác nhau trong đó trừu tượng (hoặc phân cấp) nhập vào hình ảnh.

  1. Trừu tượng như một mối quan hệ giữa hai đại số cụ thể. Bạn có thể muốn nói rằng một đại số có cấu trúc phong phú hơn một đại số khác, hoặc mọi vấn đề bạn có thể giải quyết với một đại số bạn có thể giải quyết với đại số kia. Loại mối quan hệ này là những gì sẽ được chính thức hóa mua đồng cấu, hoặc một số ánh xạ khác giữa các đại số.
  2. Hệ thống phân cấp trừu tượng như gia đình của đại số. Trong trường hợp của bạn, đây sẽ là các họ của deltoids với các thuộc tính nhất định. Như một ví dụ tổng quát hơn, hãy xem xét tất cả các bộ được đặt hàng một phần. Chúng ta có thể nghĩ về mạng tinh thể, mạng phân phối và mạng Boolean như một chuỗi các phân họ có tính chất phong phú hơn.

Hai khái niệm có liên quan chặt chẽ nhưng khác nhau.

Trừu tượng giữa hai cấu trúc

Cái nhìn sâu sắc của giải thích trừu tượng là rất hữu ích để ban cho các cấu trúc bạn xem xét với một khái niệm về trật tự. Hãy xem xét hai cấu trúc

(M,fM)(N,fN)fM:MMfN:NN

Một phép đồng hình theo nghĩa đại số phổ quát sẽ trông giống như thế này:

h:MNh(fM(a))=fN(h(a))

Chúng ta có thể xem hai cấu trúc xuất hiện ở trên dưới dạng cấu trúc được đặt hàng trước

(M,=,fM)(N,=,fN)

và phép đồng hình chúng ta có thể viết lại thành một hàm thỏa mãn

  1. a=bh(a)=h(b)
  2. aMh(fM(a))=fN(h(a))

Bây giờ, giả sử bạn có một số khái niệm khác về xấp xỉ có sẵn có ý nghĩa. Ví dụ, khi chúng ta xử lý các tập hợp trạng thái trong xác minh chương trình, việc bao gồm tập hợp con có ý nghĩa đối với ứng dụng nhất định hoặc khi xử lý các công thức trong khấu trừ tự động, hàm ý có ý nghĩa. Tổng quát hơn, chúng ta có thể xem xét

(M,,fM)(N,,fN)

Bây giờ, thay vì đồng cấu, chúng ta có thể có một hàm trừu tượng

α:MN

  1. abα(a)α(b)
  2. α(fM(a))fN(α(a))aM

NMNNMN

MN

γ:NMfM(γ(b))γ(fN(b))

αγ

Tất cả mọi thứ chúng tôi đã làm cho đến nay chỉ chính thức hóa khái niệm trừu tượng giữa một cặp cấu trúc. Những điều tôi đã nói có thể được tóm tắt ngắn gọn hơn nhiều trong ngôn ngữ của lý thuyết thể loại. Tôi đã tránh các danh mục vì nhận xét của bạn ở trên.

Phân cấp trừu tượng

MNNMN1N2M

Nếu tôi xem xét ví dụ của bạn, có vẻ như deltoid trừu tượng của bạn có thể là một ứng cử viên cho yếu tố tối đa trong một số thứ bậc. Tôi không hoàn toàn chắc chắn bởi vì deltoid trừu tượng dường như là một họ của deltoids chứ không phải là một deltoid cụ thể.

Những gì bạn có thể làm bây giờ là xem xét các hệ thống phân cấp khác nhau. Hệ thống phân cấp của tất cả các deltoids. Một hệ thống phân cấp phụ dựa trên những cân nhắc khác nhau mà bạn có ở trên. Một ví dụ cụ thể trong ngữ cảnh giải thích trừu tượng là một hệ thống các mạng hoàn chỉnh nằm trong một kết nối Galois với một mạng lũy ​​thừa nhất định và các hệ thống phân cấp chỉ bao gồm các mạng Boolean phân phối hoặc duy nhất.

Như Martin Berger đã chỉ ra trong các bình luận, khái niệm trừu tượng giữa các hệ thống phân cấp được nắm bắt bởi sự điều chỉnh giữa các loại.

Một quan điểm phân loại

Có một bình luận yêu cầu bình luận thêm về các thể loại. Nhận xét đó không còn nữa nhưng dù sao tôi cũng sẽ trả lời.

Hãy lùi lại và xem những gì bạn đang làm trong việc thiết kế deltoids và những gì tôi đã mô tả ở trên từ góc độ tổng quát hơn. Chúng tôi quan tâm đến việc hiểu cấu trúc thiết yếu của các thực thể mà chúng tôi thao tác trong ngữ cảnh phần mềm và mối quan hệ giữa các thực thể này.

Nhận thức quan trọng đầu tiên là chúng ta không chỉ quan tâm đến một tập hợp các yếu tố mà còn trong các hoạt động mà chúng ta có thể thực hiện trên các yếu tố đó và các thuộc tính của các hoạt động đó. Trực giác này thúc đẩy việc thiết kế các lớp trong lập trình hướng đối tượng và định nghĩa các cấu trúc đại số. Bạn đã làm cho trực giác này rõ ràng trong định nghĩa của một deltoid đã xác định một vài hoạt động quan tâm. Tổng quát hơn, đây là quá trình suy nghĩ dựa trên các mô tả đại số. Chúng ta cần xác định các hoạt động của chúng ta là gì và chúng có những tính chất gì. Bước này cho chúng tôi biết cấu trúc kiểu mà chúng tôi đang làm việc.

Nhận thức thứ hai là chúng ta không chỉ quan tâm đến một tập hợp các yếu tố mà còn là mối quan hệ trừu tượng. Việc chính thức hóa đơn giản nhất mà tôi có thể tưởng tượng về sự trừu tượng là xem xét một tập hợp được sắp xếp trước. Chúng ta có thể nghĩ về một tập hợp được sắp xếp trước như một sự khái quát nghiêm ngặt của một tập hợp thành một cái gì đó đi kèm với một khái niệm gần đúng được nướng trong.

Chúng tôi lý tưởng muốn làm việc trong một môi trường mà cả những hiểu biết ở trên là công dân hạng nhất. Có nghĩa là, chúng tôi muốn một cài đặt được gõ giống như của đại số, nhưng cũng là cài đặt nhận biết gần đúng của một thứ tự. Bước đầu tiên theo hướng này là xem xét một mạng tinh thể. Một mạng tinh thể là một cấu trúc thú vị về mặt khái niệm bởi vì chúng ta có thể định nghĩa nó theo hai cách tương đương.

  1. (L,,)abab=a
  2. (L,)L

Do đó, một mạng tinh thể là một cấu trúc toán học có thể được tiếp cận từ quan điểm đại số hoặc gần đúng. Thiếu sót ở đây là các yếu tố của một mạng tinh thể không có cấu trúc kiểu được đưa vào mối quan hệ gần đúng. Có nghĩa là, chúng ta không thể so sánh các yếu tố dựa trên khái niệm có cấu trúc nhiều hay ít.

Trong bối cảnh của vấn đề của bạn, bạn có thể nghĩ về các phạm trù như một sự khái quát hóa tự nhiên của các tiền đề nắm bắt cả khái niệm gần đúng (trong các hình thái) và cấu trúc kiểu trong một thiết lập đại số. Việc thiết lập lý thuyết thể loại cho phép chúng ta phân phối với nhiều sự khác biệt không cần thiết và tập trung vào cấu trúc của các thực thể mà bạn quan tâm và xấp xỉ cấu trúc đó. Các thuộc tính và điều chỉnh phổ quát cung cấp cho bạn vốn từ vựng và công cụ rất mạnh để hiểu được cảnh quan của các cấu trúc mà bạn quan tâm và cho phép xử lý toán học chặt chẽ các khái niệm trực quan như các mức độ trừu tượng khác nhau.

Về nhận xét của tôi về deltoids trừu tượng, có vẻ như những gì bạn muốn là một thể loại. Deltoid trừu tượng là một thể loại cụ thể tương tự như thể loại của bộ. Có nhiều loại khác bạn đang xem xét. Ban đầu tôi nghĩ bạn đang định nghĩa một deltoid rằng theo nghĩa của lý thuyết thể loại sẽ là một đối tượng đầu cuối (hoặc cuối cùng).

Bạn đang nghiên cứu các loại câu hỏi mà lý thuyết thể loại cung cấp một câu trả lời rất thỏa mãn cho. Tôi hy vọng bạn sẽ có thể tự đi đến kết luận đó.

Người giới thiệu

  1. Giải thích trừu tượng và ứng dụng cho các chương trình logic , Patrick Cousot và Radhia Cousot. Nửa đầu của bài viết này là một giới thiệu phong cách hướng dẫn chung về chủ đề giải thích trừu tượng.
  2. Khung giải thích trừu tượng , Patrick Cousot và Radhia Cousot. Bài viết này thảo luận về tất cả các khả năng tôi đã phác thảo ở trên liên quan đến các chức năng trừu tượng hóa và cụ thể hóa rất chi tiết.
  3. Thiết kế có hệ thống các Khung phân tích chương trình , Patrick Cousot và Radhia Cousot. Đây là bài báo giới thiệu khái niệm phân cấp trừu tượng trong bối cảnh phân tích chương trình.
  4. Tổng quát hóa bảo tồn mạnh mẽ bằng cách giải thích trừu tượng , Francesco Ranzato và Francesco Tapparo. Bài viết này áp dụng những ý tưởng này trong một bối cảnh trừu tượng khác nhau bảo tồn các công thức logic tạm thời. Bạn sẽ tìm thấy các ví dụ hoạt động của Boolean và trừu tượng phân phối ở đây.
  5. Giải thích trừu tượng, Quan hệ logic và mở rộng Kan , Samson Abramsky. Trình bày một quan điểm lý thuyết thể loại trên các tài liệu lý thuyết thứ tự ở trên.

Cảm ơn câu trả lời thấu đáo của bạn! Và thiếu các thể loại được nhiều đánh giá cao. ;-) (Tôi sẽ phải nghiên cứu một số lý thuyết danh mục trung gian trong tương lai.) Tôi sẽ xem các tài liệu tham khảo của bạn. - = # = - Trong lúc này, tôi có một câu hỏi về câu nói của bạn "deltoid trừu tượng dường như là một họ của deltoids chứ không phải là một deltoid cụ thể". Bạn có thể giải thích làm thế nào deltoid trừu tượng khác nhau về mặt này so với những người khác? Bất kỳ cấu trúc đại số nào có thể được coi là gia đình của tất cả các tinh chỉnh của nó?
mrcvens

@VijayD Cảm ơn bạn đã cập nhật về CT. Tôi là người có lỗi trong việc đưa ra nhận xét và sau đó xóa nó. Tôi tin tưởng sâu sắc rằng CT phù hợp hơn với vấn đề của OP. Tôi thậm chí còn bị thuyết phục hơn sau khi xem cập nhật của bạn. Tôi nghĩ rằng nếu OP không muốn làm điều đó bằng CT, người khác sẽ làm.
scaaahu

Có vẻ như rất có thể lý thuyết thể loại cung cấp câu trả lời tốt nhất cho câu hỏi của tôi. Và tôi mong được nghiên cứu nó và hiểu những câu trả lời đó tốt hơn. Và thực sự, việc tôi không có thời gian để nghiên cứu và áp dụng lý thuyết danh mục không nên là một cái cớ để đưa ra câu trả lời 'kém hơn' trên trang web này. - = # = - Tuy nhiên, tôi đánh giá rất cao sự cân nhắc của Vijay. Câu trả lời của anh ấy ở cấp độ monoid khá hữu ích. - = # = - Vì vậy, tôi không thể sử dụng danh mục ngay bây giờ. Nhưng tôi chắc chắn sẽ khám phá các tùy chọn trong công việc trong tương lai. Cảm ơn tất cả!
mrcvens

Bạn đang ở một vị trí tuyệt vời để chọn chủ đề bởi vì bạn có trước một vấn đề mà bạn hiểu rõ và có thể phân tích trực tiếp từ quan điểm phân loại. Tôi thấy đây là cách tốt nhất để học một cái gì đó và mong bạn đừng trì hoãn vì các văn bản về lý thuyết thể loại có vẻ đáng sợ. Tôi chắc chắn có những phần kích thước cắn để nghiên cứu. Chúc may mắn cho hàng phòng ngự.
Vijay D

9

XX

δδ

δ

Tôi không chắc chắn bạn muốn chính thức hóa điện thoại di động LaTeX và Nokia quá nghiêm túc trong lý thuyết chung. Nhưng tất nhiên lý thuyết của bạn nên được áp dụng cho các ví dụ như vậy (chỉ không bị gác máy khi bạn phát hiện ra rằng điện thoại di động thực sự không có ngữ nghĩa được xác định rõ).

Bạn đang thực sự thay đổi bản thân bằng cách nhấn mạnh vào một công nghệ được xác định trước (bởi cố vấn của bạn?), Bởi vẻ ngoài của nó.


2
Nói chung tôi đồng ý với bạn. Và tôi chưa bao giờ sử dụng như một cái cớ. :-) Nhưng trong trường hợp này, hầu hết các luận án của tôi đã được viết và monoid đã được sử dụng trong tất cả các ấn phẩm của tôi. - = # = - Điều đó được nói, bạn thực hiện một điểm tuyệt vời. Trong ví dụ vỏ nhựa / kim loại, bây giờ tôi xử lý nó bằng cách cho phép thành phần, nhưng có kết quả delta đánh giá mối quan hệ trống rỗng (như bạn đã đoán). Tất cả đều được xác định rõ ràng, vì vậy bây giờ nó đã đủ. Nhưng tôi có thể thấy rằng đề nghị của bạn là thanh lịch hơn. Bạn đã cho tôi một lý do tốt để nghiên cứu lý thuyết thể loại. Cảm ơn!
mrcvens

@mhelvens Tôi là một kỹ sư phần mềm đã nghỉ hưu sống trong ngành công nghiệp lâu năm. Đã trở lại TCS sau khi nghỉ hưu. Tôi sẽ hỏi bạn một câu hỏi thực tế. Giả sử bạn chính thức hóa thành công các sản phẩm điện thoại Nokia sử dụng monoid trong luận án của mình, bạn sẽ nói gì trong phần bảo vệ miệng nếu Apple thông báo rằng họ mua lại Nokia? Thông báo đó sẽ phá vỡ mô hình của bạn? Dường như với tôi, lý thuyết càng chung chung thì mô hình càng tốt.
scaaahu

@scaaahu Câu hỏi thú vị. :-) Hãy để tôi bắt đầu bằng cách trả lời: "Không, hoàn toàn không." Lý thuyết này độc lập với 'loại' thiết bị. - = # = - Tôi đảm bảo với bạn rằng không cần phải thuyết phục tôi về lợi ích của việc khái quát hóa. (Trên thực tế, tôi nghĩ rằng đôi khi tôi làm quá sức.) Điều đó xảy ra đến mức tôi đã không bắt gặp lý thuyết thể loại kịp thời để nó hữu ích cho công việc tiến sĩ của tôi. Như tôi đã nói, tôi đồng ý rằng nó có thể là một cách tiếp cận có giá trị. Nhưng hai tháng kể từ thời hạn luận án của tôi không phải là thời gian để thay đổi căn bản cách tiếp cận của tôi.
mrcvens

Rõ ràng, bạn đã sẵn sàng cho một postdoc ;-)
Andrej Bauer

Đơn xin tài trợ đã được gửi đi. :-) Tôi hy vọng tôi sẽ có thể tiếp tục trong lĩnh vực này.
mrcvens
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.