İçeriğe atla

Markov karar süreci

Markov Karar Süreci (MDP) otomasyonunun diyagramı.

Markov karar süreci (MDP), ayrık zamanlı stokastik bir kontrol sürecidir. Sonuçların bazen rastgele bazen de karar verenin kontrolünde olan durumlarda karar vermeyi matematiksel olarak inceler. Dinamik programlama ve pekiştirmeli öğrenme ile çözülen optimizasyon problemlerinde kullanılır. Markov karar süreci araştırmalarının temellerinin büyük bir kısmı Ronald Howard'ın 1960 yılında basılan Dinamik Programlama ve Markov Süreçleri (Dynamic Programming and Markov Processes) adlı kitabında atılmıştır.[1] Robotik, ekonomi, üretim gibi farklı alanlarda kullanılır. İsmini Markov zincirinin mucidi Rus Matematikçi Andrey Markov'dan alır.

Kaynakça

  1. ^ Howard, Ronald A. "Dynamic Programming and Markov Processes" (PDF). The M.I.T. Press. 9 Ekim 2011 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 2 Mayıs 2020. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Programlama dili</span>

Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar.

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

Matematikte matematiksel programlama, eniyileme ya da optimizasyon terimi; bir gerçel fonksiyonu minimize ya da maksimize etmek amacı ile gerçek ya da tam sayı değerlerini tanımlı bir aralıkta seçip fonksiyona yerleştirerek sistematik olarak bir problemi incelemek ya da çözmek işlemlerini ifade eder. Örneğin bu problem şöyle olabilir:

<span class="mw-page-title-main">Donald Knuth</span>

Donald Ervin Knuth, Stanford Üniversitesi emekli profesörü ve yapmış olduğu çalışmalarla dünyaca tanınan ünlü bilgisayar bilimci olarak bilinir. Knuth The Art of Computer Programming (“TAOCP”) serisinin yazarıdır. Bu seriyi hayatı boyunca yaptığı en güzel çalışması olarak görmektedir.

Ruby, nesneye yönelik, dinamik, reflektif ve esnek bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.

Matematikte, Markov Zinciri, Markov özelliğine sahip bir stokastik süreçtir. Markov özelliğine sahip olmak, mevcut durum verildiğinde, gelecek durumların geçmiş durumlardan bağımsız olması anlamına gelir. Bir başka deyişle, mevcut durumun açıklaması, sürecin gelecekteki evrimini etkileyebilecek tüm bilgiyi kapsar. Gelecek durumlara belirli bir şekilde değil, olasılıksal bir süreçle ulaşılacaktır.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Yazılım testi</span>

Yazılım testi, test altında hizmetlerin veya ürünlerin kalitesi hakkında paydaşlara bilgi sağlamak için yürütülen bir araştırmadır. Yazılım testi aynı zamanda, yazılım uygulamalarının risklerini anlamak için yazılımı bağımsız ve nesnel olarak incelemektir. Test teknikleri yazılım böceklerini bulma niyetiyle uygulama veya bir programı çalıştırma süreçlerini kapsar.

Risk kıymetlendirme: Belirlenmiş tehlikelerin gerçekleşme olasılıkları ve gerçekleşmesi durumunda oluşacak kaybın tespit edilmesi işleminin çeşitli araçlar üzerinden gösterilerek, analitik olarak hesaplanması ve simülasyonunun yapılması işlemine denir.

6331 sayılı yasaya göre risk tehlikeden kaynaklanacak kayıp, yaralanma ya da başka zararlı sonuç meydana gelme olasılığı olarak tanımlanmıştır. Risk analizi,Bir işletmenin yaptığı faaliyetler sırasında olması muhtemel potansiyel tehlikelerin tanımlanarak, bunlara ilişkin risklerin kıymetlendirilmesi ve böylece gerçekleşmesi beklenen ve muhtemel risklerle ilgili kontrol tedbirlerinin alınmasına ilişkin yöntem ve esasların tümüdür.

Yan ürün, bir üretim sürecinden, üretim sürecinden veya kimyasal reaksiyondan türetilen ikincil bir üründür; üretilen birincil ürün veya hizmet değildir.

Stokastik süreç, Stokastik işlemi, zaman veya mekana göre değişen/evrilen olguları tanımlamak için kullanılan bir olasılık modelidir. Daha kapsamlı olarak, olasılık teorisinde, stokastik süreç, değişimi rastgele bir varyasyona bağlı olan bir değişken tarafından temsil edilen bazı sistemlerin gelişimini yansıtan bir zaman dizisidir. Bu, belirleyici süreç anlamına gelen deterministik sürecin olasılıkçı muadilidir. Sadece tek yönlü olarak değişebilen bir süreci tasvir etmek yerine bir stokastik veya rastgele süreçte, bazı belirsizlikler vardır. Hatta başlangıçtaki durum biliniyor olsa dahi sürecin gelişebileceği/değişebileceği bazı yönler vardır. Birçok stokastik süreçte, bir sonraki duruma veya konuma geçiş, yalnızca mevcut duruma bağlıdır ve işlemin önceki durumlarından veya değerlerinden bağımsızdır.

