/DOcplex

DOcplex Eğitimi - DOcplex Tutorial

Primary LanguageJupyter Notebook

DOcplex Nedir?

İnternette DOcplex nedir diye arattığınızda karşınıza hiç bir sonuç çıkmaz. Çünkü Docplex ile ilgili hiç Türkçe kaynak yoktur.
DOcplex, IBM CPLEX'in gücünü python dilinin esnekliği ile birleştirebildiğimiz bir kütüphanedir. Peki IBM CPLEX nedir? IBM CPLEX iş kararlarınızı optimize etmek, optimizasyon modellerini hızla geliştirip devreye almak ve iş sonuçlarını önemli ölçüde iyileştirebilen gerçek dünya uygulamaları yaratmak için karar optimizasyonu teknolojisini kullanır. CPLEX'in kendi arayüzünde OPL (Optimization Programming Language) kullanarak model geliştirebilirsiniz.

2012 yılında Eray Çakıcı ile tanıştığım IBM CPLEX serüveni 10 senedir devam ediyor. Yöneylem Araştırması ve Optimizasyon konusunda sayılı kişilerden olan Eray'ı burada anmadan geçmek olmazdı.

Bu eğitim DOcplex'in kullanımının yaygınlaştırılması için hazırlanmıştır. Özellikle IBM'in hazırladığı kaynaklar kullanılarak detaylı anlatım yapılmaya çalışılmıştır. Gelip incelediğiniz için teşekkür ederim.

Eğitimde Neler Bulunmaktadır?

Eğitim X Notebook'tan oluşmaktadır. Basit modellerden başlayarak daha kompleks modellere doğru ilerleyeceğiz. Aşağıda her bir dersin içeriği ile ilgili notebookların açıklamaları bulunmaktadır.

DOcplex Chapter 00 : DOcplex'in ve eğitim içeriğinin anlatıldığı notebooktur.
DOcplex Chapter 01 : Optimizasyon, yöneylem araştırması ve matematiksel modelin ne olduğunun örneklerle anlatıldığı eğitimdir. Sektördeki gerçek hayat örneklerini, matematiksel modelin tanımını ve daha bir çok bilgiyi bu eğitimde bulabilirsiniz.
DOcplex Chapter 02 : DOcplex kütüphanelerinin yüklenmesi, basit bir matematiksel modelin DOcplex'de nasıl kurulduğunun detaylı anlatıldığı notebooktur.
DOcplex Chapter 03 : Doğrusal Programlamaya giriş eğitimidir. Bir örnek ile doğrusal programlama, grafik çözümü, DOcplex uygulaması, infeasiblity, hard ve soft constriantler anlatılmıştır. Relaxer ile infeasible bir modelin nasıl çözülebileceği anlatılmıştır
DOcplex Chapter 04 : IBM'in popüler örneklerinden biri olan Makarna Üretim PRoblemi'nin DOcplex ile çözümü anlatılmıştır. Karar değişkenlerinin ve kısıtların arraylerden kolaylıkla oluşturulmasını öğrenmek için güzel bir örnektir.
DOcplex Chapter 05 : Yine IBM'in popüler örneklerinden biri olan Süpermarket PRoblemi'nin DOcplex ile çözümü anlatılmıştır. Farklı kümelerdeki veriler kullanılarak kısıt yazma üzerine güzel bir örnektir.
DOcplex Chapter 06 : Bu dersimizde, Oil adlı IBM problemini DOcplex kullanarak Doğrusal Programala ile çözeceğiz. Pandas ve numpy kütüphanelerinin kullanımını, amaç fonksiyonu ve KPI'ların grafik gösterimlerini bu eğitimde bulabilirsiniz.
DOcplex Chapter 07 : Bu dersimizde, Pandas kütüphanesinin yardımı ile binary, integer ve sürekli değişkenlerin bir arada kullanıldığı bir doğrusal programlama probleminin çözümü bulunmaktadır.
DOcplex Chapter 08 : Bu eğitimde, akademik ya da kurumsal CPLEX kullanıcılarının DOcplex kütüphanesinde karşılaştıkları sınırlı kullanım hatasının nasıl giderileceği anlatılmıştır.
DOcplex Chapter 09 : Bu eğitimimizde, Listeners (Dinleyiciler) ile modellerimizi nasıl takip edebileceğimizi, limit vererek nasıl durdurabileceğimizi, tüm çözümleri nasıl inceleyebileceğimizi gibi özellikler anlatılmıştır
DOcplex Chapter 10 : CPLEX'in kendi dili olan OPL ile DOcplex arasındaki farkların bir örnek ile anlatıldığı notebooktur.

Faydalanılan Kaynaklar

CPLEX ücretli (yüksek ücretli) bir çözücü olduğu için kurumsal ve akademik alan dışında olmadığı için, internette kaynak sıkıntısı bulunmaktadır. Yine de IBM'in kendi oluşturduğu dokumanlar ve kaynaklar hem çok değerli hem de yeterlidir.

Bu dokumanlar hazırlanırken aşağıdaki kaynaklardan faydalanılmıştır.

Faydalanılan Kaynaklar

CPLEX ücretli (yüksek ücretli) bir çözücü olduğu için kurumsal ve akademik alan dışında olmadığı için, internette kaynak sıkıntısı bulunmaktadır. Yine de IBM'in kendi oluşturduğu dokumanlar ve kaynaklar hem çok değerli hem de yeterlidir.

Bu dokumanlar hazırlanırken aşağıdaki kaynaklardan faydalanılmıştır.

Linkedin
https://www.linkedin.com/pulse/making-optimization-simple-python-alex-fleischer/

Medium
https://medium.com/@AlainChabrier/decision-optimization-education-a50cada93856
https://medium.com/@AlainChabrier/opl-vs-python-docplex-2d7b28814740

Github
https://github.com/IBMDecisionOptimization/docplex-examples
https://github.com/IBMDecisionOptimization/docplex-doc
https://github.com/IBMDecisionOptimization/docplex-mssql-sample
https://github.com/AlexFleischerParis/howtowithdocplex
https://github.com/AlexFleischerParis/zoodocplex

IBM
http://ibmdecisionoptimization.github.io/docplex-doc/

Komunite

Buna ek olarak, IBM'in tartışma platformu ve komunitesi takıldığınız yerler için çok faydalı olacaktır. Geliştiricilerin cevap verdiği bu platforma da kayıt olmanızı tavsiye ederim.
https://community.ibm.com/community/user/datascience/communities/community-home/digestviewer?tab=digestviewer&CommunityKey=ab7de0fd-6f43-47a9-8261-33578a231bb7