#جدول4 #تعریف تابع جرم احتمال pmf_new <- function(t, p) { return(t * p^2 * (1 - p)^(t - 1)) } # تعریف تابع توزیع تجمعی (CDF) جدید cdf_new <- function(t, p) { return(sum(sapply(1:t, function(x) pmf_new(x, p)))) } # تعریف تابع بقا (Survival Function) جدید survival_new <- function(t, p) { return(1 - cdf_new(t, p)) } # تعریف تابع C(N) برای توزیع جدید C_new <- function(N, n, p, ca, cPM, cCM, cr) { # محاسبه F(N) با استفاده از تابع cdf_new F_N <- cdf_new(N, p) # محاسبه F^n(N) F_n_N <- F_N^n # محاسبه P{T > N} (تابع بقا) P_T_gt_N <- 1- F_N^n # محاسبه a و b' a <- cCM + n * ca b_prime <- cPM - cCM - n * ca + n * cr # محاسبه C(N) C_N <- (a + b_prime * P_T_gt_N + n * (ca - cr) * F_N * (1 - F_N^(n - 1))) / sum(sapply(0:(N - 1), function(i) 1 - cdf_new(i, p)^n)) return(C_N) } # تابع برای پیدا کردن N بهینه و نمایش جدول find_optimal_N_new <- function(n, p, ca, cPM, cCM, cr, N_range) { # محاسبه ی C(N) برای مقادیر مختلف N C_values <- sapply(N_range, C_new, n = n, p = p, ca = ca, cPM = cPM, cCM = cCM, cr = cr) # پیدا کردن N بهینه optimal_N <- N_range[which.min(C_values)] # بررسی اینکه آیا N بهینه واقعاً کمترین هزینه را دارد is_optimal <- TRUE if (optimal_N > min(N_range) && optimal_N < max(N_range)) { if (C_values[which(N_range == optimal_N)] >= C_values[which(N_range == optimal_N) - 1] || C_values[which(N_range == optimal_N)] >= C_values[which(N_range == optimal_N) + 1]) { is_optimal <- FALSE } } else { is_optimal <- FALSE # اگر N بهینه در ابتدا یا انتهای محدوده باشد، ممکن است بهینه نباشد } # نمایش نتایج results <- data.frame(N = N_range, C_N = C_values) print(results) if (is_optimal) { cat("N بهینه برای n =", n, "و p =", p, ":", optimal_N, "با هزینه:", C_values[which(N_range == optimal_N)], "\n") } else { cat("هیچ N بهینه ای برای n =", n, "و p =", p, "پیدا نشد که کمترین هزینه را نسبت به مقادیر قبلی و بعدی خود داشته باشد.\n") } } # تعریف پارامترها ca <- 2 # هزینه خرید هر مؤلفه cPM <- 1 # هزینه تعویض پیشگیرانه cCM <- 10 # هزینه تعویض اصلاحی # <- 0.25 # هزینه جوانسازی هر مؤلفه #cr<- 0.5 N_range <- 1:40 # محدوده ی N برای محاسبه ی C(N) # اجرای تابع برای مقادیر داده شده find_optimal_N_new(n = 2, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 2, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 2, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 2, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 3, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 3, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 3, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 3, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 5, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 5, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 5, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 5, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 10, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 10, p = 0.1, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range) find_optimal_N_new(n = 10, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.25, N_range = N_range) find_optimal_N_new(n = 10, p = 0.2, ca = ca, cPM = cPM, cCM = cCM, cr = 0.5, N_range = N_range)
An Error occurred while handling another error: yii\web\HeadersAlreadySentException: Headers already sent in on line 0. in /var/www/html/prof-homepages/vendor/yiisoft/yii2/web/Response.php:366 Stack trace: #0 /var/www/html/prof-homepages/vendor/yiisoft/yii2/web/Response.php(339): yii\web\Response->sendHeaders() #1 /var/www/html/prof-homepages/vendor/yiisoft/yii2/web/ErrorHandler.php(136): yii\web\Response->send() #2 /var/www/html/prof-homepages/vendor/yiisoft/yii2/base/ErrorHandler.php(135): yii\web\ErrorHandler->renderException() #3 [internal function]: yii\base\ErrorHandler->handleException() #4 {main} Previous exception: yii\web\HeadersAlreadySentException: Headers already sent in on line 0. in /var/www/html/prof-homepages/vendor/yiisoft/yii2/web/Response.php:366 Stack trace: #0 /var/www/html/prof-homepages/vendor/yiisoft/yii2/web/Response.php(339): yii\web\Response->sendHeaders() #1 /var/www/html/prof-homepages/vendor/yiisoft/yii2/base/Application.php(656): yii\web\Response->send() #2 /var/www/html/prof-homepages/vendor/faravaghi/yii2-filemanager/models/Files.php(696): yii\base\Application->end() #3 /var/www/html/prof-homepages/vendor/faravaghi/yii2-filemanager/controllers/FilesController.php(484): faravaghi\filemanager\models\Files->getFile() #4 [internal function]: faravaghi\filemanager\controllers\FilesController->actionGetFile() #5 /var/www/html/prof-homepages/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array() #6 /var/www/html/prof-homepages/vendor/yiisoft/yii2/base/Controller.php(180): yii\base\InlineAction->runWithParams() #7 /var/www/html/prof-homepages/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction() #8 /var/www/html/prof-homepages/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction() #9 /var/www/html/prof-homepages/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest() #10 /var/www/html/prof-homepages/frontend/web/index.php(18): yii\base\Application->run() #11 {main}