美文网首页
最优磁盘文件存储问题

最优磁盘文件存储问题

作者: 彳亍cium | 来源:发表于2019-05-13 19:03 被阅读0次

1. 问题描述

  设磁盘上有n个文件f_1,f_2, \cdots,f_n,每个文件占用磁盘上的1个磁道。这n个文件的检索概率分别为p_1,p_2,\cdots,p_n,且\sum_{i=1}^{n}p_i = 1。磁头从当前磁道移到被检索信息磁道所需的时间可用这2个磁道之间的径向距离来衡量。如果文件f_i存放在第i道上,1 \le i \le n,则检索这n的文件的期望时间是\sum_{1 \le i < j \le n}p_ip_jd(i,j)。式中,d(i,j)是第i道与第j道之间的径向距离|i - j|

  磁盘文件的最优存储问题要求确定这n个文件在磁盘上的存储位置,是期望检索时间达到最小。试设计一个解此问题的算法,并分析算法的正确性与计算复杂性。

  • 算法设计:对于给定的文件检索概率,计算磁盘文件最优存储方案。

1.1. 算法思想

  利用贪心算法来进行设计,很容易由存储的期望时间\sum_{1 \le i < j \le n}p_ip_jd(i,j)想到应该把概率大的先进行安排且彼此靠的最近,然后再依次安排概率低的。具体的方案如下:先将n个文件按照检索概率从大到小排序,即f_1 \ge f_2 \ge \cdots f_n,然后将检索概率最大的文件放在中间磁道,次大的和第三大的放在最大的两边,第四大的放在次大的右侧,第五大的放在第三大的左侧,依此类推,如题中所给案例,即得到磁盘文件的最优存储位置\cdots f_5,f_3,f_1,f_2,f_4,\cdots

1.2. 核心代码

double greedy(vector<double> data,int n) {
    sort(data.begin(), data.end(), compare);  //降序排序,得到[f1,f2,f3,f4,f5,...,fn]

    vector<double> result(n);

    int mid = (n - 1) / 2;
    result[mid] = data[0];  //按照...,f5,f3,f1,f2,f4,...的方式对磁盘文件进行排列
    for (int i = mid - 1; i >= 0; i--)
        result[i] = data[2 * (mid - i)];
    for (int i = mid + 1; i < n; i++)
        result[i] = data[2 * (i - mid) - 1];
    for (int i = 0; i < n; i++) cout <<  "  " << result[i] << endl;

    double sum = 0;
    double cost = 0;
    for (int i = 0; i < n; i++) {  //计算最小期望检索时间
        sum += result[i];
        for (int j = i + 1; j < n; j++)
            cost += result[i] * result[j] * (j - i);
    }
    return cost / sum / sum;
}

1.3. 结论与算法分析

TIM截图20190513190000.png

相关文章

  • 最优磁盘文件存储问题

    1. 问题描述   设磁盘上有个文件,每个文件占用磁盘上的1个磁道。这个文件的检索概率分别为,且。磁头从当前磁道移...

  • iOS数据存储方式(Core Data/Keycahin/NSU

    前言 在iOS开发中数据存储的方式可以归纳为磁盘缓存和内存缓存:磁盘缓存分为两类:文件、数据库存储。 文件存储:N...

  • 数据存储的发展历程

    记录一次学习总结——数据存储的发展历程 文件存储 早期一般都是文件存储,存在磁盘上,磁盘的读写是线性的、速度在毫秒...

  • Ext2文件系统简单剖析(一)

    1.ext2文件系统结构 我们都知道,磁盘时存储文件用的,但是磁盘必须先格式化为某种格式的文件系统,才能存储文件。...

  • 在Linux中查找文件系统类型的7种方法(ext2,ext3或e

    文件系统是在存储磁盘或分区上命名,存储,检索和更新文件的方式。文件在磁盘上的组织方式。 文件系统分为两个部分:用户...

  • chapter13_数据库的存储结构_3_文件的存储结构

    磁盘空间以块为单位 (1) 文件是相关磁盘块的集合(2) 文件块在逻辑上连续,在物理存储上可以连续(顺序存储,类似...

  • kvm-存储配置

    客户机存储方式 QEMU/KVM客户机镜像文件可以采用多种方式来构建 本地存储的镜像文件 物理磁盘或磁盘分区 和 ...

  • RocketMQ存储探索之瞎子摸象

    直观感受一下RocketMQ的存储磁盘文件 首先磁盘文件存储不是在安装目录,默认是在启动进程的用户目录下的,比如r...

  • 系统基础-文件系统

    Linux 文件系统 文件系统 Linux 使用了树形文件存储结构,在磁盘上存储文件的时候,使用的则是目录加文件的...

  • 【大话存储II】学习笔记(15章),对象存储

    在谈对象存储是什么之前,我们先回顾一下块存储和文件存储是什么 块存储与文件存储 块存储: 常见的块存储设备是磁盘阵...

网友评论

      本文标题:最优磁盘文件存储问题

      本文链接:https://www.haomeiwen.com/subject/iograqtx.html