Keşfedin, Öğrenin ve Paylaşın
Evrim Ağacı'nda Aradığın Her Şeye Ulaşabilirsin!
Yeni Soru Sor
Paylaşım Yap
Sorulara Dön
Alihan Aydemir
Üye 15 Kasım 1 Cevap
2

Bu soruyu grafik yöntemle çözer misiniz?

Bu soruyu grafik yöntemle çözer misiniz?
354 görüntülenme
Bu soruyu grafik yöntemle çözer misiniz?
Bu soruyu grafik yöntemle çözer misiniz?
  • Şikayet Et
  • Mantık Hatası
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
Tüm Reklamları Kapat
1 Cevap
Sena Küçükkıvanç
Yazar&Editör 16 Kasım

Önce amaç fonksiyonunu belirtelim:

değerini maksimize etmek istiyoruz.

Kısıtlarımı sıralayalım:

Tüm Reklamları Kapat

Tüm Reklamları Kapat

İlk işimiz bu kısıtların grafiğini çizip çözüm alanını belirlemek.

Kısıt ():

Grafikte çizmek için denklem:

Kesim noktaları:

olduğunda (ama olduğu için burada sınırlıyız)

olduğunda

Kısıt ():

Grafikte denklem:

Tüm Reklamları Kapat

Kesim noktaları:

olduğunda (ama )

olduğunda (ama )

Tüm Reklamları Kapat

3 ve 4. Kısıtlar: ve

5 ve 6. Kısıtlar: ve

Noktaları belirleyelim:

Tüm kısıtların kesiştiği bölge bizim uygun çözüm alanımız. Bu bölgedeki köşe noktalar maksimum değer için adaylarımız.

Tüm Reklamları Kapat

C Noktası ()

E Noktası ()

F Noktası ()

G Noktası ()

Köşe noktalarındaki Z değerlerini hesaplıyoruz:

C Noktası ():

E Noktası ():

F Noktası ():

Tüm Reklamları Kapat

G Noktası ():

Maksimum değeri 46 ve bu değer noktasında elde ediliyor.

Tüm Reklamları Kapat

(hatta yaklaşık 2,333)

Yani:

Tüm Reklamları Kapat

Bir de görselini ekleyelim, şansına bugün python kütüphanelerini yenilemiştim :)

Eğer kod üzerinden düzenlemek de istersen diye kodunu da bırakıyorum, kod içerisinde açıklama yazmadım ama fark edersin zaten sayıların yerlerinden:

import matplotlib.pyplot as plt
import numpy as np
x1 = np.linspace(0, 3, 400)
x2_c1 = (21 - 7 * x1) / 3
x2_c2 = (42 - 6 * x1) / 7
x2_c3 = 4 * np.ones_like(x1)
x1_c4 = 3 * np.ones_like(x1)
vertices = np.array([
[3, 0],
[9/7, 4],
[7/3, 4],
[3, 24/7]
])
plt.figure(figsize=(8, 6))
plt.plot(x1, x2_c1, label="7x1 + 3x2 = 21", linestyle='--', color='blue')
plt.plot(x1, x2_c2, label="6x1 + 7x2 = 42", linestyle='--', color='green')
plt.axhline(y=4, color='purple', linestyle='--', label="x2 = 4")
plt.axvline(x=3, color='orange', linestyle='--', label="x1 = 3")
x_feasible = [3, 9/7, 7/3, 3]
y_feasible = [0, 4, 4, 24/7]
plt.fill(x_feasible, y_feasible, 'lightgray', alpha=0.5, label='Uygun Bölge')
for point, label in zip(vertices, ['C', 'E', 'F', 'G']):
plt.scatter(point[0], point[1], color='red')
plt.text(point[0], point[1], f' {label}({point[0]:.2f}, {point[1]:.2f})', fontsize=10, color='black')
plt.title("Doğrusal Programlama Probleminin Grafiksel Çözümü")
plt.xlabel("x1")
plt.ylabel("x2")
plt.xlim(0, 3.5)
plt.ylim(0, 4.5)
plt.grid(True)
plt.legend()
plt.show()

Direkt exe olarak da gönderedebiilirdim ama şimdi Evrim Ağacı standartlarına göre exe linki bırakmak sıkıntı olabilir, kütüphanelerini yüklersin ya zor değil python kuruluysa şunlardan indirirsin:

