במתמטיקה שימושית, **בסיסי גרייבר** (Graver bases) מאפשרים פתרונות איטרטיביים של בעיות תכנות בשלמים ליניאריות ולא ליניאריות שונות בזמן פולינומי. הם הוגדרו לראשונה על ידי ג'ק גרייבר. ברנד שטורמפלס תיאר את הקשר שלהם לתורת בסיסי גרובנר. התיאוריה האלגוריתמית של בסיסי גרייבר ויישומה לתכנות בשלמים מתוארת על ידי שמואל און.

הגדרה רשמית
-----------

**בסיס הגרייבר** של מטריצה {\displaystyle m\times n} בשלמים A היא הקבוצה הסופית {\displaystyle G(A)} של אלמנטים מינימליים בקבוצה

{\displaystyle \{x\in \mathbb {Z} ^{n}:Ax=0,\ x\neq 0\}\,}
תחת סדר חלקי על {\displaystyle \mathbb {Z} ^{n}} המוגדר על ידי {\displaystyle x\sqsubseteq y} כאשר {\displaystyle x\_{i}y\_{i}\geq 0} ו- {\displaystyle |x\_{i}|\leq |y\_{i}|} לכל i. לדוגמה, בסיס גרייבר של {\displaystyle A=(1,2,1)} מורכב מהווקטורים (1−,1,0), (1,0−,2), (2 ,1−,0), (1,1−,1) ושליליותיהם.

פתרון תכנות בשלמים באמצעות בסיסי גרייבר
---------------------------------------

תכנות בשלמים היא הבעיה של אופטימיזציה של פונקציית מטרה ליניארית או לא ליניארית על פני קבוצה של נקודות שלמות המקימות מערכת של אי שוויונות ליניאריים. באופן רשמי ניתן לרשום את הבעיה בצורה סטנדרטית באופן הבא:

{\displaystyle \min\{f(x)\ :\ x\in \mathbb {Z} ^{n},\ Ax=b,\ l\leq x\leq u\}\ .}
זוהי אחת מבעיות האופטימיזציה הבדידות הבסיסיות ביותר ובעלת כוח ביטוי רחב מאוד ויישומים רבים במגוון תחומים, אך לרוב היא קשה מאוד חישובית כאמור להלן. עם זאת, בהינתן בסיס הגרייבר {\displaystyle G(A)} של A, ניתן לפתור את הבעיה עם פונקציות מטרה ליניאריות ולא ליניאריות שונות בזמן פולינומי כפי שיוסבר בהמשך.

### תכנות ליניארי בשלמים

המקרה הנחקר ביותר, הוא של תכנות ליניארי בשלמים,

{\displaystyle \min\{wx\ :\ x\in \mathbb {Z} ^{n},\ Ax=b,\ l\leq x\leq u\}\ .}
ניתן להניח כי כל המשתנים חסומים מלמטה ומלמעלה: חסמים כאלה מופיעים באופן טבעי ביישומים רבים, או שניתן לאכוף אותם מבלי לאבד פתרונות מיטביים. אולם, גם בפונקציות מטרה ליניאריות הבעיה היא NP-קשה ומכאן שבדרך כלל לא ניתן לפתור אותה בזמן פולינומי.

עם זאת, בהינתן בסיס הגרייבר {\displaystyle G(A)} של A ניתן לפתור אותה בזמן פולינומי באמצעות האלגוריתם האיטרטיבי הפשוט הבא. נניח תחילה כי ניתנת איזו נקודה x אפשרית ראשונית. כל עוד הדבר אפשרי, חזור על האיטרציה הבאה: מצא מספר שלם חיובי q ואלמנט g ב-{\displaystyle G(A)} כך ש-{\displaystyle x+qg} אינו מפר את החסמים ומעניק שיפור מיטבי; עדכן {\displaystyle x:=x+qg} והמשך לאיטרציה הבאה. הנקודה האחרונה x היא אופטימלית ומספר האיטרציות הוא פולינומי. כדי למצוא נקודה אפשרית ראשונית ניתן להגדיר ולפתור בעיית עזר מתאימה בה יש נקודה ראשונית טריביאלית ולפתור אותה באופן דומה.

### תכנות לא ליניארי בשלמים

