Açık Kaynak NVIDIA cuOpt ile Karar Optimizasyonunu Hızlandırma

İşletmeler her gün binlerce karar almak zorundadır—neyi üreteceklerine, nerelere göndereceklerine ve kaynakları nasıl tahsis edeceklerine karar vermek gibi. Büyük ölçeklerde, bu kararları optimize etmek bir hesaplama zorluğu haline gelir. Doğrusal programlama (LP), karma tamsayılı programlama (MIP) ve araç yönlendirme problemleri (VRP) bu zorluklara bir yapı sağlar, ancak bunların hızlı bir şekilde çözülmesi fiili olarak zorluk çıkarır.

NVIDIA cuOpt, karar optimizasyonunda GPU hızlandırması sunarak, gerçek dünyadaki LP, MIP ve VRP iş yükleri için büyük hız artışları sağlıyor. Artık Apache 2.0 lisansı altında açık kaynak olarak erişilebilir, bu da optimizasyonu iş akışlarınıza, yerel veya bulutta, benimsemeyi ve uyarlamayı daha da kolaylaştırıyor.

Geliştiriciler için en güzel kısmı ise neredeyse sıfır modelleme dili değişikliğidir. Mevcut PuLP ve AMPL ile oluşturulmuş modellere basit bir şekilde cuOpt ekleyebilir, minimum yeniden düzenlemeyle hızlı, esnek ve deneysel ya da üretim için hazır bir yapı elde edebilirsiniz.

cuOpt’i büyük ölçekli kullanımda görmek ister misiniz? Süper Şarjlı Optimizasyon: Artelys, FICO ve NVIDIA İle Enerji Modelleme Ölçeklendirme başlıklı çalışmayı inceleyebilirsiniz; burada cuOpt’un büyük ölçekli birim taahhüt problemlerinde %20 hız artışı elde etmedeki rolünü görebilirsiniz.

cuOpt İle Hızla Başlayın

cuOpt ile, tedarik zincirlerini optimize etmek, üretim planlamak ya da teslimatları yönlendirmek için birkaç yolla kısa sürede başlayabilirsiniz.

cuOpt Sunucusu

Bura LP, MIP ve VRP problemleri için REST üzerinden en iyi seçenektir. Tüm problem türlerini destekleyen bir REST API sunucusu başlatın.

Pip ile kurulum yapın:

pip install --extra-index-url=https://pypi.nvidia.com cuopt-server-cu12==25.5.* cuopt-sh==25.5.*

Docker ile çalıştırın (REST ve istemci dahildir):

docker run --gpus all -it --rm -p 8000:8000 -e CUOPT_SERVER_PORT=8000 nvidia/cuopt:latest-cuda12.8-py312 python3 -m cuopt_server.cuopt_service

Python API

Bu seçenek, VRP için en iyisidir. Programatik kontrol ve entegrasyon için cuOpt’un yerel Python API’sini kullanın:

pip install --extra-index-url=https://pypi.nvidia.com cuopt-cu12==25.5.*

Komut Satırı Arayüzü

Bu seçenek LP ve MIP Benchmarking için en idealdir. Eğer MPS-formatında modelleriniz varsa, komut satırı arayüzünü (CLI) kullanarak karşılaştırabilir ve otomatikleştirebilirsiniz.

Bir benchmark modelini çalıştırın:

wget https://plato.asu.edu/ftp/lptestset/ex10.mps.bz2
bunzip2 ex10.mps.bz2
./cuopt_cli ex10.mps

Bu örnek, 69K kısıt ve 17K değişken içeren bir LP’yi 0.3 saniye içinde çözüyor, bir NVIDIA H100 Tensor Core GPU üzerinde.

cuOpt’i Bulutta Deneyin

Yerel GPU’nuz yok mu? cuOpt’i tarayıcıdan veya sürekli bir bulut ortamında çalıştırabilirsiniz.

Özellik Google Colab Deploy Launchable
Kurulum Yok 1-tıklama başlatma
GPU erişimi Evet (sınırlı, ücretsiz) Evet (tam GPU örneği)
Sürekli ortam Hayır Evet
Önceden yüklenmiş yapılandırma Manuel Otomatik
Optimal kullanım Demos ve hızlı testler Tam gelişim iş akışları
Tablo 1. cuOpt çalışma ortamı: Colab ile Launchable karşılaştırması

