Araştırmacılar, tamsayılı doğrusal programlamayı daha hızlı çözmenin yolunu buldu
(quantamagazine.org)- Üretim planlaması, mürettebat ataması ve araç rotalama gibi tamsayı düzeyinde kararlar gerektiren optimizasyon problemlerinde, Victor Reis ve Thomas Rothvoss ILP çalışma süresini büyük ölçüde azaltan yeni bir algoritma sundu
- ILP, genel doğrusal programlamadan daha zordur ve 1980'lerden bu yana rekor düzeyde neredeyse hiç iyileşme görülmediği için bu sonuç on yıllar sonra gelen büyük bir ilerleme olarak değerlendiriliyor
- Yeni yaklaşım, kafesler ve dışbükey cisimlerin kesişimini ele alan geometrik araçları birleştirerek olası tamsayı çözümlerinin aralığını daha güçlü biçimde daraltıyor
- Temel nokta, 2016'daki kafes noktalarıyla ilgili bir sonucu kullanarak covering radius için üst sınırı düşürmek; böylece çalışma süresi ((\log n)^{O(n)}) düzeyine kadar iniyor
- Henüz gerçek lojistik sistemlerine doğrudan uygulanmış değil, ancak ILP'nin teorik hız sınırına neredeyse yaklaşan bir sonuç olarak pratik çözücülerin uzun vadeli gelişim yönünü gösteriyor
Tamsayı kısıtları neden optimizasyonu zorlaştırıyor?
- Gezgin satıcı problemi, birçok şehirden geçen en kısa rotayı bulmaya yönelik eski bir hesaplama problemidir; tüm olası rotaları tek tek kontrol etmek, şehir sayısı biraz artsa bile yönetilemez hale gelir
- Doğrusal programlama, olası kombinasyonları denklemler ve eşitsizlikler yoluyla sistemli biçimde ele alan matematiksel bir modeldir
- Gerçek dünyadaki optimizasyon problemlerinde ondalıklı cevaplar çoğu zaman işe yaramaz
- Bir fabrikanın optimizasyon planında 500,7 kanepe üretilmesi gerektiğini söyleyen bir cevap, gerçek bir karar olarak kullanışlı değildir
- Tamsayılı doğrusal programlama (ILP), bu tür tamsayı kısıtları içeren bir doğrusal programlama varyantıdır ve üretim planlaması, havayolu mürettebat çizelgelemesi, araç rota ataması gibi ayrık karar problemlerinde yaygın olarak kullanılır
- Santosh Vempala, ILP'yi hem teori hem de pratik açısından yöneylem araştırmasının temel araçlarından biri olarak görüyor
1980'lerden beri yavaş ilerleyen hız sınırı
- ILP yaklaşık 60 yıl önce resmileştirildikten sonra çeşitli algoritmalar geliştirildi, ancak gereken adım sayısı açısından hâlâ yavaştı
- En basit referans noktası, değişkenlerin yalnızca 0 veya 1 alabildiği ikili değişken durumudur
- 1 değişken için 2 olası kombinasyon
- 2 değişken için 4 kombinasyon
- 3 değişken için 8 kombinasyon
- Genel olarak çalışma süresi, değişken sayısına yani boyuta göre üstel artar
- Değişkenler 0 ve 1'in ötesinde daha geniş tamsayı değerleri alabiliyorsa çalışma süresi çok daha uzun olur
- Araştırmacılar uzun zamandır genel ILP'yi bu basit ikili durumun hızına daha da yaklaştırmanın mümkün olup olmadığını araştırıyordu
- 1980'lerdeki rekordan sonra yalnızca kademeli iyileşmeler geldi
Lenstra'nın açtığı geometrik yorum
- 1983'te Hendrik Lenstra, genel ILP problemlerinin çözülebileceğini kanıtladı ve bunun için ilk algoritmayı sundu
- Lenstra, ILP'yi geometrik bir probleme dönüştürerek ele aldı
- ILP'deki eşitsizlikler, dışbükey bir şekil yani dışbükey cisim (convex body) olarak temsil edilir
- Şeklin iç kısmı, eşitsizlikleri sağlayabilecek tüm olası değerlere karşılık gelir
- 2 değişkenli problem düzlemsel bir çokgen, 3 değişkenli problem ise üç boyutlu bir cisim gibi boyut kazanır
- Matematiksel olarak tüm tamsayılar bir kafesin (lattice) noktaları olarak görülebilir
- 2 boyutta bu, noktalardan oluşan bir deniz gibi görünür
- 3 boyutta ise bir binanın çelik iskeletinin birleşim noktalarına benzer bir yapı ortaya çıkar
- Sonuçta ILP çözmek, dışbükey cisim ile kafesin kesişimini, yani geçerli çözümlerin tamsayı noktalarla nerede buluştuğunu arama problemine dönüşür
- Lenstra'nın algoritması bu uzayı tarayabiliyordu, ancak verim için bazen problemi daha düşük boyutlu parçalara bölmek gerekiyordu ve bu süreç çalışma süresini artırıyordu
Covering radius'un yarattığı 30 yıllık darboğaz
- 1988'de Ravi Kannan ve László Lovász, hata düzeltme kodları araştırmalarından alınan covering radius kavramıyla dışbükey cisim ile kafesin kesişimini daha verimli ele almaya çalıştı
- Covering radius, dışbükey cismin kafes üzerinde nereye yerleştirilirse yerleştirilsin en az bir tamsayı nokta içermesini garanti eden büyüklükle ilgilidir
- Bu değerin büyüklüğü, ILP problemlerinin ne kadar verimli çözülebileceğini belirler
- İdeal covering radius büyüklüğünü bulmak başlı başına zor bir problemdi
- Kannan ve Lovász, olası değeri üst ve alt sınırlarla daralttı ve üst sınırın boyutla doğrusal olarak büyüdüğünü gösterdi
- Ancak bu sonuç tek başına ILP çalışma süresini büyük ölçüde azaltmak için yeterli değildi; sonraki 30 yıl boyunca ilerleme sınırlı kaldı
Reis ve Rothvoss'un yeni algoritması
- Victor Reis ve Thomas Rothvoss, kafeslere odaklanan ayrı bir matematiksel sonuçtan yararlanarak bir atılım gerçekleştirdi
- 2016'da Oded Regev ve Noah Stephens-Davidowitz, belirli şekillerin içine ne kadar çok kafes noktası sığabileceğini gösterdi
- Reis ve Rothvoss, bu sonucu başka şekillere uygulayarak ILP'nin covering radius'u içinde yer alan kafes noktalarının sayısını daha iyi tahmin etti
- Bu tahmin sayesinde üst sınır düştü ve genel ILP algoritmasının çalışma süresi ciddi biçimde azaldı
- Yeni çalışma süresi ((\log n)^{O(n)}); burada (n) değişken sayısını, (O(n)) ise (n) ile doğrusal orantıyı ifade ediyor
- Bu ifade, ikili değişken problemlerinin çalışma süresiyle “neredeyse” aynı düzeyde kabul ediliyor
Teorik başarı ile pratik uygulama arasındaki mesafe
- Noah Stephens-Davidowitz, yeni algoritmayı yaklaşık 40 yıl sonra gelen ilk büyük ILP çözücü iyileştirmesi olarak görüyor
- Daniel Dadush, bu sonucu matematik, bilgisayar bilimi ve geometrinin kesişiminden çıkan bir başarı olarak değerlendiriyor
- Yeni algoritma henüz gerçek lojistik problemlerini çözmek için kullanılmadı
- Mevcut programları bu yaklaşıma uygun biçimde güncellemek için çok iş gerekiyor
- Rothvoss, bu sonucun odağının temel uygulamalara sahip bir problem hakkındaki teorik anlayış olduğunu düşünüyor
- ILP hesaplamalarının daha da verimli hale gelme ihtimali sürüyor, ancak Vempala'ya göre ideal çalışma süresine daha fazla yaklaşmak için temelden yeni fikirlere ihtiyaç var
1 yorum
Hacker News yorumları
Temel bir NP-tam problemi için algoritmik üst sınırı düşürmek her zaman çok ilgi çekicidir, ancak bu, problemin gerçek uygulamalarda daha hızlı çözüleceği anlamına gelmeyebilir.
Karma tamsayılı programlama (MIP) çözücüleri birçok algoritmayı ve çok sayıda sezgisel yöntemi birlikte kullanır; sezgisel yöntemler ve strateji kütüphaneleri biriktirmek, MIP çözücülerindeki iyileşmelerin Moore yasasını geride bırakmasının temel nedenidir.
https://www.math.uwaterloo.ca/~hwolkowi/henry/teaching/f16/6... adresine göre 1990-2014 arasında donanım iyileşmesi 6500 katken, yazılım iyileşmesi performansa 870000 kat katkı sağlamış.
Bu makale de MIP çözücülerinin performansını artıracak bulmacanın bir parçası olabilir, ama bunun böyle olacağı garanti değil.
Yeni algoritmanın henüz lojistik problemlerini çözmekte kullanılmamasının nedeninin “bugünün programlarını güncellemek çok fazla iş gerektirdiği için” diye açıklanmasını pek anlayamıyorum.
Çoğu alana özgü model, büyük problemler için Gurobi, CPLEX, FICO çözücülerini çağırır; küçük problemler içinse SCIP gibi açık kaynak çözücüler kullanır.
Standart MPS formatı ile modeller bu çözücüler arasında değiş tokuş edilebiliyor; problem formülasyonu değişmiyor, yalnızca çözücünün içerideki çözüm yönteminin değişmesi gerekmiyor mu?
Eğer yeni bir uygulama gerektiği kastediliyorsa, uygulandığında dünyanın elde edeceği fayda da muazzam olur gibi geliyor.
Bu araçlar onlarca yıllık kademeli iyileştirmelerin biriktiği son derece karmaşık mühendislik ürünleri; yeni keşfin bu motorlara nasıl entegre edileceğini bulmak bile ciddi bir araştırma çabası gerektirecek gibi görünüyor.
MPS gibi formatlarla problem formülasyonlarını değiş tokuş etmek için standart bir yol olduğu doğru; günümüzde AMPL gibi cebirsel modelleme dilleri daha çok kullanılıyor gibi, fakat bu formatların sağladığı şey yalnızca standart bir matematiksel formülasyondur.
Gerçek çözüm her çözücüye son derece özeldir; her birinin kendi veri yapıları, algoritmaları ve sezgisel teknikleri vardır.
Bunlar birbirinin yerine takılabilir değildir, kasıtlı olarak açık da değildir ve çözücü kodu ile tüm sürece dair bilgi olmadan araya birkaç harici sayı sıkıştıramazsınız.
Yanlış anlaşılmayı gidermek istedim.
Mümkünse bunlar üzerinde bizzat uygulama yapmaktan kaçınıyorsunuz.
Yine de bu, sonucun mükemmel olduğu gerçeğini değiştirmez.
Teorik hesaplama karmaşıklığı açısından “tamsayılı doğrusal programlama” [2] için en iyi algoritmalar kafeslere dayanır ve en iyi en kötü durum büyük O karmaşıklığına sahiptir.
Ancak mevcut uygulamalar genellikle (1) gmplib [3] gibi keyfi hassasiyetli rasyonel sayı aritmetiği gerektirdiği için çok bellek yer ve pratikte de yavaştır, (2) LLL türü kafes indirgeme adımları [4] gerektirir ama matris seyrekliğinden yararlanamaz.
Sonuçta bu algoritmalar çoğu zaman belleğe sığmadığından 1000x1000’den büyük matris problemlerini başlatamaz bile; sığsalar bile aşırı yavaş olurlar.
Pratikteki tamsayılı programlama çözücüleri bunun yerine SAT çözmede kullanılanlara benzer bir geri izleme algoritması olan dal-sınır yöntemine dayanır ve her yinelemede, özgün problemdeki tüm değişkenlerin sürekli değişkene çevrildiği bir “doğrusal programlama” problemi çözer.
Her doğrusal programlama problemi iç nokta yöntemi gibi polinom zamanlı algoritmalarla çözülebilir; ama pratikte en kötü durumda üstel zamanlı olan simpleks yöntemi kullanılır.
Bunun nedeni, çözülmesi gereken doğrusal programlama problemlerinin birbirine çok benzemesi ve simpleks yönteminin pratikte bunu iyi kullanmasıdır.
Ayrıca ilgili algoritmalar vektör ve matris seyrekliğinden büyük ölçüde yararlanır.
Bu nedenle bazı insanlar milyonlarca değişkeni olan tamsayılı programlama problemlerini günler, hatta saatler içinde çözebiliyor.
Çözücü geliştiricileri teorik olarak mutlak en iyi karmaşıklığın peşinden gitmiyor; ayrık optimizasyonun teorisi ile pratiğinin bir ölçüde ayrıştığı söylenebilir.
Buna rağmen Reis & Rothvoss makalesi [1] derin bir matematiksel çalışma ve ayrık matematikle ilgilenen biri için kendi başına çok etkileyici.
Dadush’un 10 yıllık varsayımını çözdü ve geçen yıl kasımda bilgisayar bilimi teorisinin en üst düzey iki konferansından biri olan FOCS’ta sunuldu.
Doğrudan pratik kullanışlılık asıl mesele değil; yazarlar da gayriresmî ortamlarda bunu kabul edecektir.
Elbette araştırma fonu başvurularında farklı söyleyeceklerdir, ama bu da oyunun bir parçası.
Bu, işe yaramaz olduğu anlamına gelmez; matematiksel bilgiyi ilerletmesi bile başlı başına çok değerlidir ve birkaç nesil sonraki araştırmacılar bu fikirlerden yola çıkarak pratik algoritmalar geliştirip çözücülerin son teknolojisini ileri taşıyabilir.
Sonuçta bu algoritmaların tümü en kötü durumda üstel zamandır.
Teoride en kötü durum karmaşıklığının üstel kısmındaki polinomu biraz küçültmeye çalışırlar; pratikteki kişiler ise genellikle boyutu n büyüyen bir problem ailesini değil, tek bir büyük optimizasyon problemini çözmek ister.
Çözüm süresi eğilim çizgisinin artış hızından çok, önlerindeki tek büyük örneği çözüp çözemedikleri önemlidir; o örnek de genellikle aynı boyuttaki en kötü durum olmasını engelleyen bir yapıya sahiptir.
Bu yüzden mühendislik tercihleri de farklılaşır.
[1] https://arxiv.org/abs/2303.14605
[2] min { c^T x : A x >= b, x in R^n, some components of x in Z }
[3] https://gmplib.org/
[4] https://www.math.leidenuniv.nl/~hwl/PUBLICATIONS/1982f/art.p...
Özet daha bilgilendirici: https://arxiv.org/abs/2303.14605
n değişkenli tamsayı programlama problemlerini çözen (log(2n))^O(n) süreli rastgeleleştirilmiş bir algoritma elde ettiklerini söylüyor
Yani bu çalışma teorik bir sonuç; R^n içindeki konveks cisimlerin yapısına ve bunları tamsayı kafesiyle kaplama yöntemlerinin analizine dayanarak önceki en iyi sonuçtan daha iyi bir üstel zaman algoritması sunuyor
Pratik ILP işlerinin çoğu sezgisel yöntemler ve dal-sınır yöntemini kullanır, ayrıca belirli problem formülasyonlarının özel yapısından yararlanır
Bu araştırmanın bunlardan birine yardımcı olup olmayacağı net değil; Gurobi gibi bir yerden biri açıklamadıkça yalnızca makaleyi okuyarak karar vermek zor görünüyor
Küçük bir not ama başlıkta tamsayı doğrusal programlama olduğu açıkça belirtilmeli
Çünkü burada “tamsayı” kısmı çok daha büyük fark yaratıyor
Doğrusal programlama için onlarca yıldır polinom zamanda çalışan algoritmalar biliniyor; NP-zor olan tamsayı doğrusal programlama
Sürekli doğrusal programlama da zor
NP-zor anlamında değil; verimli modern LP çözücüleri yapmak için algoritma ve mühendislik tarafında çok şey gerektiği anlamında
Sadece sayısal hesaplama bile yeterince karmaşık
Ayrıca birçok tamsayı doğrusal programlama çözücüsü sürekli doğrusal programlama çözücülerine dayanıyor
Makine öğrenmesi veya algoritmalara ilgi duyan bir yazılım mühendisiyseniz doğrusal programlama öğrenmeye değer
Şaşırtıcı derecede çok problem doğrusal optimizasyon olarak formüle edilebilir
Örneğin üniversitedeyken endüstri mühendisliği okuyan bir arkadaşımla bilardo toplarını raf üçgeni içindeki izin verilen başlangıç konumlarına yerleştirmek için gereken ortalama minimum takas sayısı hakkında konuşmuştum
İkimiz de bunu Monte Carlo örneklemesiyle çözen programlar yazdık; benim çözümüm grafik durum uzayında BFS yapıyordu, arkadaşımın çözümü ise doğrusal programlama kullanıyordu
Muhtemelen arkadaşımınki daha verimliydi
Örneğin minimum kapsayan ağaç, iki parçalı grafik veya genel grafik eşleştirme, ağ akışı, matroid kesişimi, altmodüler akış vb.
Bazı LP’lerin köşe çözümleri, NP-tam problemlere yaklaşım algoritmaları tasarlarken kullanılabilecek ilginç özelliklere de sahiptir
Örneğin Steiner forest probleminde köşe çözümünde her zaman değeri en az 1/2 olan bir değişken bulunduğu kanıtlanabilir; bu yüzden değişkenleri yinelemeli olarak yuvarlayıp LP’yi yeniden çözerseniz 2-yaklaşım algoritması elde edebilirsiniz
Lisansüstündeyken bu problem için bilinen tek 2-yaklaşım algoritması buydu
Bir başka ilginç nokta da, polinom zamanlı bir ayırma oracle’ı olduğu sürece kısıt sayısı üstel derecede çok olsa bile LP’nin çözülebilmesi
Gerçekten eğlenceliydi, tavsiye ederim
Şimdiden yöneylem araştırması tarafında şaşırtıcı derecede fazla örtüşme var, ama endüstri mühendisliği mezunları arasında düzgün programlama yapamayan çok kişi olması beni şoke ediyor
Gerçekten yazık
Genellikle yalnızca cent cinsinden tamsayı tutarlarla işlem yapılabildiği için tamsayı kısmının epey önemli olduğunu hatırlıyorum
Kısa ama iyi bir yazı
Matematiğine henüz derinlemesine bakmadım, ama preprint şu gibi görünüyor: https://arxiv.org/pdf/2303.14605.pdf
Simetriyi veya tekrarı azaltarak problem “uzayını” genelleştirip sadeleştirme biçimiyle uzay gruplarına doğrudan bakıyor gibi görünmüyor, ama böyle bir yapının uygulanıp uygulanamayacağını görmek ilginç olurdu
Uzay gruplarını uygulayan ve bunların içinde dağılmış noktaların ya da nokta kümelerinin etrafındaki Voronoi hücrelerini tarif eden yazılımlar kullanan biri olarak, etkilerin yayıldığı “tekinsiz” biçime aşinayım [1]
Matematikçi değilim, yalnızca bir mimarım; bu alan benim yetkinliğimin dışında, ama üretilen petek yapıları kesen yolları inceleyen biri olarak bu sonuç daha fazla araştırmaya değer
[0] https://arxiv.org/pdf/2303.14605.pdf
[1] Bu tür bir çalışmada işbirliği yapılabilecek bir matematikçi tanıyorsanız benimle iletişime geçmesini isterim
Devam eden bir çalışma ve dediğim gibi matematiksel olarak benim yetkinliğimin dışında, ama gerçek bir uzmanın daha derinlemesine incelemeye değer bulacağı ilginç özelliklerle karşılaştım
Gezgin satıcı problemiyle ilgili olarak Sapolsky’nin son kitabı Determined: A Science of Life without Free Will’da geçen alıntı ilginç
Yazılım geliştiricilerle ne kadar ilgili olduğunu bilmiyorum ama büyüleyici
Bir karınca yiyecek ararken sekiz yeri kontrol ettiğinde, ideal olarak her noktayı yalnızca bir kez ziyaret edip 5.040 olası rota, yani 7! içinden en kısa olanı seçmesi gerekir
Bu, matematikçilerin genel bir çözüm bulamadan yüzyıllardır uğraştığı ünlü gezgin satıcı probleminin bir biçimi
Bir strateji, olası tüm rotalara bakıp karşılaştırarak en iyisini seçen kaba kuvvet yöntemidir; ancak ziyaret edilecek yer sayısı yalnızca 10 olduğunda bile olası yöntem sayısı 360 bini, 15 olduğunda ise 80 milyarı aşar
Buna karşılık, sıradan bir kolonideki yaklaşık 10 bin karıncayı sekiz yiyecek noktası problemine bıraktığınızda, hiçbir karınca kendi izlediği rota ve iki kuraldan fazlasını bilmese bile, kaba kuvvetten çok daha kısa sürede 5.040 seçenek içinden neredeyse optimale yakın bir çözüm buldukları anlatılıyor
Bu yöntem o kadar iyi çalışıyor ki bilgisayar bilimciler de bu tür problemleri “sanal karıncalar”la çözüyor; bunun bugün sürü zekâsı olarak bilindiği söyleniyor
Standart tepki de “çok basit bilgisayar algoritmaları da bunu yapar” şeklinde
Gezgin satıcı probleminde Öklid mesafesi, yani her düğümün sabit koordinatlara sahip olduğu ve rota maliyetinin iki nokta arasındaki Öklid mesafesi olduğu durumda, optimumun ε katı içinde kalan bir rota bulan polinom zamanlı algoritmalar da verilebilir
Ancak ε açısından üsseldir
Önsözünde de harika bir sorumluluk reddi ifadesi var
“Kişisel olarak bu alanın literatüründe daha az keseli hayvan, daha çok matematik olması gerektiğine ve topluluk olarak bu metafor bakımından zengin dönemi geride bırakmamız gerektiğine inanıyoruz; bu, kimyanın simyadan sıyrılmasına benzer. Bununla birlikte bu liste, listelenen makalelerin bilimsel kalitesi hakkında herhangi bir iddiada bulunmaz.”
[1]: https://fcampelo.github.io/EC-Bestiary/
Bu tür karınca kolonisi davranışlarını model alan bir algoritma
Başkalarının da söylediği gibi, tabu arama, benzetilmiş tavlama ve genetik algoritmalar gibi yerel optimum bulmada iyi
Makaledeki “kanepe üretimi” örneği gibi çoğu iş amacı için bu kadarı yeterli
Ama bu, “genel çözüm” bulmakla aynı şey değil
Sapolsky’nin bizim “genel çözüm” bulmakta pek iyi olmayışımızla karıncaların yerel optimum bulma becerisini karşılaştırması biraz yanıltıcı görünüyor
Problemin genel biçiminin NP-zor olmadığı anlamına değil; daha fazla bilgi eklendiğinde yeterince iyi çözümleri yaklaşık olarak bulmanın ya da optimal aramayı ele alınabilir hâle getirmenin mümkün olabileceği anlamına geliyor
Bu bakış açısı özellikle ilk yapay zeka “devrimi” sırasında belirgindi; yapay zekayı insan bilgisiyle desteklenmiş bir arama problemi olarak görmek modaydı
Kitabın kastettiği “sürü zekâsı” bu mu?
Birçok ayrık optimizasyon problemi doğrusal programlamaya çevrilebilir
SAT çözücüleri gibi, bilindiğinde gerçekten güçlü bir araç
Bir geliştirici olarak “bunu şimdiye kadar nasıl kaçırmışım?” dediğim anlardan biriydi
Harika bir sonuç, ama muhtemelen pratik olmayacak
Doğrusal programlamada iç nokta yöntemlerinin simpleks yöntemine göre teorik karmaşıklığı daha iyi olsa da, gerçek dünyada iyi ayarlanmış simpleksin neredeyse her zaman kazanmasına benziyor
İç nokta yöntemlerinin pratikte genellikle daha yavaş olmasının yaygın kabul gören bir “nedeni” var mı?
Sınıra bağlı kalmak yerine içeriden geçince iyi bir çözüme daha hızlı yaklaşılır gibi geliyor; ama yüksek boyutlarda bu fark daha az önemli olabilir
Burada kullanılan ifade biraz kafa karıştırıcı
“Ortaya koydukları en iyi sürüm, bir tür hız sınırı, problemin değişkenlerinin gezgin satıcının bir şehri ziyaret edip etmemesi gibi ikili değerler, yani yalnızca 0 veya 1 alabildiği önemsiz bir durumdan geliyor” diye bir cümle var; NP-tam bir problemi önemsiz durum diye mi adlandırmışlar?
Tüm ILP’lerin 01-ILP’ye indirgenebildiğini ve tersinin de geçerli olduğunu biliyordum
Ayrıca “Ne yazık ki değişkenler 0 ve 1’in ötesinde değerler alabildiğinde algoritmanın çalışma süresi çok daha uzar. Araştırmacılar uzun zamandır bu önemsiz ideale daha da yaklaşıp yaklaşamayacaklarını merak ediyordu” kısmına bakınca, bu araştırmanın 01-ILP’nin alt sınırını iyileştiren bir çözücü mü, yoksa 01-ILP ile genel ILP arasındaki sınırı birbirine yaklaştıran bir algoritma mı olduğunu merak ediyorum