Ünite 9 / 9

Python ile Optimizasyon, Veri İşleme, Doğrulama ve Güvenlik

Kazanimlar:

  • AI destekli Python koduyla optimizasyon ve veri işleme görevlerini otomatikleştirebilme
  • AI'ın ürettiği kodu birim kontrolü, test ve kenar durumlarla doğrulayabilme
  • Gizli üretim verisini koruma ve sorumlu AI kullanımı ilkelerini uygulayabilme

Endüstri mühendisliğinde tekrar eden hesaplar, veri temizliği ve optimizasyon modelleri Python ile otomatikleştirildiğinde hem hız hem de tekrarlanabilirlik kazanılır. Yapay zeka, bu kodu yazmanın en güçlü hızlandırıcısıdır: pandas ile veri işleme, PuLP/SciPy ile optimizasyon, matplotlib ile görselleştirme kodunu dakikalar içinde taslaklar. Fakat AI kodu "çalışıyor görünmek" ile "doğru olmak" arasındaki farkı kendiliğinden garanti etmez. Bu ünitede AI destekli mühendislik otomasyonunu, kodu doğrulama disiplinini ve gizli üretim verisini koruma ilkelerini birleştiriyoruz. Bu ünite, önceki tüm ünitelerin "güvenle uygula" katmanıdır.

Neden Kod? Tekrarlanabilirlik ve Denetlenebilirlik

Excel'de elle yapılan bir hesap, altı ay sonra "bu sayı nereden geldi?" sorusuna cevap veremez. Kod ise girdiyi, adımları ve çıktıyı açık ve tekrarlanabilir tutar. Bir mühendislik hesabını kodla yapmanın üç faydası: (1) aynı girdiyle her zaman aynı sonuç, (2) her adımın görünür ve gözden geçirilebilir olması, (3) girdi değişince sonucun otomatik güncellenmesi.

# EOQ hesabını doğrulanabilir bir fonksiyona çevirmekimport mathdef eoq(annual_demand, order_cost, holding_cost): """Ekonomik sipariş miktarı. Birimler tutarlı olmalı: annual_demand [adet/yıl], order_cost [TL/sipariş], holding_cost [TL/adet/yıl].""" if annual_demand <= 0 or holding_cost <= 0: raise ValueError("Talep ve elde tutma maliyeti pozitif olmalı") return math.sqrt((2 * annual_demand * order_cost) / holding_cost)# Bilinen sonuçlu test (doğrulama):# D=3600, S=120, H=8 -> ~328,6assert abs(eoq(3600, 120, 8) - 328.63) < 0.1print(round(eoq(3600, 120, 8), 1)) # 328.6

Buradaki assert satırı kritiktir: bilinen bir sonuca karşı test. AI'ın yazdığı her hesap fonksiyonuna en az bir "bilinen sonuçlu test" ekleyerek kodun gerçekten doğru hesapladığını kanıtlarsınız.

AI ile Kod Üretmenin Doğru Yolu

AI'a kod yazdırırken belirsizlik ne kadar azsa, çıktı o kadar güvenilir olur.

Rol: Sen Python ve endüstri mühendisliği veri analizi konusunda uzmansın.Görev: Bir CSV'deki günlük üretim verisini (tarih, üretilen, hatalı,duruş_dakika) işleyip günlük fire oranı ve kabaca OEE bileşenlerinihesaplayan bir fonksiyon yaz.Gereksinimler:- pandas kullan, sütun adlarını doğrula (eksikse anlaşılır hata ver).- Fire oranı = hatalı / üretilen; sıfıra bölmeye karşı koru.- Fonksiyona bilinen sonuçlu bir test (assert) ekle.- Birim ve varsayımları docstring'e yaz.Kural: Ağ/dosya sistemine yazan gizli işlem ekleme. Sadece hesap yap.Emin olmadığın yeri yorumla işaretle.

Zayıf Prompt / Güçlü Prompt

Zayıf prompt:

Üretim verimi hesaplayan bir kod yaz.

"Verim" tanımsız, veri şeması yok, test yok. Çıktı çalışsa bile ne hesapladığı belirsizdir.

Güçlü prompt:

Şu şemadaki CSV için OEE hesapla: kolonlar [planlı_süre, çalışma_süresi,ideal_çevrim, üretilen, kaliteli]. Kullanılabilirlik = çalışma/planlı,Performans = (ideal_çevrim × üretilen)/çalışma, Kalite = kaliteli/üretilen.OEE bu üçünün çarpımı. Her bileşeni ayrı döndür, sıfıra bölmeyi ele alve bilinen değerlerle bir assert testi ekle.

