หรือ predicate optimization

0

คำถาม

คิดว่าฉันต้องการค์ 3 แอททริบิวต์ต่างๆ:A1,A2,ขนาด a3 เช่น:

  1. A1 สามารถเดียวที่มีค่า:1,2,3
  2. A2 สามารถเดียวที่มีค่า: 10, 20, 30, 40, 50
  3. ขนาด a3 สามารถเดียวที่มีค่า:100,200

และจำนวนของกฎสำหรับตัวอย่าง:

R1: (A1 in (1, 2)) AND (A2 in (20, 40, 50)) AND (A3 IN (100))
R2: (A1 in (1, 3)) AND (A2 in (10, 30)) AND (A3 in (200))
R3: (A1 in (1, 2)) AND (A2 in (10)) AND (A3 in (100))

งั้นนั่นคือ predicate: R = R1 or R2 or R3ซึ่งฉันต้องย่อหน้าต่าง. เรื่องก็คือนั่น A1=1 ผ้าห่มทั้งที่เป็นไปได้ในการเต้นของ A2 แล้ว A3ดังนั้นเราสามารถนำมันให้เป็นแยกกันอเงื่อนไขว่า: R = (A1=1) or (the rest)

ฉันพยายามตรรกะ minimization วิธีการของโดนประกาศว่าตัวแปรเป็น a=(A1=1), b=(A1=2), ..., k=(A3=200)อย่างไรก็ตามมันดูเหมือนจะไม่ได้ทำงาน,เพราะ:

  1. ค่าตรรกะ optimizer ไม่รู้เรื่องทั้งหมดค่าของแอททริบิวต์เป็น
  2. ตัวแปรตรรกะไม่ได้เป็นอิสระ เมื่อพยายามที่อยู่ของพวกปัญหาการแสดงกำลังกลายเป็นเหมือนกัซับซ้อนและก็เหมือนกั QMC ไม่ใช่เอสเพรสโซ่ไม่สามารถลบมันอยู่ในปรารถนาทาง

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

บางทีเราสามารถเป็นตัวแทนของแอททริบิวต์ค่าที่ตั้งและที่อยู่ของมันออกมาจากที่ตั้งทฤษฎีของมุมมอง

คุณเคยต้องเผชิญหน้ากับการปัญหานี้? คุณรู้วิธีที่จะแก้สูตรได้มั้ยล่ะ? (heuristics เป็นไรเช่นกัน)

1

คำตอบที่ดีที่สุด

1

เป็นวิธีการของ optimizing นสำนวนสำหรับการประเมินอาจต้องแบ่งกฎของมั่นอยู่บนลักษณะเฉพาะกับ fewest ค่า. หลังจากเรื่องนี้ expansion คุณจะเก็บค่าอีกครั้งสำหรับพวกที่เป็นแบบเดียวกันบนสุดท้ายเงื่อนไขว่า.

  1. ทำให้ 2 กลุ่มหนึ่งสำหรับกฏที่ยอมรับขนาด a3=100 และหนึ่งอันสำหรับกฏที่ยอมรับขนาด a3=ระมาณ 200 เหรียญ เป็นกฏข้อสามารถจบลงในทั้งสองกลุ่ม แล้วแก้ไขกฎอยู่ในกลุ่มดังนั้นมันเพียงยอมรับค่าสำหรับกลุ่มและไม่ได้อีกหนึ่ง

  2. กลุ่มพวกนั้นกลุ่มอีกครั้งที่คุณค่าขอ A1 ใช้ตรรกะ.

คุณจะต้องลงเอยด้วยการกับคนขยายสำนวนแบบนี้:

A3 = 100 AND (
    (A1 = 1 AND A2 IN (10, 20, 40, 50)) OR
    (A1 = 2 AND A2 IN (10, 20, 40, 50)))
OR A3 = 200 AND (
    (A1 = 1 AND A2 IN (10, 30)) OR
    (A1 = 3 AND A2 IN (10, 30)))

ง่ายๆก็คือเราเป็น constructing นต้นไม้กับค่าสำหรับขนาด a3 ที่ความลึก 1 และค่าสำหรับ A1 ที่ความลึก 2 และค่าสำหรับ A2 ที่ความลึก 3. ถ้ามันมีเส้นทางจากรากของต้องใบไม้ติการใช้ค่าของแอททริบิวต์จากนั้นก็ออกกฏคือ fullfilled ไม่อย่างนั้นมัน isnt.

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

สำหรับของคุณตัวอย่างเช่นคุณจะต้องลงเอยด้วยการนี้แสดง:

A3 = 100 AND A1 IN (1, 2) AND A2 IN (10, 20, 40, 50) OR
A3 = 200 AND A1 IN (1, 3) AND A2 IN (10, 30)

โพรเซสนี้ค่อนข้างเรียบง่ายและอาจจะย่องเงื่อนไขการไม่เพียง the result will be artificially smoothed to hide jpeg artefacts มันสำหรับผู้รักษาความปลอดภัย! มันอาจจะไม่ต้องดูสมบูรณ์แบบมากแหงๆแต่มันอาจจะเป็นหนทางที่จะเริ่มต้น

2021-11-22 20:45:00

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่