Subscribe HoaVoUu Youtube
Kính mời Subscribe kênh
YouTube Hoa Vô Ưu
Tác Giả Authors
Sitemap Hoavouu.com
Điền Email để nhận bài mới

Bài X: Tương Tự Hoá và Cưỡng Bức Tương tự Hoá

28 Tháng Mười Hai 201000:00(Xem: 7237)
Bài X: Tương Tự Hoá và Cưỡng Bức Tương tự Hoá


Các bạn thân mến,

Trong các lớp bậc trung học chúng ta cũng đã biết chút ít thế nào là tương tự. Hai bài toán có thể dùng cùng một phương cách để giải thì ta gọi đó là "quá trình tương tự hoá". Với lối suy nghĩ này nhiều bạn cũng đã mang theo lên các lớp bậc đại học cũng như khi đi làm và rồi cho rằng chẳng cần gì để hiểu hay biết nhiều hơn trong phương cách này. Thực ra, nếu sử dụng các phương pháp tương tự một cách thấu đáo thì cùng có thể bạn sẽ tìm thấy "những cá tính mới cuả một người bạn cũ". (Đồ "cổ" thì lúc nào cũng có giá mờ!) Trong bài này thay vì đưa vào những định nghiã cổ điển chúng tôi sẽ cố gắng trình bày nhiều tình huống giải quyết vấn đề đã hay đang đươc tiến hành trong thực tế

Các Bước Cho Tương tự Hoá

Hãy nghĩ vấn đề như là một đối tượng. Và bây giờ xem xét một đối tượng khác. Đối tượng có thể là bất kì nhưng những cơ phận cuả thiên nhiên thường sẽ thích hợp nhất. Viết xuống tất cả những sự tương đồng cuả hai đối tượng các tính chất về vật lý, hoá học, hình dạng, màu sắc... cũng như là chức nănghoạt động

Bây gìờ xem xét sâu hơn sự tương đồng cuả cả hai xem có gì khác nhau và qua đó tìm thấy được những ý mới cho vấn đề.