İkinci prompt her formülü ve şemayı açıkça verir; AI'ın "verim"i yanlış yorumlama ihtimalini ortadan kaldırır ve testle doğrulama zorunlu kılar.

Kodu Doğrulama Kontrol Listesi

AI kodunu üretim kararında kullanmadan önce şu adımlardan geçirin:

Adım

Ne kontrol edilir

Birim/boyut

Girdi-çıktı birimleri tutarlı mı?

Bilinen sonuç testi

Elle hesaplanan bir örneği doğru veriyor mu?

Kenar durumlar

Sıfır, negatif, boş veri, tek satır ne yapıyor?

Aritmetik çapraz kontrol

Küçük bir örnekte sonuç elle tutuyor mu?

Görünmez yan etki

Kod veri siliyor/gönderiyor mu?

Dikkat: AI bazen "çalışan ama yanlış" kod üretir: örneğin fire oranını hatalı/toplam yerine hatalı/üretilen hesaplar veya yüzde ile oranı karıştırır. Kod hatasız çalışıyor olması doğru olduğunu göstermez. Mutlaka bilinen bir sonuçla test edin.

Güvenlik ve Veri Gizliliği

Üretim verisi ticari sırdır: kapasiteler, maliyetler, müşteri talepleri, tedarikçi fiyatları. Bunları düşünmeden bir AI servisine yapıştırmak ciddi bir risktir.

  • Veriyi anonimleştirin: Gerçek müşteri/tedarikçi adları yerine kod kullanın; hassas maliyetleri örnek değerlerle değiştirin.
  • Kurum politikasına uyun: Şirketinizin onayladığı AI araçlarını ve veri sınıflandırma kurallarını kullanın.
  • Kodu isteyin, veriyi yerelde çalıştırın: AI'a kod yazdırın ama kodu kendi ortamınızda, gerçek veriyle siz çalıştırın. Böylece hassas veri dışarı çıkmaz.
  • Çıktıyı gözden geçirin: AI kodunun beklenmedik bir yere veri gönderip göndermediğini (ağ çağrısı, dış API) kontrol edin.
İpucu: "AI'a kod yazdır, veriyi yerelde işle" ilkesi hem gizliliği korur hem de AI'ın uydurma sayı üretmesini engeller. Hesabı gerçek çözücü/kütüphane yapar, AI sadece iskeleti kurar.

Mini Vaka: Çalışan Ama Yanlış Kod

Bir fabrikada endüstri mühendisi Mert, AI'a aylık OEE raporu üreten bir script yazdırıyor. Kod sorunsuz çalışıyor ve %92 gibi güzel bir OEE veriyor. Ama Mert bilinen bir güne (elle hesapladığı, OEE'si %78 olması gereken bir gün) karşı test edince kod %92 döndürüyor. İncelemede AI'ın performans bileşenini yanlış kurduğunu (ideal çevrim yerine ortalama çevrim kullandığını) buluyor. Düzeltince değer gerçekle uyuşuyor. Kod hiç hata vermeden yanlış sonuç üretiyordu. Ders: bilinen sonuçlu test olmasaydı, yanlış bir OEE aylarca yönetim kararlarına girecekti.

Yaygın Hatalar

  • "Çalışıyor = doğru" sanmak: Hata vermeyen kodu doğru kabul etmek; bilinen sonuçla test etmemek.
  • Kenar durumları atlamak: Sıfıra bölme, boş veri, negatif girdi gibi durumları denemeden yayınlamak.
  • Gizli veriyi yapıştırmak: Gerçek maliyet/müşteri verisini anonimleştirmeden AI'a göndermek.
  • AI'ı çözücü sanmak: AI'ın "sonuç şu" dediği optimizasyon çıktısını gerçek solver çıktısı gibi kullanmak.
  • Denetlenebilirliği kaybetmek: Varsayımları ve birimleri belgelemeden kodu paylaşmak.

Özetle

  • Kod, mühendislik hesabına tekrarlanabilirlik ve denetlenebilirlik kazandırır; AI bu kodu hızlandırır.
  • Her AI hesap fonksiyonuna bilinen sonuçlu bir test (assert) ekleyerek doğruluğu kanıtlayın.
  • Kodu birim, kenar durum ve aritmetik çapraz kontrol listesinden geçirmeden üretim kararında kullanmayın.
  • "Çalışan kod" doğru kod demek değildir; hatasız çalışıp yanlış hesaplayabilir.
  • Gizli üretim verisini anonimleştirin, kurum politikasına uyun; kodu AI'a yazdırın ama veriyi yerelde işleyin.

Uygulama görevi