Ampl ve PuLP Kullanarak Minimum Model Değişiklikleri

cuOpt, AMPL ve PuLP gibi modelleme dilleriyle entegre çalışır. Sadece çözücüyü değiştirin, yeniden yazma gerekmiyor.

Örnek 1: AMPL ve cuOpt

./ampl
var x >= 0; 
var y >= 0; 
maximize objective: 5*x + 3*y;
subject to c1: 2*x + 4*y >= 230;
subject to c2: 3*x + 2*y 

MIP’ye geçiş yapmak için, değişkenleri integer olarak tanımlayın.

Örnek 2: PuLP ve cuOpt

import pulp
model = pulp.LpProblem("Maximize", pulp.LpMaximize)
x = pulp.LpVariable('x', lowBound=0)
y = pulp.LpVariable('y', lowBound=0)
model += 5*x + 3*y, "obj"
model += 2*x + 4*y >= 230
model += 3*x + 2*y 

MIP’ye geçme:

x = pulp.LpVariable('x', lowBound=0, cat="Integer")
y = pulp.LpVariable('y', lowBound=0, cat="Integer")

cuOpt İstemcisi ile VRP Çözümü

cuOpt, JSON formatındaki yapılandırılmış girdileri kullanarak VRP‘leri çözer:

Örnek iş akışı:

from cuopt_sh_client import CuOptServiceSelfHostClient
import json

cuopt_service_client = CuOptServiceSelfHostClient(ip="localhost", port=5000)
optimized_routes = cuopt_service_client.get_optimized_routes(json_data)
print(json.dumps(optimized_routes, indent=4))

Daha fazla bilgi için NVIDIA/cuopt-examples sayfasını ziyaret edin.

Örnek çıktı:

"num_vehicles": 2,
"solution_cost": -435.0,
"vehicle_data": {
  "Car-A":  {"task_id": [...],"arrival_stamp": [...]},
  "Bike-B": {"task_id": [...],"arrival_stamp": [...]}
},
"total_solve_time": 10.7

Lojistik veya sevkiyat sistemleri için ideal olan cuOpt, optimize edilmiş rotalar, maliyet ve görev düzeyinde atamaları geri döner.

Açık Kaynak Optimizasyon ile Hızla Başlayın

NVIDIA cuOpt ile hızlandırılmış optimizasyonun nasıl başlayabileceğinizi keşfedin—hiçbir satıcı kilidi olmadan, yeniden yazmaya gerek kalmadan, sadece daha hızlı çözümler elde edin. Bu optimizasyon GPU’ya özgü, geliştirici dostu ve ölçeklendirmeye uygundur. Öne çıkan avantajlar:

  • Hız: LP/MIP/VRP problemlerini GPU hızlandırması ile 10 kat ila 5,000 kat daha hızlı çözün.
  • Basitlik:PuLP ve AMPL gibi modelleme dillerine minimum değişiklikle entegre edin.
  • Esneklik: İhtiyacınıza uygun bir arayüzü seçin — REST, Python veya CLI.
  • Modüler: Mevcut yapı taşlarınızla çalışır, ihtiyaçlarınıza göre ölçeklenir.
  • Açık:Apache 2.0 lisansına sahip, GitHub depoları, örnekler ve dokümantasyona sahip—kullanıma hazır ya da özel bir alanınıza göre çatal yaparak özelleştirin.
  • Kullanıma hazır:Google Colab veya NVIDIA Launchable üzerinde anında başlatın.
  • Destek:NVIDIA AI Enterprise ile üretimde çalışın—kurulum yardımı, yükseltmeler ve uzman desteği içerir.

NVIDIA cuOpt, artık coin-or/cuopt GitHub deposunda da mevcuttur. Bu, açık kaynaklı operasyon araştırma araçları için merkezi bir nokta sağlar. COIN-OR ile yapılan iş birliği, optimizasyon geliştiricileri için ekosistemi güçlendirir. cuOpt, diğer açık kaynak çözümlerle birlikte daha kolay keşfedilir, genişletilir ve kullanılabilir hale gelir.

Açık kaynak topluluğuna katılın ve gerçek zamanlı, akıllı karar optimizasyonunun geleceğini şekillendirin—tam kontrol ve esneklik ile.

Kaynak

Nvdia Blog

Exit mobile version