עבור פונקציות מטרה כלליות f, אם המשתנים אינם חסומים אז הבעיה עלולה להיות בלתי ניתנת לחישוב: מהפתרון של הבעיה העשירית של הילברט עולה כי אין אלגוריתם אשר בהינתן פולינום f עם מקדמים שלמים מדרגה 8 ב־58 משתנים, מחליט אם הערך המינימלי של f על כל הווקטורים השלמים ממימד 58 הוא 0. לעומת זאת, כאשר המשתנים חסומים, הבעיה

{\displaystyle \min\{f(x)\ :\ x\in \mathbb {Z} ^{n},\ Ax=b,\ l\leq x\leq u\}}
ניתנת לפתרון באמצעות בסיס גרייבר {\displaystyle G(A)} בזמן פולינומי למספר פונקציות מטרה לא ליניאריות, כולל:

* פונקציות **קמורות פריקות** מהצורה {\displaystyle f(x)=\sum \_{i=1}^{n}f\_{i}(x\_{i})} ;
* בפרט ה- **p-norm** {\displaystyle f(x)=\|x\|\_{p}} עבור כל מספר שלם חיובי p ;
* פונקציות **מורכבות קעורות** {\displaystyle f(x)=g(Wx)}, כאשר W היא מטריצה {\displaystyle d\times n} בשלמים, d קבוע, ו-g פונקציה קעורה של d משתנים;
* מחלקות מסוימות של פונקציות **ריבועיות ופולינומיות מדרגות** **גבוהות יותר**.

מספר יישומים
------------

### טבלאות רב ממדיות

נתבונן בבעיית האופטימיזציה הבאה על טבלאות תלת־ממדיות עם סכומי קוים נתונים,

{\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}\}\ ,}
כאשר {\displaystyle a\_{j,k}}, {\displaystyle b\_{i,k}}, {\displaystyle c\_{i,j}} מספרים שלמים אי-שליליים (שערכם המרבי חוסם באופן מרומז את כל המשתנים מלמעלה). נסמן ב-A את המטריצה {\displaystyle (lmn)\times (lm+ln+mn)} המגדירה מערכת זו. שים לב שמטריצה זו בדרך כלל "אינה" מודולרית לחלוטין. עם זאת, הוכח ב- כי לכל l ו-m קבועים, בסיס הגרייבר {\displaystyle G(A)} ניתן לחישוב בזמן שהוא פולינום ב- n. לכן התוצאות שהוזכרו לעיל מאפשרות לפתור בעיה זו בזמן פולינומי עבור l ו-m קבועים ו-n משתנה. נעיר שאם רק צד אחד l של הטבלה הוא קבוע (אפילו עם {\displaystyle l=3}) בעוד ש-m ו-n משתנים, הבעיה קשה ב-NP. באופן כללי יותר, תוצאות חיוביות דומות תקפות בבעיות טבלאות מממדים גבוהים יותר: עבור כל d ו-{\displaystyle m\_{1},\dots ,m\_{d}} קבועים, אופטימיזציה (לא) ליניארית מעל טבלאות {\displaystyle m\_{1}\times \cdots \times m\_{d}\times n} עם n משתנה ושוליים נתונים ניתנת לבצוע בזמן פולינומי. לבעיות אלה יש בפרט יישומים לבעיות אבטחה ופרטיות במסדי נתונים סטטיסטיים.

### זרימה מרובת סחורות

נתבונן בבעיית הזרימה מרובת הסחורות בשלמים, של ניתוב k סוגי סחורות בדידות מ-m ספקים ל-n צרכנים בכפוף לאילוצי היצע, צריכה, וקיבולת, כדי למזער את סכום העלויות הליניאריות או הקמורות התלויות בגודש בקשתות. עבור כל k ו-m קבועים, ניתן לחשב את בסיס הגרייבר של המערכת המגדירה, וניתן למזער את העלות, שהיא פונקציה קמורה ופריקה, בזמן שהוא פולינום במספר המשתנה n של הצרכנים ובשאר הנתונים.

### יישומים אחרים

היישומים הרבים של התאוריה האלגוריתמית של בסיסי גרייבר כוללים גם תכנות בשלמים סטוכסטי, תכנות N-fold בשלמים, אישכול, ושחרור מבוקר במסדי נתונים סטטיסטיים. בחלק מהיישומים הללו לא ניתן לחשב את בסיס הגרייבר הרלוונטי בזמן פולינומי, אך ניתן לגשת אליו באופן עקיף המאפשר להשתמש בו בזמן פולינומי.