Bir mühendislik hesabı seçin (EOQ, emniyet stoğu, OEE veya standart zaman). AI'a bu hesabı yapan bir Python fonksiyonu yazdırın; docstring'de birimleri ve bir assert testiyle bilinen sonucu zorunlu kılın. Kritik doğrulama: fonksiyonu en az üç kenar durumla (sıfır, negatif, boş) deneyin ve elle hesapladığınız bir örnekle karşılaştırın; kod hatasız çalışsa bile sonucun doğru olduğunu bilinen değerle kanıtlayın. Ardından kodu bir "veri gizliliği" gözüyle inceleyin: dışarı veri gönderen bir işlem var mı? Son olarak bu ünitenin doğrulama kontrol listesini kendi iş akışınıza uyarlayıp bir kontrol listesi çıkarın.

Modul Sinavi

1. Yalın üretimde AI'ı değer akış haritası (VSM) çıkarmak için kullandınız. Öneriyi uygulamaya almadan önce en doğru adım hangisidir?

  • A) AI taslağını sahada (gemba) gözlem ve gerçek çevrim/bekleme süreleriyle doğrulamak ✔
  • B) AI güncel bir model olduğu için haritayı doğrudan panoya asmak
  • C) Sadece haritanın renklerini ve kutu şekillerini düzeltmek
  • D) İsraf türlerinin sırasını değiştirip yayımlamak

Aciklama: AI, verdiğiniz bilgilere göre makul bir VSM taslağı üretir ama süreç zamanlarını ve israfları gerçek gözlemleyemez. Yalının temel ilkesi 'gemba'dır: değer akışı sahada gözlemlenip ölçülerek doğrulanmalı, ancak sonra iyileştirme kararına esas alınmalıdır.

2. Bir talep tahmini modelinin doğruluğunu değerlendirmek için hangi metrik seti doğrudan bu amaca yöneliktir?

  • A) Cp ve Cpk
  • B) MAPE, MAE ve RMSE ✔
  • C) OEE ve MTBF
  • D) Takt zamanı ve WIP

Aciklama: MAPE (ortalama mutlak yüzde hata), MAE ve RMSE tahmin hatasını ölçen metriklerdir; tahmin ile gerçek talebi karşılaştırarak modelin doğruluğunu değerlendirmenizi sağlar. Cp/Cpk süreç yeterliliği, OEE ise ekipman verimliliği metriğidir.

3. Yeniden sipariş noktası (ROP) hesabında AI size bir değer verdi. Sonucu güvenle kullanmak için önce ne yapmalısınız?

  • A) Sonucu yukarı yuvarlayıp doğrudan ERP'ye girmek
  • B) AI'a 'emin misin?' deyip 'evet' cevabıyla yetinmek
  • C) Kullanılan formülü, girdileri ve birimleri yazdırıp hesabı elle/kodla yeniden üretmek ✔
  • D) Emniyet stoğunu tamamen sıfırlamak

Aciklama: ROP = ortalama talep × tedarik süresi + emniyet stoğu formülüyle çalışır. AI'ın verdiği sonucu, kullandığı formülü ve girdileri (talep oranı, tedarik süresi, emniyet stoğu) açıkça yazdırıp elle/kodla yeniden hesaplayarak doğrulamak gerekir; aksi halde birim veya aritmetik hatası fark edilmez.

4. Atölye çizelgelemede işleri en kısa işlem süresine göre sıralayan (SPT) kural tipik olarak neyi iyileştirir?

  • A) Sadece kurulum (setup) sürelerini sıfırlar
  • B) Makine sayısını fiziksel olarak artırır
  • C) Enerji tüketimini garanti biçimde yarıya indirir
  • D) Ortalama akış süresini ve ortalama gecikmeyi düşürme eğilimindedir ✔

Aciklama: SPT (Shortest Processing Time) kuralı, kısa işleri öne alarak ortalama akış süresini ve ortalama gecikmeyi düşürme eğilimindedir. Ancak uzun işleri sürekli erteleyebilir; teslim tarihi kritikse EDD gibi kurallar daha uygundur. Kural seçimi amaca göre doğrulanmalıdır.

5. SPC'de Cpk değeri Cp'den belirgin biçimde düşükse bu ne anlama gelir?

  • A) Süreç ortalaması tolerans merkezinden kaymıştır (merkezleme sorunu) ✔
  • B) Sürecin varyansı sıfırdır
  • C) Örneklem sayısının fazla olduğunu gösterir
  • D) Kontrol grafiğinin gereksiz olduğunu kanıtlar