pip install matplotlib numpy
pip show matplotlib numpy
Bu cevap, soru sahibi tarafından en iyi cevap seçilmiştir. Ancak bu, cevabın doğru olduğunu garanti etmez.
10
  • Şikayet Et
  • Mantık Hatası
1
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
Daha Fazla Cevap Göster
Cevap Ver
Evrim Ağacı Soru & Cevap Platformu, Türkiye'deki bilimseverler tarafından kolektif ve öz denetime dayalı bir şekilde sürdürülen, özgür bir ortamdır. Evrim Ağacı tarafından yayınlanan makalelerin aksine, bu platforma girilen soru ve cevapların içeriği veya gerçek/doğru olup olmadıkları Evrim Ağacı yönetimi tarafından denetlenmemektedir. Evrim Ağacı, bu platformda yayınlanan cevapları herhangi bir şekilde desteklememekte veya doğruluğunu garanti etmemektedir. Doğru olmadığını düşündüğünüz cevapları, size sunulan denetim araçlarıyla işaretleyebilir, daha doğru olan cevapları kaynaklarıyla girebilir ve oylama araçlarıyla platformun daha güvenilir bir ortama evrimleşmesine katkı sağlayabilirsiniz.
Popüler Yazılar
30 gün
90 gün
1 yıl
Evrim Ağacı'na Destek Ol

Evrim Ağacı'nın %100 okur destekli bir bilim platformu olduğunu biliyor muydunuz? Evrim Ağacı'nın maddi destekçileri arasına katılarak Türkiye'de bilimin yayılmasına güç katın.

Evrim Ağacı'nı Takip Et!
Aklımdan Geçen
Komünite Seç
Aklımdan Geçen
Fark Ettim ki...
Bugün Öğrendim ki...
İşe Yarar İpucu
Bilim Haberleri
Hikaye Fikri
Video Konu Önerisi
Başlık
Kafana takılan neler var?
Gündem
Bağlantı
Ekle
Soru Sor
Stiller
Kurallar
Komünite Kuralları
Bu komünite, aklınızdan geçen düşünceleri Evrim Ağacı ailesiyle paylaşabilmeniz içindir. Yapacağınız paylaşımlar Evrim Ağacı'nın kurallarına tabidir. Ayrıca bu komünitenin ek kurallarına da uymanız gerekmektedir.
1
Bilim kimliğinizi önceleyin.
Evrim Ağacı bir bilim platformudur. Dolayısıyla aklınızdan geçen her şeyden ziyade, bilim veya yaşamla ilgili olabilecek düşüncelerinizle ilgileniyoruz.
2
Propaganda ve baskı amaçlı kullanmayın.
Herkesin aklından her şey geçebilir; fakat bu platformun amacı, insanların belli ideolojiler için propaganda yapmaları veya başkaları üzerinde baskı kurma amacıyla geliştirilmemiştir. Paylaştığınız fikirlerin değer kattığından emin olun.
3
Gerilim yaratmayın.
Gerilim, tersleme, tahrik, taciz, alay, dedikodu, trollük, vurdumduymazlık, duyarsızlık, ırkçılık, bağnazlık, nefret söylemi, azınlıklara saldırı, fanatizm, holiganlık, sloganlar yasaktır.
4
Değer katın; hassas konulardan ve öznel yoruma açık alanlardan uzak durun.
Bu komünitenin amacı okurlara hayatla ilgili keyifli farkındalıklar yaşatabilmektir. Din, politika, spor, aktüel konular gibi anlık tepkilere neden olabilecek konulardaki tespitlerden kaçının. Ayrıca aklınızdan geçenlerin Türkiye’deki bilim komünitesine değer katması beklenmektedir.
5
Cevap hakkı doğurmayın.
Aklınızdan geçenlerin bu platformda bulunmuyor olabilecek kişilere cevap hakkı doğurmadığından emin olun.

Bize Ulaşın

ve seni takip ediyor

Göster

Şifremi unuttum Üyelik Aktivasyonu

Göster

Şifrenizi mi unuttunuz? Lütfen e-posta adresinizi giriniz. E-posta adresinize şifrenizi sıfırlamak için bir bağlantı gönderilecektir.

Geri dön

Eğer aktivasyon kodunu almadıysanız lütfen e-posta adresinizi giriniz. Üyeliğinizi aktive etmek için e-posta adresinize bir bağlantı gönderilecektir.

Geri dön

Close