בסיס גרייבר

במתמטיקה שימושית, בסיסי גרייבר (Graver bases) מאפשרים פתרונות איטרטיביים של בעיות תכנות בשלמים ליניאריות ולא ליניאריות שונות בזמן פולינומי. הם הוגדרו לראשונה על ידי ג'ק גרייבר. ברנד שטורמפלס תיאר את הקשר שלהם לתורת בסיסי גרובנר. התיאוריה האלגוריתמית של בסיסי גרייבר ויישומה לתכנות בשלמים מתוארת על ידי שמואל און. בסיס הגרייבר של מטריצה m × n {\displaystyle m\times n} בשלמים A {\displaystyle A} היא הקבוצה הסופית G ( A ) {\displaystyle G(A)} של אלמנטים מינימליים בקבוצה { x ∈ Z n : A x = 0 ,   x ≠ 0 } {\displaystyle \{x\in \mathbb {Z} ^{n}:Ax=0,\ x\neq 0\}\,} תחת סדר חלקי על Z n {\displaystyle \mathbb {Z} ^{n}} המוגדר על ידי x ⊑ y {\displaystyle x\sqsubseteq y} כאשר x i y i ≥ 0 {\displaystyle x_{i}y_{i}\geq 0} ו- | x i | ≤ | y i | {\displaystyle |x_{i}|\leq |y_{i}|} לכל i. לדוגמה, בסיס גרייבר של A = ( 1 , 2 , 1 ) {\displaystyle A=(1,2,1)} מורכב מהווקטורים (1−,1,0), (1,0−,2), (2 ,1−,0), (1,1−,1) ושליליותיהם. תכנות בשלמים היא הבעיה של אופטימיזציה של פונקציית מטרה ליניארית או לא ליניארית על פני קבוצה של נקודות שלמות המקימות מערכת של אי שוויונות ליניאריים. באופן רשמי ניתן לרשום את הבעיה בצורה סטנדרטית באופן הבא: min { f ( x )   :   x ∈ Z n ,   A x = b ,   l ≤ x ≤ u }   . {\displaystyle \min\{f(x)\ :\ x\in \mathbb {Z} ^{n},\ Ax=b,\ l\leq x\leq u\}\ .} זוהי אחת מבעיות האופטימיזציה הבדידות הבסיסיות ביותר ובעלת כוח ביטוי רחב מאוד ויישומים רבים במגוון תחומים, אך לרוב היא קשה מאוד חישובית כאמור להלן. עם זאת, בהינתן בסיס הגרייבר G ( A ) {\displaystyle G(A)} של A {\displaystyle A} , ניתן לפתור את הבעיה עם פונקציות מטרה ליניאריות ולא ליניאריות שונות בזמן פולינומי כפי שיוסבר בהמשך. המקרה הנחקר ביותר, הוא של תכנות ליניארי בשלמים, min { w x   :   x ∈ Z n ,   A x = b ,   l ≤ x ≤ u }   . {\displaystyle \min\{wx\ :\ x\in \mathbb {Z} ^{n},\ Ax=b,\ l\leq x\leq u\}\ .} ניתן להניח כי כל המשתנים חסומים מלמטה ומלמעלה: חסמים כאלה מופיעים באופן טבעי ביישומים רבים, או שניתן לאכוף אותם מבלי לאבד פתרונות מיטביים. אולם, גם בפונקציות מטרה ליניאריות הבעיה היא NP-קשה ומכאן שבדרך כלל לא ניתן לפתור אותה בזמן פולינומי. עם זאת, בהינתן בסיס הגרייבר G ( A ) {\displaystyle G(A)} של A {\displaystyle A} ניתן לפתור אותה בזמן פולינומי באמצעות האלגוריתם האיטרטיבי הפשוט הבא. נניח תחילה כי ניתנת איזו נקודה x {\displaystyle x} אפשרית ראשונית. כל עוד הדבר אפשרי, חזור על האיטרציה הבאה: מצא מספר שלם חיובי q {\displaystyle q} ואלמנט g {\displaystyle g} ב- G ( A ) {\displaystyle G(A)} כך ש- x + q g {\displaystyle x+qg} אינו מפר את החסמים ומעניק שיפור מיטבי; עדכן x := x + q g {\displaystyle x:=x+qg} והמשך לאיטרציה הבאה. הנקודה האחרונה x {\displaystyle x} היא אופטימלית ומספר האיטרציות הוא פולינומי. כדי למצוא נקודה אפשרית ראשונית ניתן להגדיר ולפתור בעיית עזר מתאימה בה יש נקודה ראשונית טריביאלית ולפתור אותה באופן דומה. עבור פונקציות מטרה כלליות f {\displaystyle f} , אם המשתנים אינם חסומים אז הבעיה עלולה להיות בלתי ניתנת לחישוב: מהפתרון של הבעיה העשירית של הילברט עולה כי אין אלגוריתם אשר בהינתן פולינום f {\displaystyle f} עם מקדמים שלמים מדרגה 8 ב־58 משתנים, מחליט אם הערך המינימלי של f {\displaystyle f} על כל הווקטורים השלמים ממימד 58 הוא 0. לעומת זאת, כאשר המשתנים חסומים, הבעיה min { f ( x )   :   x ∈ Z n ,   A x = b ,   l ≤ x ≤ u } {\displaystyle \min\{f(x)\ :\ x\in \mathbb {Z} ^{n},\ Ax=b,\ l\leq x\leq u\}} ניתנת לפתרון באמצעות בסיס גרייבר G ( A ) {\displaystyle G(A)} בזמן פולינומי למספר פונקציות מטרה לא ליניאריות, כולל: פונקציות קמורות פריקות מהצורה f ( x ) = ∑ i = 1 n f i ( x i ) {\displaystyle f(x)=\sum _{i=1}^{n}f_{i}(x_{i})}  ; בפרט ה- p-norm f ( x ) = ‖ x ‖ p {\displaystyle f(x)=\|x\|_{p}} עבור כל מספר שלם חיובי p {\displaystyle p}  ; פונקציות מורכבות קעורות f ( x ) = g ( W x ) {\displaystyle f(x)=g(Wx)} , כאשר W {\displaystyle W} היא מטריצה d × n {\displaystyle d\times n} בשלמים, d {\displaystyle d} קבוע, ו- g {\displaystyle g} פונקציה קעורה של d {\displaystyle d} משתנים; מחלקות מסוימות של פונקציות ריבועיות ופולינומיות מדרגות גבוהות יותר. נתבונן בבעיית האופטימיזציה הבאה על טבלאות תלת־ממדיות עם סכומי קוים נתונים, min { w x   :   x ∈ Z + l × m × n ,   ∑ i x i , j , k = a j , k ,   ∑ j x i , j , k = b i , k ,   ∑ k x i , j , k = c i , j }   , {\displaystyle \min\{wx\ :\ x\in {\mathbb {Z} }_{+}^{l\times m\times n}\,,\ \sum _{i}x_{i,j,k}=a_{j,k}\,,\ \sum _{j}x_{i,j,k}=b_{i,k}\,,\ \sum _{k}x_{i,j,k}=c_{i,j}\}\ ,} כאשר a j , k {\displaystyle a_{j,k}} , b i , k {\displaystyle b_{i,k}} , c i , j {\displaystyle c_{i,j}} מספרים שלמים אי-שליליים (שערכם המרבי חוסם באופן מרומז את כל המשתנים מלמעלה). נסמן ב- A {\displaystyle A} את המטריצה ( l m n ) × ( l m + l n + m n ) {\displaystyle (lmn)\times (lm+ln+mn)} המגדירה מערכת זו. שים לב שמטריצה זו בדרך כלל "אינה" מודולרית לחלוטין . עם זאת, הוכח ב- כי לכל l {\displaystyle l} ו- m {\displaystyle m} קבועים, בסיס הגרייבר G ( A ) {\displaystyle G(A)} ניתן לחישוב בזמן שהוא פולינום ב- n {\displaystyle n} . לכן התוצאות שהוזכרו לעיל מאפשרות לפתור בעיה זו בזמן פולינומי עבור l {\displaystyle l} ו- m {\displaystyle m} קבועים ו- n {\displaystyle n} משתנה. נעיר שאם רק צד אחד l {\displaystyle l} של הטבלה הוא קבוע (אפילו עם l = 3 {\displaystyle l=3} ) בעוד ש- m {\displaystyle m} ו- n {\displaystyle n} משתנים, הבעיה קשה ב-NP. באופן כללי יותר, תוצאות חיוביות דומות תקפות בבעיות טבלאות מממדים גבוהים יותר: עבור כל d {\displaystyle d} ו- m 1 , … , m d {\displaystyle m_{1},\dots ,m_{d}} קבועים, אופטימיזציה (לא) ליניארית מעל טבלאות m 1 × ⋯ × m d × n {\displaystyle m_{1}\times \cdots \times m_{d}\times n} עם n {\displaystyle n} משתנה ושוליים נתונים ניתנת לבצוע בזמן פולינומי. לבעיות אלה יש בפרט יישומים לבעיות אבטחה ופרטיות במסדי נתונים סטטיסטיים. נתבונן בבעיית הזרימה מרובת הסחורות בשלמים, של ניתוב k {\displaystyle k} סוגי סחורות בדידות מ- m {\displaystyle m} ספקים ל- n {\displaystyle n} צרכנים בכפוף לאילוצי היצע, צריכה, וקיבולת, כדי למזער את סכום העלויות הליניאריות או הקמורות התלויות בגודש בקשתות. עבור כל k {\displaystyle k} ו- m {\displaystyle m} קבועים, ניתן לחשב את בסיס הגרייבר של המערכת המגדירה, וניתן למזער את העלות, שהיא פונקציה קמורה ופריקה, בזמן שהוא פולינום במספר המשתנה n {\displaystyle n} של הצרכנים ובשאר הנתונים. היישומים הרבים של התאוריה האלגוריתמית של בסיסי גרייבר כוללים גם תכנות בשלמים סטוכסטי, תכנות N-fold בשלמים, אישכול, ושחרור מבוקר במסדי נתונים סטטיסטיים. בחלק מהיישומים הללו לא ניתן לחשב את בסיס הגרייבר הרלוונטי בזמן פולינומי, אך ניתן לגשת אליו באופן עקיף המאפשר להשתמש בו בזמן פולינומי. כל בעיית תכנות בשלמים (חסומה) שקולה בדיוק לבעיית טבלאות 3 × m × n {\displaystyle 3\times m\times n} שנדונה לעיל עבור m {\displaystyle m} ו- n {\displaystyle n} וסכומי קוים כלשהם. לפיכך, בעיות טבלאות אלה הן אוניברסליות עבור תכנות בשלמים. יתר על כן, עבור כל m {\displaystyle m} קבוע, ניתן לפתור את המחלקה המתקבלת של בעיות תכנות בשלמים בזמן פולינומי כמתואר לעיל. לפיכך רוחב הטבלה m {\displaystyle m} מספק פרמטריזציה של כל בעיות התכנות בשלמים. סיבוכיות הזמן של פתרון חלק מהיישומים שנדונו לעיל, כמו בעיות הטבלאות הרב ממדיות, בעיות הזרימה מרובות הסחורות ובעיות תכנות N-fold בשלמים, נשלטת על ידי מספר האיברים בבסיס הגרייבר הרלוונטי, שהוא פולינום O ( n g ) {\displaystyle O\left(n^{g}\right)} מדרגה גדולה בדרך כלל, הנקראת מורכבות הגרייבר g {\displaystyle g} של המערכת. אולם, קיים אלגוריתם מהיר בהרבה, שמוצא בכל איטרציה את השיפור הטוב ביותר x + q g {\displaystyle x+qg} כאשר q {\displaystyle q} שלם חיובי ו- g {\displaystyle g} אלמנט ב- G ( A ) {\displaystyle G(A)} מבלי לבנות במפורש את בסיס הגרייבר, בזמן מעוקב O ( n 3 ) {\displaystyle O\left(n^{3}\right)} ללא קשר למערכת. במונחים של סיבוכיות פרמטרית, תוצאה זו מראה שכל הבעיות הללו עם פרמטריזציה מתאימה, ובפרט בעיות בטבלאות תלת־ממדיות l × m × n {\displaystyle l\times m\times n}  כאשר l {\displaystyle l} ו- m {\displaystyle m} פרמטרים, הן fixed parameter tractable. Jack E. Graver: On the foundations of linear and linear integer programming, Mathematical Programming 9:207–226, 1975 Bernd Sturmfels, "Gröbner Bases and Convex Polytopes", American Mathematical Society, xii+162 pp., 1996 Shmuel onn: "Nonlinear Discrete Optimization", European Mathematical Society, x+137 pp., 2010 Shmuel Onn: Linear and nonlinear integer optimization, Online Video Lecture Series, Mathematical Sciences Research Institute, Berkeley, 2010 Alexander Schrijver: "Theory of Linear and Integer Programming", Wiley, xii+471 pp., 1986 Raymond Hemmecke, Shmuel Onn, Robert Weismantel: A polynomial oracle-time algorithm for convex integer minimization, Mathematical Programming 126:97–117, 2011 Yuri V. Matiyasevich: "Hilbert's Tenth Problem", MIT Press, xxiv+264 pp., 1993 Jesús A. De Loera, Raymond Hemmecke, Shmuel Onn, Robert Weismantel: "N"-fold integer programming, Discrete Optimization, 5:231–241, 2008 Jesús A. De Loera, Shmuel Onn: The complexity of three-way statistical tables, SIAM Journal on Computing, 33:819–836, 2004 Theodore S. Motzkin: The multi-index transportation problem, Bulletin of the American Mathematical Society 58:494, 1952 Raymond Hemmecke, Matthias Köppe, Robert Weismantel: A polynomial-time algorithm for optimizing over "N"-fold 4-block decomposable integer programs, IPCO 14, 2010 Jesus A. De Loera, Shmuel Onn: All linear and integer programs are slim 3-way transportation programs, SIAM Journal on Optimization, 17:806–821, 2006 Raymond Hemmecke, Shmuel Onn, Lyubov Romanchuk: "N"-fold integer programming in cubic time, Mathematical Programming, 137:325–341, 2013