Aciklama: Cp süreç yayılımının tolerans genişliğine oranını, Cpk ise ortalamanın tolerans merkezine göre kaymasını da dikkate alan yeterlilik indeksidir. Cpk'nın Cp'den düşük olması sürecin merkezden kaymış (ortalamanın hedeften uzaklaşmış) olduğunu gösterir; yayılım aynı olsa da merkezleme sorunu vardır.

6. Zaman etüdünde standart zamanı hesaplarken AI'ın verdiği formülü kullanıyorsunuz. Standart zaman aşağıdakilerden hangisiyle doğru şekilde elde edilir?

  • A) Standart zaman = Gözlenen zaman, pay ve tempo dikkate alınmaz
  • B) Standart zaman = Normal zaman × (1 + pay oranı); Normal zaman = Gözlenen zaman × tempo ✔
  • C) Standart zaman = Gözlenen zaman ÷ makine sayısı
  • D) Standart zaman her zaman en hızlı operatörün süresidir

Aciklama: Standart zaman = Normal zaman × (1 + Pay oranı) biçiminde hesaplanır; Normal zaman ise Gözlenen zaman × Tempo (derecelendirme) ile bulunur. Payların (dinlenme, kişisel, gecikme) eklenmesi zorunludur. AI formülü verebilir ama tempo ve pay değerleri gerçek gözlem ve şirket politikasıyla doğrulanmalıdır.

7. AI, bir araç rotalama (VRP) problemine 'en iyi' çözümü verdiğini söyledi. En doğru değerlendirme hangisidir?

  • A) AI 'en iyi' dediği için rotayı doğrudan sürücülere göndermek
  • B) Çözümü kapasite, zaman penceresi ve maliyet kısıtlarına karşı doğrulamak ✔
  • C) Sadece durak sayısını azaltıp yayımlamak
  • D) Haritayı görselleştirip kısıtları görmezden gelmek

Aciklama: AI, kısıtları (araç kapasitesi, zaman pencereleri, sürüş süresi) yanlış modelleyebilir veya optimal olmayan bir çözümü 'en iyi' diye sunabilir. Çözüm; kapasite, zaman penceresi ve toplam mesafe/maliyet kısıtlarına karşı kontrol edilmeli, mümkünse bir çözücüyle (solver) yeniden üretilip karşılaştırılmalıdır.

8. OEE (Toplam Ekipman Etkinliği) hangi üç bileşenin çarpımından oluşur?

  • A) Talep, stok ve maliyet
  • B) Cp, Cpk ve sigma
  • C) Kullanılabilirlik, performans ve kalite ✔
  • D) Takt, çevrim ve teslim süresi

Aciklama: OEE = Kullanılabilirlik (Availability) × Performans (Performance) × Kalite (Quality). Kullanılabilirlik duruşları, performans hız kayıplarını, kalite ise hatalı ürünleri yansıtır. AI bir OEE değeri verirse bu üç bileşenin ayrı ayrı hesaplanıp çarpıldığından emin olmak gerekir.

9. Bir kesikli olay simülasyonunun (discrete-event simulation) çıktısını yorumlarken en kritik doğrulama adımı nedir?

  • A) Girdi dağılımlarını ve varsayımları gerçek verilerle doğrulamak (validation) ✔
  • B) Çalışma süresini kısaltıp tek koşuyla karar vermek
  • C) Grafiklerin renk paletini iyileştirmek
  • D) Rastgele tohumu (seed) gizleyip sonucu tekrarlanamaz yapmak

Aciklama: Simülasyon çıktısı ancak girdi varsayımları kadar iyidir. Dağılımlar, gelişler arası süre, hizmet süreleri ve senaryo parametreleri gerçek verilerle karşılaştırılıp doğrulanmalı (validation); ayrıca modelin doğru kurulduğu (verification) kontrol edilmelidir. Aksi halde 'çöp girer, çöp çıkar'.

10. AI'ın ürettiği bir Python optimizasyon scriptini üretim kararında kullanmadan önce hangisi zorunludur?

  • A) Kod hatasız çalıştığı için sonucu doğrudan uygulamak
  • B) Bilinen sonuçlu testler, birim kontrolü ve kenar durumlarla doğrulamak ve veri gizliliğini korumak ✔
  • C) Değişken adlarını kısaltıp yorumları silmek
  • D) Scripti tüm üretim verisiyle birlikte herkese açık bir servise yüklemek

Aciklama: AI kodu yanlış birim dönüşümü, hatalı kısıt veya kenar durumlarda yanlış sonuç içerebilir. Kod; bilinen sonuçlu küçük test girdileri, birim/boyut kontrolü ve kenar durumlarla doğrulanmalı, ayrıca gizli üretim verisi izinsiz dış servislere gönderilmemelidir. Sonuç mühendislik yargısıyla onaylanır.