<span class="mw-page-title-main">Pekiştirmeli öğrenme</span>

Pekiştirmeli öğrenme, davranışçılıktan esinlenen, öznelerin bir ortamda en yüksek ödül miktarına ulaşabilmesi için hangi eylemleri yapması gerektiğiyle ilgilenen bir makine öğrenmesi yaklaşımıdır. Bu problem, genelliğinden ötürü oyun kuramı, kontrol kuramı, yöneylem araştırması, bilgi kuramı, benzetim tabanlı eniyileme ve istatistik gibi birçok diğer dalda da çalışılmaktadır.

Bilgisayar bilimi, matematik, ekonomi ve biyoinformatikte dinamik programlama karmaşık bir problemi tekrarlanan alt problemlere bölerek, her bir alt problemi yalnız bir kere çözüp daha sonra bu çözümü kaydederek karmaşık problemin çözümünde kullanma yöntemidir. Bir alt problem çözüldükten sonra tekrar çözülmesi gerektiğinde daha önce kaydedilen çözüm kullanılarak zaman kazanılır, ancak alt problemlerin kaydedileceği daha fazla alana gereksinim duyulur. Yani dinamik programlama algoritmaları alandan ödün verilerek zamandan kazanılmasını sağlar. Dinamik programlama algoritmaları optimizasyon problemlerinin çözümünde yaygın olarak kullanılır.

C dinamik bellek yönetimi ve tahsisi, C standart kütüphanesinde mevcut bulunan birtakım hazır metotları kullanarak, kullanılacak olan program için bellekte sanal bir alan oluşturulmasını sağlar. C programlama dilinde dinamik bellek tahsisi için malloc, realloc, calloc ve free metotları kullanılmaktadır. malloc metodu kullanılarak bellekte bulunan kullanılmaya uygun bir alan, kullanıcı için tahsis edilir. Benzer şekilde calloc da bellekte kullanılmaya uygun bir hafıza alanını kullanıcının kullanımına açar fakat calloc hazırlanan bellek alanının içindeki verileri de sıfırlar. realloc metodu ise önceden calloc veya malloc kullanılarak oluşturulan bellek alanının büyüklüğünü dinamik zamanda (run-time'da) değiştirmek için kullanılır. free ise diğer dinamik bellek tahsisi metotları ile oluşturulan ve kullanılan bellek alanlarını temizlemek için kullanılır.

<span class="mw-page-title-main">Andrey Markov</span>

Andrey Andreyevich Markov, en çok stokastik süreçler üzerine yaptığı çalışmalarla tanınan Rus matematikçidir. Araştırmasının birincil konusu daha sonra Markov zincirleri ve Markov süreçleri olarak anıldı.

<span class="mw-page-title-main">Süreç mühendisliği</span> ham veya başlangıç maddesinin kimyasal-fiziksel ya da biyolojik işlemler kullanılarak başka bir ürüne dönüştürüldüğü tüm teknik işlemler

Süreç mühendisliği, insanların hammaddeleri ve enerjiyi endüstriyel düzeyde toplum için yararlı ürünlere dönüştürmesini sağlayan temel ilkelerin ve doğa kanunlarının anlaşılması ve uygulanmasıdır. Süreç mühendisleri, basınç, sıcaklık ve derişim gradyanları gibi doğadaki itici güçlerden ve kütlenin korunumu yasasından yararlanarak, istenilen kimyasal ürünleri büyük miktarlarda sentezlemek ve saflaştırmak için yöntemler geliştirebilirler. Süreç mühendisliği, kimyasal, fiziksel ve biyolojik süreçlerin tasarımı, işletimi, kontrolü, optimizasyonu ve yoğunlaştırılmasına odaklanır. Süreç mühendisliği, tarım, otomotiv, biyoteknik, kimya, gıda, malzeme geliştirme, madencilik, nükleer, petrokimya, ilaç ve yazılım geliştirme gibi çok çeşitli endüstrileri kapsamaktadır. Sistematik bilgisayar tabanlı yöntemlerin süreç mühendisliğine uygulanmasına "süreç sistemleri mühendisliği" adı verilir.

Bilgisayar biliminde zorunlu programlama ya da emperatif programlama, programın durumunu değiştiren ifadeler kullanan yazılımın programlama paradigması'dır. Doğal dillerdeki zorunlu kipin komutları ifade etmesi gibi, zorunlu program da bilgisayar'ın gerçekleştireceği komutlardan oluşur. Zorunlu programlama, beklenen sonuçlarının üst düzey tanımlarından ziyade programın nasıl adım adım çalıştığını açıklamaya odaklanır.