Ví Dụ 1 Cải tiến máy thu hình (camcorder) khi mơí phát minh so sánh với đôi mắt người

  • Sự tương đồng rất lớn: Thu nhận ảnh chuyển động màu sắc ..(bạn có thể liệt kê một danh sách khá dài về sự giống nhau)

  • Bây giờ phân tích chi tiết hơn:
    - Con mắt người thu hình chuyển động nhanh tốt hơn máy
    - Con mắt người có khả năng tự điều chỉnh độ tương phản khi đối tương có một phong nền thật sáng (chẳng hạn như khi thu 1 người bạn đứng trước ngọn đèn sáng thì ảnh thu vào có thể gặp hiện tương ..."đen mặt"
    - Mắt người biết tự điều tiết để nhìn vật gần hay xa
    - Mắt người có thể cho phép phán đoán khoảng cách và nhận diện hình khối 3 chiều
    - ...

  • Qua đó thấy ra những gì cần cải thiện cho máy thu hình

 Ví Dụ 2: Quá trình tương tự hoá còn gặp rất nhiều trong khoa Phỏng Sinh Học. Ngành này thường nghiên cứu các quá trình, các hiên tượng sinh học trong thiên nhiên để chế tạo ra các thiết bi mới: máy bay trực thăng, quân phục tự đổi màu với môi trường là hai ví dụ rất điển hình về sự "bắt chước" hay tương tự hoá

Cưỡng Bức Tương Tự Hoá:

Đây chỉ là một cách mở rộng tầm nhìn hay bóp méo những hiểu biết hiện có để tìm ra những phát kiến mới. Có rất nhiều cách thức áp dụng sau đây là hai cách:

Cách thứ 1: Gán thêm cho đối tượng sẵn có những đặc tính mới đã có cuả một đối tượng khác:
-Lưu ý: Trái với phương cách tương tự thông thường, đối tượng được chọn để thi hành tương tự hoá sẽ không nhất thiết có nhiều hay không những đặc điểm giống nhau với đối tượng muốn giải quyết vấn đề.

Ví dụ: Khi so sánh phương pháp thảo chương phần mềm khi xử lí thông tin Input-Output kiểu module. Tức chia chương trình ra thanh nhiều bộ phận nhỏ (mỗi phần như vậy thường được gọi là function có chức năng xử lí một phần thông tin) và các đặc tính xử lí thông tin cuả con nguời

Ta sẽ thấy những phần "kiểu con người" đã có như:
- Có thể gìn giữ va di truyền các thông tin (inheritance)
- Có khả năng ẩn dấu quá trình xử lý thông tin và chỉ cho biết kết quả sau khi xử lý (encapsulation)
- Có thể dùng cùng 1 tên gọi nhưng các loại thông tin nhập vào khác nhau có thể được xử lý khác nhau (override operation)
- Có thể tạo ra 1 khuôn mẫu để xử lý các thông tin có kiểu cách xử lý giống nhau (template)
- ...

Qua những đặc điểm thúc ép sự tương tự -- người ta có thể phát triển loại phần mềm mới (như C++) chẳng hạn có đủ những yếu tố mới hay hơn và lạ hơn

Cách thứ 2: Trong cách này thì sự cưỡng bức sẽ áp dụng lên mỗi đặc tính cuả đối tượng một cách có hệ thống
-Lưu ý: Phương pháp này thường áp dụng cho các ngành thiết kế (design)

Các bước như sau:
1- Liệt kê các đặc tính cuả đối tượng
2- Dưới mỗi đặc tính viết ra thêm nhiều tính chất khác thuộc cùng kiểu (hình dạng, chất liệu, kiểu cấu trúc,...
3- Sau khi hoàn tất, tạo nên một thay đổi ngẫu nhiên cuả các đặc tính để "biến" đối tượng thành đối tượng mới

Ví dụ: quá trình thiết kế các kiểu "bút bi" mới tóm lược trong bảng cưỡng bức như sau

Bảng thay đổi thiết kế cho "bút bi":

 

Hình dạng

 Chất liệu

 Kiểu đậy

Màu sắc

 Nguồn mực

Hình Trụ

Plastic

Nắp

Một màu

Ống cố định

Khối vuông

Kim loại

Không nắp

Nhiều màu

Ống mực thay được

Hình điêu khắc

Thủy tinh

Bấm

Màu néon

Ống mực bơm được

Chuỗi hạt

Gỗ

Có đầu chùi

Đổi màu

Không có ống mực

Bầu dục

Giấy

 

Không màu

Ống mực chấm tự hút

Sau khi có bảng rồi thì tạo nên một "phát minh" mới bằng cách gán ghép ngẫu nhiên: Một cây viết bi hình người đánh golf, bằng thuỷ tinh màu xanh lá cây có nắp đậy là cái nón đội và ống mực thay được

Thay cho kết luận:

Để thấy được toàn bộ bức tranh cuả các bước sử dụng khả năng cuả các phương cách tương tự hoá. Ví dụ sau đây sẽ phân tích chi tiết hơn về một quá trình phát minh được tìm ra bằng phương pháp cưỡng bức tương tự hoá do chính tác giả đã đề xuất (trong năm 2000) tạo ra nhằm chống lại nạn "ăn cắp mật khẩu":

1 . Tìm hiểu vấn đề:

Trong những năm cuối cuả thập niên 90, khi Internet trở nên phổ biến thì các hiện tượng tiêu cực lợi dụng chỗ hở cuả Internet và các Hê Điều hành cũng đã xãy ra: Đó là việc ăn cắp tên và mật khẩu cuả các thành viên trong một hệ thống mạng hay e-mail. Ngoài ra, hiện tượng ăn cắp mật khẩu giữa những người làm chung một công sở cũng có thể xãy ra (nhìm trộm nguời ta login và nhớ mật khẩu để ăn cắp các nghiên cứu chẳng hạn)

Nghiên cứu đối tượng: Hệ thống Login (còn gọi là hệ thống đăng nhập:
- Đọc user account (tên đăng nhập)
- Đọc password (mật khẩu) và mã hoá password
- So sánh password đã mã hoá với mã sẵn có cuả người log-in nếu đúng thì cho phép xử dụng các dịch vụ -- Sai thì loại bỏ

2. Xác định vấn đề:

Hackers có thể dùng một hệ thống bao gồm nhiều computer làm việc chung với nhau tấn công vaò một hệ thống password bằng cách ... "mò mẫm" (bạn đọc có thể tìm hiểu thêm các tài liệu viết về phương cách "ăn cắp" password trên mạng ) -- Tức là, các computer sẽ kiến tạo vô cùng nhanh một các mật khẩu bằng cách tăng tiệm biến các giá trị cuả mật khẩu rồi thử đăng nhập vào cho tới khi "mò ra" được cái mật khẩu đúng ... (Qúa trình này sẽ không bao giờ làm nổi ... nếu bạn làm bằng tay; tiếc thay với vận tốc nhiều tỉ phép tính trong 1 giây thì một hệ thống máy (còn gọi là supper computer system) sẽ bẽ gãy hầu như bất kì một mật khẩu thông thường nào nếu được chạy và thử liên tục trong 7-10 ngày)

Mật khẩu cũng có thể bị "đọc" và đem đi chỗ khác đăng nhập.

3. Phân tích cội rễ cuả vấn đề:

  • Trong thời gian mà người thành viên cuả một hệ thống password không đổi giá trị cuả mật khẩu thì "Mật khẩu là một giá trị hằng số tạm thời". Và cũng vì nó là hằng số trong 1 thời gian đủ rộng nên nó mới bị "mò" ra

  • Lực lượng tập họp cuả các giá trị mật khẩu có thể dùng thì tối đa chỉ tương đương với lực lượng tập họp cuả các số tự nhiên (nếu bạn đọc không hiểu khái niệm lực lượng thì cũng có thể bỏ qua nhận xét này.

  • Trong thực tế thì các hằng số mật khẩu tạm thời thường không có giá trị qúa đặc biệt hay quá khó mò (đa số chỉ bao gồm các kí tự trong bảng kí tự La tin ... một số có thể có thêm vài chữ số nhưng cùng không giúp gì nhiều trong việc chống hacker) -- Do đặc điểm này mà các mật khẩu có thể bị mò ra càng nhanh hơn

  • Truờng hợp xấu hơnmật khẩu bị ăn cắp bởi người làm chung (công nhân quét dọn hay cộng sự viên chẳng hạn) -- Đặc điểm phân tích được là: mật khẩu bị ăn cắp sẽ được dùng đăng trên 1 máy khác với máy cuả người chủ hợp pháp trong 1 thời gian sau khi đã bị "nhìn lén" lúc đăng nhập

Trên đây chỉ là 4 điểm yếu quan trọng

4. Áp dụng tương tự hoá:

A. So sánh với hai câu trong kinh điển phật giáo: "vạn vật là vô thường" (Dịch nghiã nôm na: Tất cả mọi vật đều không giữ nguyên trạng thái cuả nó )-- và câu "bất ưng trụ pháp sinh tâm" (đại ý là đừng cố bám vào phật pháp như là chỗ "trụ" cố định) Có lẽ bạn sẽ ngạc nhiên về cách "tương tự cưỡng bức kì quái này" nhưng nó là phát khởi cuả phát minh. So với đối tượng là sự cố định tạm thời cuả mật khẩu -- Ta đi đến 1 ý mới đó là mật khẩu biết tự thay đổi và không là hằng số nưã". Như vậy rõ ràngvấn đề sẽ hầu như được giải quyết vì ... máy có thể mò kiếm ra 1 hằng số dễ dàng chớ khó có thể kiếm ra mật khẩugiá trị cuả nó bị thay đổi liên tục theo thời gian...Nghiã là, nếu giá trị gõ vào cuả mật khẩugiá trị cuả 1 hàm số F(t) cuả thời gian thì mọi việc sẽ êm đẹp hơn nhiều (Hãy "so sánh việc này với việc trò chơi trốn tìm ... và người trốn liên tục thay đổi chỗ núp !!!). Hơn nưã một khi mật khẩu thay đổi theo thời gian thì dẫu người xấu có đọc lóm được giá trị tạm thời cuả đó thì nó cũng sẽ không thể dùng được trong 1 khoảng thời điểm khác

B. Vấn đề ở chỗ làm sao người chủ cuả mật khẩu biết được giá trị thay đổi này để có thể log-in? Câu trả lơì cũng không quá khó là người chủ sẽ định nghiã qui luật thay đổi cuả mật khẩu (tức là người chủ sẽ tự định nghiã hàm số cuả mật khẩu theo thời gian mỗi lần thay đổi mật khẩu thì người chủ cũng có thể đổi luôn cái hàm này)

C. Tuy nhiên như vậy bắt buộc người chủ mật khẩu phải biết ...TOÁN. Và hơn nưã người đó không được tiết lộ hay để hở cái hàm số mật khẩu mỗi khi cài đặt mới.

Trên đây chỉ là những ý sơ khởi cho một hệ thống mật khẩu mới có khả năng chống lại ...việc chôm mật khẩu có thể được dùng trong các hệ thống chuyên nghiệp.


Gửi ý kiến của bạn
Tắt
Telex
VNI
Tên của bạn
Email của bạn
(Xem: 7875)
Trứng chay ăn với bánh mì nướng thật là tuyệt vời. Đây là một món ăn điểm tâm chay lành mạnh, thịnh soạn...
(Xem: 8313)
Lòng đỏ thì làm bằng đậu xanh với bột carrot xào với tí dầu và tí xíu muối.
(Xem: 8310)
Cắt nấm hương, măng, cà rốt thành hạt gạo, cho các hạt vừa cắt cùng với khoai tây nhuyễn, đậu xanh, muối, bột ngọt...
(Xem: 8245)
Cho khoai tây nhuyễn và cà rốt nhuyễn, muối, bột ngọt vào thố trộn đều thành miếng hình chữ nhật dài 5cm, rộng 1.5cm để làm thịt tôm...
(Xem: 10016)
Trộn tất cả các vật liệu trên với nhau, nêm gia vị vào hỗn hợp chủ yếu là lợ lợ không mặn, sau đó trộn vào hỗn hợp 1tsp bột năng.
(Xem: 8057)
Hòa tan các vật liệu nước xốt trong một nồi nhỏ. Nấu sôi và để ra chén. - Hòa tan các vật liệu bột chiên dòn trong một tô nhỏ.
(Xem: 8710)
Cắt tàu hũ ki lá thành từng miếng vuông khoảng 8cm, phủ 1 lớp khăn sạch lên. Nấm hương ngâm nước, để ráo, xắt nhỏ.
(Xem: 7494)
Dầu ăn, xả, muối, bột ngọt chay quậy đều, cho tôm (để tan đá) vào trộn đều cho thấm gia vị. - Spagetti luộc chín, để ráo
(Xem: 8443)
Đậu hủ ky frozen để mềm, lựa chỗ không rách dùng để cuộn tôm (xem hình) - phần còn lại ngâm với nước cho mềm - sau đó rửa sạch.
(Xem: 12149)
Ngâm cho bánh mềm, xong vớt ra rổ cho ráo bớt nước. Cho chút nước cốt dừa (không có cũng được, nước dừa là cho bánh được béo và thơm)...
(Xem: 12373)
Trứng luộc chín bóc vỏ để vào tô. Tofu cắt vuông vuông chiên vàng cho đều. Thịt ba chỉ chay thái miếng...
(Xem: 8034)
Cho thịt bò chay khô và gia vị để nấu thịt bò chay vào một nồi nhỏ, nấu cho mềm và sạch mùi bột. Vắt ráo.
(Xem: 8172)
Nấm mèo ngâm nở, băm nhuyễn. Nấm bào ngư chẻ đôi. Khoai lang đỏ gọt vỏ, cà rốt xắt cọng khoảng 5cm.
(Xem: 8908)
Tàu hủ ky để cho rã đá, thái miếng, lấy giấy napkin thấm thật khô rồi bỏ ra rổ, bắc chảo lên cho dầu ăn vào chiên như chiên tofu...
(Xem: 8207)
Đậu hũ tươi bóp nhuyễn trộn đều với Ham chay, tí muối, tiêu, bột ngọt rau cải, mè dầu, tí dầu gừng, nêm nếm chả đậu hũ lại cho vừa ăn...
(Xem: 7888)
Ðặt chảo lên bếp, vặn lửa trung bình, cho nước, ớt bột, và bột nêm taco vào. Khuấy đều và nấu cho sôi. Cho thịt chay vụn vào...
(Xem: 14943)
Phi hành cho thật thơm, sau đó cho thịt sườn vào xào, đảo nhẹ tay, giảm lửa nhỏ xuống medium. Cho xì dầu + tiêu + đường vào, trộn đều...
(Xem: 8668)
Bánh mì cắt thành miếng vuông. Măng đông cắt thành khúc. Khoét một cái lỗ ở giữa miếng bánh mì, cắm măng đông vào.
(Xem: 8161)
Rót dầu canola vào chén hành lá, cho vào lò vi ba nấu khoảng 1 phút (hoặc có thể phi trong nồi nhỏ, khi dầu vừa nóng thì tắt lửa).
(Xem: 8830)
Củ Sắn: gọt vỏ, rửa sạch thái chỉ, sau đó đem nấu với chút muối để lấy nước dùng (độ 2 lít). Hớt bọt cho nước được dùng trong.
(Xem: 8775)
Rau dền rửa sạch, để ráo nước, xắt nhỏ và ướp 1/3 muỗng cà phê muối khoảng 15 phút, vắt rau lấy 1/2 muỗng canh nước để lấy màu đỏ...
(Xem: 8463)
Lấy cái nồi nhỏ, cho nước + nước tương, hắc xì dầu, bột xá xíu, quế, tai vị, gừng vào nồi, canh sao cho vừa bằng với tàu hủ ky...
(Xem: 7290)
Lặt rau muống, rửa sạch. Chao tán nhuyễn, trộn với đường, xì dầu. Cho dầu vào chảo chờ thật nóng...
(Xem: 7244)
Bỏ cà rốt, ngô bao tử vào tô cùng với nước ấm, phủ giấy bảo quản, để vào lò vi sóng, đặt chế độ Micro khoảng 4 phút.
(Xem: 7964)
Bạn sẽ chọn mua những loại rau củ nhiều màu sắc như cà rốt, bông cải, củ dền, hành tây còn nhỏ để hấp.
(Xem: 7610)
Cho dầu ăn phi thơm với hành củ trong nồi nhỏ, cho cà chua vào xào trước kế đến cà rốt, khoai tây, đảo đều khoảng 5 phút...
(Xem: 8056)
Cho một tí dầu vào nồi canh xào sơ gia vị phá lấu cho thơm, cho nửa nồi nước sôi vào nấu với củ cà rốt, củ cải trắng...
(Xem: 9712)
Gọt sạch những màn đen trên thân nấm, khía một hình chữ thập (+) rửa sạch và để ráo.
(Xem: 7772)
Cho củ cải, củ sắn vào nồi, đổ nước lọc, hầm chừng 1 tiếng với lửa riu riu, nướng củ hành, cinnamon, tai hồi...
(Xem: 7809)
Nấm rơm rửa sơ, để ráo cắt đôi những búp lớn. Bắp non rửa sạch và chia mỗi trái làm đôi.
(Xem: 8660)
Nấm rơm: rửa sạch có pha chút muối, để ráo nước. - Ham chay cắt hột lựu,chiên vàng
(Xem: 7470)
Cho nấm đuôi phượng vào nước sôi luộc chín, vớt ra làm nguội bằng nước lạnh, để ráo nước rồi chẻ làm đôi.
(Xem: 7880)
Ðặt chảo lên bếp lửa trung bình, cho thịt khô chay và dầu hào chay vào. Rưới nước súp chay vào từ từ và nấu cho mềm...
(Xem: 9962)
Mì spaghetti: nấu nước sôi, cho mì vô luộc khoảng 10 phút. Vớt ra, rửa nước lạnh cho sạch nhớt.
(Xem: 8435)
Chả chay cắt miếng bán nguyệt để sẵn. - Mì căn ướp gia vị, xíu hoặc nướng, cắt lát mỏng.
(Xem: 8825)
Mì căn tươi cắt sợị sẵn. Củ Cải mặn ngâm nước sả hết mặn bóp khô. Phi leak or hành cho thật thơm...
(Xem: 7222)
Cho dầu canola vào chảo nóng. Thả mì căn non vào và chiên ngập dầu cho vừa vàng để được cứng chắc.
(Xem: 7323)
Cắt mì căn thành miếng hình thoi, cắt nấm đông cô làm đôi, cắt măng, nấm, cà rất thành miếng, chẻ đôi ruột cải xanh.
(Xem: 7175)
Chiên mì căn trong chảo dầu cho đến khi vàng đều. Gắp ra đĩa và để một bên.
(Xem: 7065)
Mì căn rửa sạch và để ráo. Dùng tay xé nhỏ. (Bằng cách này mì căn sẽ thấm ngon hơn.)
(Xem: 6860)
Thơm gọt vỏ, bỏ mắt thơm, chẻ làm tư. Xắt lát mỏng - Cần tàu rửa sạch, xắt nhỏ. Cà chua xắt múi.
(Xem: 6732)
Chiên kỹ các viên mì căn trong dầu nóng cho bột cứng chắc lại. Đun sôi gia vị và 2 muỗng canh dầu...
(Xem: 7584)
Trong các lớp bậc trung học chúng ta cũng đã biết chút ít thế nào là tương tự. Hai bài toán có thể dùng cùng một phương cách để giải thì ta gọi đó là "quá trình tương tự hoá".
(Xem: 7130)
Ngâm đậu phộng trong vòng 30 phút, đổ vào chảo và cho vỏ quít và nước vào, đun sôi. Ninh thêm 30 phút khi đậu mềm vớt ra.
(Xem: 7516)
Mì căn rửa sạch và để ráo (hay mì căn làm bằng bột). Dùng tay xé nhỏ. (Bằng cách này mì căn sẽ thấm ngon hơn)
(Xem: 7126)
Mì căn rửa sạch, để ráo nước. Ðể một bên. - Nấu gói ngũ vị hương, nước tương và đường với một ít nước cho sôi lên.
(Xem: 6963)
Cắt miếng mì căn thành từng lát dầy, trụng nước sôi 2 phút, trụng nước lạnh để ráo. Trụng rau vào nước nóng...
(Xem: 9509)
Nấm hương ngâm nước, cắt bỏ chân, để ráo, những búp lớn cắt làm đôi, trộn 1/4 muỗng cà phê đường và 1/4 muỗng cà phê bột năng.
(Xem: 7003)
Cho dầu canola vào chảo. Khi chảo nóng, để đậu hủ vào chiên ngập dầu cho vàng, rồi thái miếng vừa ăn.
(Xem: 6880)
Cho 1 cái nồi lên bếp cho 2 muỗng dầu ăn phi kiệu cho thơm, sau đó cho tất cả nguyên liệu vô đảo sơ, trừ đậu hoà lan, cho nước sâm sấp vào nồi măng...
(Xem: 6781)
Dưa leo cắt theo chiều dọc, bỏ ruột, cắt mỏng. Cà rốt gọt bỏ vỏ bảo chỉ, cả 2 bỏ vô thau với 1 muỗng cà phê muối...
(Xem: 6813)
Dưa leo, càng đặc ruột càng ngon, để vỏ, chẻ dọc moi bỏ hột, cắt xéo thành lát mỏng, xốc trộn với ít muối bọt...
(Xem: 9700)
Đậu hủ bóp nhỏ đem trộn với bún tàu + nấm rơm + nấm mèo + kiệu bằm nhỏ + 2 muỗng súp chao nghiền...
(Xem: 15972)
Tinh bột năng nhồi cho vừa dẻo và cho vào cối giã nhuyễn chao dầm nhỏ, sả, ớt, boarô bằm nhỏ.
(Xem: 13194)
Bắc xoong lên bếp, cho dầu vào, dầu nóng cho xả + giềng, xào thơm.
(Xem: 6734)
Chopped Spinach đem nấu trong microwave như trong hộp dạy, để cho ráo nước. Trộn với cheeese Ricotta.
(Xem: 6453)
Cho dầu ăn vào chảo, khi dầu nóng, cho thịt chay vào xào chín, khoảng 5 phút.
(Xem: 7198)
Nấu đậu phọng cho mềm, hay nấu hạt sen cho mềm ,cho những thứ còn lại (1 - 5) vào nấu cho chín tới (hoặc nấu nhừ...
(Xem: 11101)
Cho 1 muỗng canh dầu ăn vào chảo chờ nóng, xong cho nấm vào trước đảo đều kế đến khoai tây và đậu hủ đã chiên hơi vàng...
(Xem: 11757)
Cắt khổ qua thành từng khoanh tròn có bề dày khoảng 2 phân - Dùng dao nhọn để nạo bỏ ruột và hột ở giữa khoanh khổ qua.
Quảng Cáo Bảo Trợ
Gủi hàng từ MỸ về VIỆT NAM
Get a FREE Online Menu and Front Door: Stand Banner Menu Display for Your Restaurant