אוניברסליות ופרמטריזציה
-----------------------

כל בעיית תכנות בשלמים (חסומה) שקולה בדיוק לבעיית טבלאות {\displaystyle 3\times m\times n} שנדונה לעיל עבור m ו-n וסכומי קוים כלשהם. לפיכך, בעיות טבלאות אלה הן **אוניברסליות** עבור תכנות בשלמים. יתר על כן, עבור כל m קבוע, ניתן לפתור את המחלקה המתקבלת של בעיות תכנות בשלמים בזמן פולינומי כמתואר לעיל. לפיכך רוחב הטבלה m מספק **פרמטריזציה** של כל בעיות התכנות בשלמים.

סיבוכיות פרמטרית: מסיבוכיות זמן פולינומית לסיבוכיות זמן מעוקבת
--------------------------------------------------------------

סיבוכיות הזמן של פתרון חלק מהיישומים שנדונו לעיל, כמו בעיות הטבלאות הרב ממדיות, בעיות הזרימה מרובות הסחורות ובעיות תכנות N-fold בשלמים, נשלטת על ידי מספר האיברים בבסיס הגרייבר הרלוונטי, שהוא פולינום {\displaystyle O\left(n^{g}\right)} מדרגה גדולה בדרך כלל, הנקראת **מורכבות הגרייבר** g של המערכת. אולם, קיים אלגוריתם מהיר בהרבה, שמוצא בכל איטרציה את השיפור הטוב ביותר {\displaystyle x+qg} כאשר q שלם חיובי ו- g אלמנט ב-{\displaystyle G(A)} מבלי לבנות במפורש את בסיס הגרייבר, בזמן מעוקב {\displaystyle O\left(n^{3}\right)} ללא קשר למערכת. במונחים של סיבוכיות פרמטרית, תוצאה זו מראה שכל הבעיות הללו עם פרמטריזציה מתאימה, ובפרט בעיות בטבלאות תלת־ממדיות {\displaystyle l\times m\times n} כאשר l ו-m פרמטרים, הן **fixed parameter tractable**.

הערות שוליים
------------

1. ↑  Jack E. Graver: On the foundations of linear and linear integer programming, Mathematical Programming 9:207–226, 1975
2. ↑  Bernd Sturmfels, "Gröbner Bases and Convex Polytopes", American Mathematical Society, xii+162 pp. 1996
3. 1 2  Shmuel onn: "Nonlinear Discrete Optimization", European Mathematical Society, x+137 pp. 2010
4. ↑  Shmuel Onn: Linear and nonlinear integer optimization, Online Video Lecture Series, Mathematical Sciences Research Institute, Berkeley, 2010
5. ↑  Alexander Schrijver: "Theory of Linear and Integer Programming", Wiley, xii+471 pp. 1986
6. 1 2  Raymond Hemmecke, Shmuel Onn, Robert Weismantel: A polynomial oracle-time
algorithm for convex integer minimization, Mathematical Programming
126:97–117, 2011
7. ↑  Yuri V. Matiyasevich: "Hilbert's Tenth Problem", MIT Press, xxiv+264 pp. 1993
8. ↑  Jesús A. De Loera, Raymond Hemmecke, Shmuel Onn, Robert Weismantel: "N"-fold integer programming, Discrete
Optimization, 5:231–241, 2008
9. ↑  Jesús A. De Loera, Shmuel Onn: The complexity of
three-way statistical tables, SIAM Journal on Computing, 33:819–836, 2004
10. ↑  Theodore S. Motzkin: The multi-index transportation
problem, Bulletin of the American Mathematical Society 58:494, 1952
11. ↑  Raymond Hemmecke, Matthias Köppe, Robert Weismantel: A polynomial-time algorithm for optimizing over "N"-fold 4-block decomposable integer programs, IPCO 14, 2010
12. ↑  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
13. ↑  Raymond Hemmecke, Shmuel Onn, Lyubov Romanchuk: "N"-fold integer programming in cubic time, Mathematical Programming, 137:325–341, 2013